Gestión de Datos

Gestión de Datos (43)

Blog de análisis y gestión de datos, artículos, consejos, perfiles demandados, metodologías, herramientas...

Machine Learning(3/3) - Resultados de la Predicción

Tras el primer post de introducción a los algoritmos de Machine Learning y siguiendo el segundo dónde se trataba el estudio de la serie temporal y el algoritmo que se ha decidido utilizar, llega el último post de esta serie.

Se comenzará con una gráfica que refresque la memoria sobre cuáles eran los datos de los que se disponía, a continuación, se pasará a ver la predicción realizada por R y por último se representará de forma gráfica mediante una herramienta de B.I los consumos reales y las predicciones realizas, así como el error cometido por las predicciones frente a los consumos reales.

¿Por qué es importante predecir?

Como se describió en el anterior post, es importante reconocer las futuras ventas para así poder gestionar los recursos dentro de la organización, reduciendo los costes operativos.

Los datos sobre los que se realizará la predicción, tal y como se observa en la siguiente imagen,corresponden a las ventas desde Junio 2014 a Enero 2017.

consumos

Se ha realizado una predicción de 10 meses, entre Febrero y Noviembre.

Se dispone de los datos de los meses entre Febrero y Noviembre para realizar la comparación entre la predicción y las ventas reales.

Predicciones usando el Algoritmo Arima en RStudio

Tras aplicar el algoritmo Arima, obtenemos en R los siguientes resultados:

resultados R

 

Representados de forma gráfica en R, se obtiene lo siguiente:

resultados representados R

La línea gris representa el consumo real en el pasado. La línea azul marca la predicción realizada y las zonas sombreadas, la azul representa el intervalo de confianza del 80% mientras que en la zona sombreada gris se representa el intervalo de confianza del 95%.

El intervalo de confianza es cuanto puede diferir la realidad frente a la predicción de modo que, por ejemplo, en el caso del intervalo del 95%, representa un intervalo en el que hay una posibilidad del 95% de que el consumo en ese mes se mantenga dentro de dicho intervalo.

A priori, se puede ver que en agosto del 2017 las ventas van a caer de forma significativa, mientras que los meses más cercanos va a haber una gran venta de este producto. Esto no es para nada descabellado, si nos fijamos en los años anteriores se observa que todos los meses de agosto el consumo es muy bajo y en los meses colindantes el consumo es muy elevado. También podemos observar que en marzo va a haber una caída en los consumos, que se corresponde con el resto de los años, pues se puede observar una caída acusada en el tercer mes de todos los años.

Ciertamente, extraer algunas conclusiones sobre la predicción a priori está bien, pero, sería mucho mejor si pudiésemos contrastar la predicción con los consumos reales y comprobar cuán buenos son los resultados obtenidos. A continuación, se muestra la gráfica que representa este escenario:

resultados representados qlik

En azul tenemos los consumos anteriores. En rojo tenemos los consumos reales entre los meses de Febrero y Octubre del 2017 y, por último, con barras amarillas representamos las predicciones realizadas por Arima.

Como podemos observar nuestra predicción se adecua de una manera muy precisa a los datos reales de ventas.

Calidad de la predicción

Para medir cuán bueno es una predicción frente a los resultados reales se utiliza la siguiente fórmula, que recibe el nombre de Error Medio de Porcentaje (EMP):

 formula 1

donde CR es el consumo real y  PC es la predicción de consumos realizada.

Del mismo modo, se puede calcular el Error Absoluto Medio de Porcentaje (EAMP) mediante la siguiente fórmula:

formula 2

En este caso, EMP = -5.30%  y EAMP=5.30% . Por consiguiente, estamos ante una predicción muy precisa.

Objetivos alcanzados con el uso de Algoritmos de Machine Learning

De esta forma, se concluye con esta serie de post, cuyos objetivos eran:

            1.- Conocer los algoritmos de Machine Learning.

            2.- Elegir el algoritmo adecuado para nuestros datos y nuestros objetivos.

            3.- Realizar la predicción de forma adecuada.

            4.- Obtención y representación de forma gráfica de los resultados.

Que se pueden predecir las ventas de una referencia y de este modo ajustar los recursos de una empresa en función de las necesidades que puedan surgir derivadas de poder adelantarse al futuro y tener una predicción que es capaz de representar de una forma muy precisa la realidad.

Siguiendo el post de la semana pasada que servía de introducción a los algoritmos de Machine Learning , se realizará una predicción de consumos. Partiendo de consumos pasados, se tratará de predecir los futuros y ver cómo se ajusta la predicción a la realidad.

Para ello se analizarán los datos de los que se dispone, qué es la estacionalidad  y en qué afecta a los algoritmos de aprendizaje y por último la elección del algoritmo y su programación en lenguaje R.

Machine Learning - Predicción de consumos

El objetivo final de esta serie de post será conseguir adelantarse a eventos futuros y de esta forma poder anticipar los recursos necesarios en la empresa para hacer frente, tanto a los picos como a los valles en las ventas.

¿Qué datos necesitamos para poder predecir utilizando algoritmos de Machine Learning?

Se dispone de los datos de ventas agrupados por mensualidades, datando, los más antiguos, de Junio del 2014 y, los más recientes, de Enero del 2017. Se busca  realizar una predicción de 9 meses. Se dispone además de los datos reales entre los meses de Febrero y Octubre del 2017 para, una vez realizada la predicción, poder comparar con los resultados de la misma.

A continuación, se muestra la gráfica de los consumos:

consumos

Series estacionarias y series que tienen estacionalidad

El estudo de la serie temporal de la que se dispone es una de las complejidades del proceso de selección del algoritmo de preddición.

Lo primero de todos, es determinar si la serie es o no estacionaria (stationary serie o non-stationary serie). La gran mayoría de los algoritmos de predicción están diseñados para realizar las predicciones sobre series estacionarias; por lo que es muy importante entender cómo es una serie estacionaria. Como se puede ver en este enlace, se puede identificar de manera gráfica si nuestra serie es o no estacionaria. Existen tres criterios para poder clasificar si la serie es o no estacionaria:

  • La media de la serie temporal no debe tener dependencia del tiempo, es decir, debe de ser constante. Como se muestra en la siguiente imagen, la gráfica verde se corresponde con la gráfica estacionaria, donde podemos ver que la media es constante y en la gráfica roja se puede observar que la media va aumentando en función del tiempo.

estacionalidad

  • La varianza de la serie temporal debe de ser constante, es decir, no debe variar en función del tiempo. Como en el caso anterior, la verde correspondería a una serie estacionaria, frente a la no estacionaria, en rojo. En la primera de ellas la varianza es constante, mientras que en la segunda la varianza varía con el tiempo, ya que como se observa la diferencia entre los máximos y los mínimos es mayor en la zona central de la gráfica roja.

estacionalidad 2

 

  • El útlimo criterio, está relacionado con la covarianza entre un punto “i” de la serie temporal y el punto “(i+m)” de la serie temporal. En estos puntos, la covarianza debe de ser constante en el tiempo. Como se puede observar a continuación, la gráfica roja no cumple este requisito dado que dicha gráfica se “encoge” y “alarga” en función del tiempo, mientras que la gráfica verde tiene todos los máximos y los mínimos a la misma distancia.

 estacionalidad 3

Otro de los puntos importantes a la hora de aplicar un algoritmo de predicción es saber si la serie tiene estacionalidad (seasonal serie o non-seasonal serie). Es decir, es importante desestacionalizar la serie para eliminar los periodos de más o menos ventas, como puede ser la temporada de verano o la de invierno.

Tras estudiar los datos representados en la primera de las gráficas, es fácil observar que esta serie no es estacionaria y tampoco tiene una estacionalidad marcada, simplemente se vende menos en Agosto y en Diciembre.

El algoritmo que se utilizará dado a las propiedades identificadas en el proceso anrerior, se localiza en el programa estadístico R y se trata de la función “auto.arima”. Esta función de R trabaja con series estacionarias o no y con series que tengan o no una estacionalidad marcada.

Por último, se utilizará Knime con la integración de R. Aquí se encuentra otro post relacionado con Knime y R. A continuación se muestra una imagen de cómo quedaría la interfaz gráfica en Knime.

knime

Arima como algoritmo de predicción

Por consiguiente, para realizar una predicción de ventas, donde sólo se dispone de las ventas a pasado, un algoritmo fácil de utilizar es el algoritmo Arima. Por ello, como ya se ha comentado, para utilizar este algoritmo se recurre a la función de R “auto.arima”. Esta función trabaja tanto con series estacionarias o no estacionarias y con series que tengan una estacionalidad marcada o no. Por todo ello, esta función de R es la elegida para realizar esta predicción.

En el próximo post

En el post de la semana que viene, se representarán los resultados de manera gráfica y se comparará la predicción realizada con los consumos reales durante los meses evaluados.

 A lo largo de las próximas semanas, desde LIS-Solutions publicaremos una serie de post relacionados con diferentes algoritmos utilizados en Machine Learning.

Tipos de Algoritmos

 La gran mayoría de algoritmos de Machine Learning, se engloban en tres grupos principales:

  1. Supervised Learning o aprendizaje supervisado: este tipo de algoritmos es útil cuando se tiene una propiedad conocida para un conjunto de elementos, pero, no se conoce esa misma propiedad en un elemento concreto. Estos algoritmos nos ayudarán a predecir cuál es esa propiedad que se desconoce.
  2. Unsupervised Learning o aprendizaje no supervisado: este tipo de algoritmos es útil para descubrir relaciones implícitas en un conjunto de datos pero que no son conocidas. Es decir, permite considerar que varios elementos pertenecen a un mismo grupo o a diferentes grupos gracias al estudio de sus características.
  3. Reinforcement Learning o aprendizaje por refuerzo: este tipo de algoritmos es una mezcla entre los dos tipos anteriores. Dado que es un post de iniciación no se va a profundizar en este tipo de algoritmos dado su dificultad.

A continuación, repasamos algunos de los algoritmos de aprendizaje supervisado/no supervisado.

Algoritmos de aprendizaje supervisado

 El primero de los algoritmos que nos encontramos y más intuitivo son los árboles de decisión

En este post, ya explicábamos la importancia y el funcionamiento básico de este tipo de algoritmos. Los árboles de decisión buscan básicamente clasificar elementos a partir de una serie de variables.
Dentro de este grupo de algoritmos encontramos algunos como:

  • CART (Classification And Regression Tree)
  • ID3 (Iterative Dichotomiser 3)
  • CHAID (CHi-squared Automatic Interaction Detector)

decision tree

Otro de los algoritmos más importantes del aprendizaje supervisado es el algoritmo de clasificación de Naive Bayes.
Este algoritmo, a partir de unos elementos ya conocidos, es capaz de clasificar un nuevo elemento sin saber a qué grupo pertenece.
Este algoritmo suele ser utilizado en los siguientes casos:

  • Coches autónomos: por su capacidad de determinar la velocidad que debe llevar el vehículo partiendo por ejemplo: del estado en que se encuentra la calzada o la pendiente de la misma.
  • Localizar correos considerados como Spam tras analizar las palabras que aparecen en el correo.
  • Clasificación de artículos por el tema del que hablan.

naive bayesEl tercero de los algoritmos que se encuentra dentro de este grupo de algoritmos es la regresión ordinaria por mínimos cuadrados.

Este algoritmo trata de estimar los valores que no se conocen. Para ello se utiliza el método matemático conocido como regresión lineal por mínimos cuadrados. Trata de ajustar una línea lo mejor posible a un grupo de elementos y a partir de ahí interpretar el posible resultado que tiene un elemento con una propiedad a determinar.

 regresion ordinaria

Para terminar este grupo de algoritmos, hay que mencionar que hay otros algoritmos de este tipo como pueden ser: regresión logística, máquinas de vectores de soporte y métodos de conjunto.

Algoritmos de aprendizaje no supervisado:

El primero de los algoritmos que nos encontramos en este grupo, son los algoritmos de agrupamiento. LIS-Solutions ya realizó un estudio del Análisis de componentes principales junto a un algoritmo de agrupamiento: K-means.
Estos algoritmos se utilizan para agrupar de forma conjunta los elementos que más parecido tengan entre sí. Es decir, son algoritmos que agrupan los elementos basándose en alguna característica concreta.
En este grupo encontramos diferentes tipos de algoritmos, como:

  • Algoritmos basados en centroides (Centroid-based algorithms): estos algoritmos si representamos los elementos en un gráfico de puntos, calculan el punto medio de ellos que minimiza las distancias. K-means es un algortimo de este tipo.
  • Algoritmos basados en densidad (Density-based algorithms): estos algoritmos buscan agrupar los puntos por cercanía a los puntos de alrededor. Un algoritmo que está comprendido en esta familia sería K-NN (k-nearest neighbors) o K vecinos más próximos.

Como información adicional, mencionar la existencia de algoritmos basados en conectividad (Connectivity-based algorithms), probabilísticos (Probabilistic), reductores de dimensionalidad (Dimensionality Reduction) y las redes neuronales (Neural networks) que también entrarían dentro de este grupo.

non supervised

Otro de los algoritmos que encaja en este grupo de aprendizaje no supervisado es el algoritmo PCA (Principal Component Analisys) o análisis de componentes principales. Dicho algoritmo, tratado en este post , realiza una reducción desde unas variables iniciales al mínimo número posible de ellas. Lo que se consigue es representar el máximo posible de información en el mínimo de variables posibles.

pca



Dentro del aprendizaje no supervisado encontramos algoritmos como el algoritmo de “Valor singular de descomposición” (Singular Value Decomposition) o análisis de componentes independientes (independent component analisys: ICA).

non supervised 2 

 

¿Cómo elegir el mejor algoritmo para nuestro proyecto?


Lo primero y más importante para elegir con éxito el algoritmo que más se adapta a nuestras necesidades es:

  • Determinar qué queremos conseguir
  • Ver de qué datos disponemos

Una vez que se tienen claros estos dos puntos y conociendo los algoritmos de machine learning existentes, podremos escoger el que mejor se adapte a nuestras necesidades.
Por ejemplo, si queremos saber quién ha escrito un texto, nuestro algoritmo sería Naive Bayes, sin embargo, si queremos saber dónde poner geográficamente dos hospitales en un territorio y queremos que estén en los puntos más cercanos posibles a los mayores núcleos de población, nuestro algoritmo es K-means.

En la próxima entrada...

En el caso que trataremos en el próximo post, realizaremos una predicción de consumos. Partiendo de consumos pasados, trataremos de predecir los futuros y ver cómo se ajusta nuestra predicción a la realidad. Os invitamos a visitar nuestro blog durante la espera.

Martes, 31 Octubre 2017 09:25

Algoritmo PCA: de lo complejo a lo sencillo

Escrito por

Cuando alguien se encuentra ante una situación compleja, siempre se trata de simplificar el problema inicial para poder ir resolviéndolo de la forma más sencilla a la más compleja a la vez que se va adquiriendo la experiencia necesaria para solventar el problema inicial.

Reducción de variables

Partiendo de un problema con múltiples variables, se busca entender qué relación existe entre ellas. Para ello, el primer paso será reducir al máximo posible las variables de las que se dispone. Una vez conseguido este paso, representaremos de manera visual el resultado obtenido y así podremos observar cómo se agrupan los datos de manera fácil e intuitiva.

Se dispone de un archivo csv que almacena el histórico de unas órdenes de compra de unas piezas. El objetivo de este análisis de datos es agrupar las piezas que, por características, estén unas próximas a las otras, es decir, que se encuentren cercanas unas de otras en el espacio. Hacer esto en un espacio de 12 Dimensiones no es sencillo ni representable gráficamente. Para ello, desde LIS-Solutions se plantean reducir el número de variables al menor número posible de ellas. Para llevar a cabo este cambio, se decide utilizar una técnica matemática conocida como “Análisis de Componentes Principales”.

¿Qué es un “Análisis de Componentes Principales” o PCA? y ¿para qué sirve?

Es un método matemático que se utiliza para reducir el número de variables de forma que pasemos a tener el mínimo número de nuevas variables y que representen a todas las antiguas variables de la forma más representativa posible. Es decir, si se reduce el número de variables a dos o tres nuevas, se pueden representar los datos originales en el plano o en un gráfico de 3-dimensiones y, así, se visualiza de forma gráfica un resumen de nuestros datos. El simple hecho de poder tener los datos de manera visible simplifica mucho el entender qué puede estar pasando y ayuda a tomar decisiones.

A continuación, se procede con el análisis de las órdenes de compra. No se entrará en los detalles puramente matemáticos dada su complejidad.

El primer paso de todos es observar mediante la siguiente gráfica cuántas componentes principales debemos coger.

data pca

Elección número de componentes principals

 

Como se ve en el gráfico anterior, las tres primeras componentes aglutinan la mayor varianza, por lo que podemos decir que son las componentes principales las principales para realizar el análisis. Sin embargo, para poder representar de forma bidimensional los resultados a lo largo de este post, escogeremos sólo las dos primeras. En el siguiente gráfico Podemos ver qué influencia ejerce cada variable en las nuevas componentes principales:

componentes

Influencia de cada variable en las dos componentes principales

Como podemos observar, las variables que más peso ejercen sobre la primera de las componentes principales son las medidas de las piezas, mientras que las variables que más peso ejercen sobre la segunda de las componentes principales son el resto de las variables, teniendo una mayor influencia el año en el que se realizó la compra y el número de la orden de la compra. Se podría decir que la primera componente principal representa las características de las piezas compradas mientras que la segunda componente principal representa las propiedades de la compra.

Una vez que se sabe que representa cada una de las variables, se representan en dos dimensiones. Se representa en el eje ‘x’ la primera de las componentes principales y en el eje ‘y’ la segunda de las componentes principales. De este modo se obtiene el gráfico 3. En él se puede observar la representación de los datos de inicio en dos dimensiones.

De esta forma, se puede hacer una interpretación de cada una de las órdenes de compra. Se puede ver que la orden de compra número 46 (arriba a la izquierda en el gráfico 3), al igual que la compra 108 (arriba a la derecha) podrían considerarse outliers. Pero sin duda, lo que más llama la atención de este gráfico es que más del 80% de los datos están condensados en dos grupos, destacados por dos círculos rojos. Esto nos indica que las órdenes de compra que no están próximas a estos grupos son las que provocan una varianza mayor en el precio de las órdenes de compra. Cuanto más a la derecha se encuentre una orden de compra más cara debe de ser y cuanto más a la izquierda se localice esta orden más barata ha de ser. Esto lo deducimos del gráfico 2 y cómo influye cada variable en las componentes principales.

 graph pca 1

Representación gráfica en las dos principales componentes

Clasificación de los datos por medio del algoritmo K-Means

Una vez realizado esta representación gráfica, pasamos a utilizar el algoritmo K-means. Este algoritmo sirve para localizar grupos dentro de una “nube de puntos”, que en este caso son las compras. Se ha decidido agrupar los datos en tres grupos, por lo tanto, se está realizando el algoritmo K-means con K=3. El resultado obtenido es el siguiente:

graph pca 2

Gráfico K-means

Se obtienen, por consiguiente, tres grupos. Como se había mencionado primero, había dos grupos claramente diferenciados (ahora en rojo uno y en azul el otro) y, localizamos otro tercer grupo, formado por el resto de los puntos que representan todos los datos que se “salen” de los dos grupos de órdenes de compras mencionados previamente.

Para continuar con el análisis y sacar conclusiones más profundas e importantes, habría que realizar un análisis en profundidad sobre los datos del tercero de los grupos representados en color verde.

Conclusión.

Cuando nos encontremos con multitud de variables que analizar, lo mejor es reducir estas variables al mínimo para poder representarlas de manera gráfica e intuitiva. Una vez hecho este paso, se pueden aplicar otro tipo de técnicas, como en este caso, que sirven para entender aún de forma más clara y explícita para qué usar los datos o cómo interpretarlos.

Este tipo de análisis de datos es muy útil para poder relacionar variables entre ellas y entender cómo están relacionadas. Aplicado a logística, por ejemplo, este estudio se puede aplicar también para decidir en qué lugar geográfico es mejor asentar un almacén. Si consideramos que los puntos de la última imagen son clientes finales y tenemos pensado construir tres almacenes desde donde distribuir los productos de una empresa, podremos saber el lugar óptimo dónde asentar los almacenes sería en el centro de cada uno de estos grupos, consiguiendo que la distancia desde el almacén a los clientes sean las mínimas.

Lunes, 02 Octubre 2017 08:48

NetStock: Optimizando los niveles de Stock

Escrito por

 A la hora de minimizar costes y riesgos, cualquier empresa que tenga stock disponible es primordial  también tener un nivel de stock óptimo.

¿Qué es el nivel de Stock?

El nivel de stock es la cantidad de productos que se tienen almacenados y disponibles para su venta en los almacenes de la organización.

El nivel de stock puede medirse tanto en cantidad de artículos como en el valor de coste de dicha cantidad, siendo esta última medida la más utilizada.

A la hora de optimizar el stock de una empresa es importante seguir un modelo matemático que, basándose, por ejemplo, en consumos anteriores, sea capaz de calcular cuál sería el nivel óptimo de stock.

Es importante tener en cuenta que no sirve reducir los productos que tenemos almacenados de manera aleatoria, sino que debe hacerse de la forma adecuada para mantener siempre los niveles mínimos de seguridad y evitar así roturas de stock.

LIS-Solutions desarrolla como fase previa a la optimización de stock, la captura y tratamiento de la información referente a stock con la herramienta de minería de datos Knime.

Una vez tratados y transformados los datos necesarios, estos son enviados a la herramienta basada en cloud-computing: NetStock.

NetStock es capaz de realizar predicciones de niveles óptimos de stock y nos muestra el estado actual de cada uno de nuestros almacenes.

dashboard netstock

Imagen 1. Visualización principal de NetStock

Veamos más detalladamente cada una de las fases que seguimos:

Proceso ETL con Knime.

En primer lugar, creamos un workflow en Knime con el que haremos la fase de ETL (“Extract, Transform and Load”), donde trataremos los datos y prepararemos los ficheros necesarios para que NetStock pueda realizar sus cálculos posteriores.

 

workflow knime

 

Imagen 2. Workflow en Knime. ETL

 

En este primer paso, leemos los datos de las fuentes involucradas y creamos todas las tablas necesarias para así poder alimentar de datos a NetStock.

Una vez realizado este paso, los datos son procesados por NetStock. En este punto obtenemos una interfaz gráfica que nos muestra los principales KPI´s (“Key Performance Indicator”). Véase Imagen 2.

Por ejemplo, podemos observar en Stock holding el valor actual de nuestro stock en el almacén que sería de 34 millones mientras que el stock óptimo sería de 10.3 millones. Justo debajo podemos observar las cinco primeras referencias que mayor exceso de stock tiene. Además, podemos ver otros indicadores, por ejemplo, las potenciales roturas de stock y los cinco productos con un mayor riesgo de quedarse sin stock.

reference summary

 

Imagen 3. Resumen de una referencia

Por lo tanto, con una precisa y elaborada extracción de los datos y su tratamiento adecuado, podemos tener unos indicadores que reflejan la situación actual de nuestros almacenes en cuanto a stock se refiere y, a la vez, tener un modelo que optimiza nuestros niveles de stock, reduciendo así el riesgo de roturas y minimizando el dinero pasivo que tendremos en nuestro almacén.

NetStock: Predicción de consumos

Por otro lado, mencionar que NetStock no sólo se queda en esta parte tan superficial, si no que muestra la información de cada referencia así como una predicción a futuro del consumo de la misma:

predictions

 

Imagen 4. Predicción de consumos para una referencia

Por lo tanto, nos encontramos ante una herramienta muy completa y compleja, pero a la vez sencilla de entender y de manejar, para que a un solo click tengamos el resumen de consumos pasados y niveles de inventario junto a los KPI´s más importante y además tengamos una predicción de ventas a futuro. Como consecuencia, nos encontramos ante una de las mejores herramientas del mercado que se encarga de representar gráficamente el estado de los almacenes y de optimizar nuestros niveles de stock.

Domingo, 01 Octubre 2017 10:36

KNIME: Un software vivo

Escrito por

Empezamos utilizando Knime simplemente como una herramienta para conseguir nuestro objetivo, pero hoy en día es algo más.

Si primero, como reflejamos en una entrada de post anterior "Knime, un minero para la montaña de datos" hablábamos de la facilidad que aporta dicho software a aquellos usuarios de negocio, hoy en día podemos decir sin temor a dudas que Knime aporta mucho a cualquier tipo de usuario, ya que cada vez es más fácil y sencilla de utilizar.

KNIME Analytics Platform

 Hoy vamos a evaluar y analizar las nuevas opciones que incorpora este software en su nueva actualización.

En primer lugar, destacaremos la incorporación de nuevos gráficos a esta herramienta. Si bien es cierto que para la visualización de datos no es una herramienta potente, como lo pueden ser Qlik o Tableau, estamos viendo como poco a poco las visualizaciones van tomando peso dentro de Knime. Se han añadido tres nuevas formas de visualizar los datos que reciben el nombre de “Network Viewer” que representa los datos en forma de grafo, “Sunburst Chart” gráfico que se divide en porciones y subporciones dentro de cada una de ellas donde va clasificando los datos y “Streamgraph” que representa los datos en forma de corriente. Vemos a continuación una representación de datos con el modelo “Sunburst Chart”.

knime sunburst

 

Además de ver el gráfico podemos seleccionar las regiones que nos interesen y podemos ver los datos que se corresponden en con cada sección como podemos ver en la siguiente imagen.

knime sunburst 2

Aplicado al mundo de los negocios, si pensamos en un almacén con un gran número de referencias podríamos representar en la circunferencia más pequeña las diferentes familias de productos. En la circunferencia más inmediata, podríamos representar los grupos dentro de cada familia y, por último, en una tercera circunferencia representaríamos cada uno de los elementos pertenecientes a cada uno de los grupos. Así, podríamos identificar de manera rápida y eficaz a qué grupo y a qué familia pertenece un artículo de manera visual. También podríamos ver si dos artículos pertenecen al mismo grupo o a la misma familia. 

Control de versiones

Otra de las mejoras que nos depara Knime en esta actualización es la posibilidad de comparar los cambios realizados en un workflow con el paso de las versiones y ver de manera fácil, rápida y cómoda qué hemos cambiado a lo largo del tiempo. De este modo, si el resultado ha variado y no es el resultado esperado, podremos volver atrás sabiendo en qué paso nos hemos equivocado.

En Knime es fácil tener de utilizar varias veces un mismo Metanodo y hasta ahora copiábamos el metanodo y le pegábamos donde era conveniente. Con la nueva actualización, podemos guardar dichos metanodos como si de una plantilla de Word se tratase. Les guardamos dentro del apartado plantillas y simplemente cuando queramos utilizarles arrastramos igual que hacíamos hasta ahora con los nodos. Arrastramos hasta el workflow y enlazamos con los nodos necesarios. Esta nueva actualización nos ahorrará tiempo y en consecuencia dinero. 

Nuevos nodos

Se ha añadido un nuevo nodo llamado “Call Local Workflow” utilizado para hacer una llamada desde un workflow a otro existente en local. Hasta ahora la única forma de ejecutar dos workflows que dependiera uno del otro era ejecutar uno primero que preparase los datos para el segundo y al acabar este llamar al segundo workflow. Nos evitamos así el arduo proceso de hacer coincidir todos los nodos y buscar la forma de unirlos.

knime wf link

 

Por último, mencionamos el reconocimiento y análisis de voz: en esta actualización Knime incorpora un procesador de voz que es capaz de escucharse archivos de audio desde Knime, extraer características acústicas y reconocimiento de voz.

 

knime audio processing

De este modo, sin tener grandes conocimientos de informática, podemos utilizar grabaciones como si fuera un simple csv y, a partir de ahí, realizar nuestro propio análisis de los resultados y extraer conclusiones. Esta nueva inclusión podría servirnos incluso para crear un pequeño sistema de activación de funciones por medio de la voz.

Con esta nueva actualización Knime sigue a la cabeza como herramienta para Big Data y sigue acercándose cada vez más a un público más amplio, debido a que es capaz de hacer de la tecnología más compleja y puntera como es el Big Data algo sencillo y fácil para cualquier perfil que se encuentre en la empresa.

Por estos y muchos otros motivos no evaludos en esta entrada, desde LIS-Solutions  seguimos apostando por herramientas tan versátiles, útiles y que están en constante evolución como es el caso de Knime.

Miércoles, 02 Agosto 2017 15:01

¿Qué es SAP HANA?

Escrito por

SAP HANA es una plataforma integrada (consta tanto de hardware como de software) que combina innovadoras tecnologías de bases de datos. Es una plataforma que trabaja en memoria (“in-memory”) para aplicaciones de alto rendimiento, como herramientas de análisis y simulación en tiempo real.

SAP HANA es una parte de SAP preparada para hacer computación en la nube (“in-memory computing”).

Este sistema es tan rápido gracias al motor de búsqueda que tiene. Usa una base de datos convencional, pero está muy optimizada y además es capaz de trabajar de manera paralela.

SAP HANA 3

SAP HANA Y EL BUSINESS INTELLIGENCE

Gracias a la velocidad de procesamiento que desarrolla SAP HANA su fuerte es el Business Intelligence.

Hoy en día, debido a la gran cantidad de datos que generan las empresas, uno de los puntos más importantes para dichas empresas es el Business Intelligence. Cada vez se hacen operaciones más complejas para obtener ciertos KPI´s (Key Performance Indicator) y con un mayor volumen de datos lo que conlleva un gran gasto computacional. SAP HANA es capaz de calcular estos datos mucho más rápido y fácil gracias al procesamiento en paralelo y a la optimización de todos los procesos de cálculo.

sap-hana 4

CARACTERÍSTICAS DE SAP HANA

Una de las bondades de esta plataforma es la posibilidad de realizar todas las operaciones en la memoria RAM. Gracias al abaratamiento de estas memorias y a la gran potencia que tienen hoy en día, podemos realizar muchos cálculos de manera íntegra en esta memoria eliminando así escribir en el disco duro y aumentando por tanto la velocidad de cálculo.

Es importante destacar que SAP HANA está pensado para poder escalarse, tanto de manera vertical como de forma horizontal.

SAP HANA tiene una infinidad de aplicaciones que se tratarán en los siguientes posts, haremos especial incapié en las capacidades que tiene SAP HANA para hacer desarrollos predictivos.

¿Quieres conocer más? Contacta con nosotros! 

En la actualidad se habla mucho del análisis de datos y de los árboles de decisión, pero...

 ¿Qué es realmente un árbol de decisión?

Es difícil entender realmente qué es un árbol de decisión, pero pocos sabemos que usábamos árboles de decisión desde niños en algo tan sencillo como un juego: ¿Quién es quién?

Este juego, cuyas reglas y funcionamiento conocemos todos, utiliza árboles de decisión de la siguiente forma.

Quien es quien arbol de decision

Si tenemos que adivinar que la carta del contrario es Jake realizaremos las siguientes preguntas a nuestro compañero de juego:

  • ¿Es mujer?
  • ¿Tiene bigote/barba?
  • ¿Es moreno?
  • ¿Tiene el pelo rubio?

De donde obtendríamos las siguientes respuestas:

  • No
  • Si
  • No
  • Si

Jake arbol de decision

De la primera pregunta obtendríamos que la persona que buscamos es un hombre, por lo tanto, podríamos eliminar todas las mujeres. Es decir, con una única pregunta hemos eliminado del tablero de juego 6 posibilidades.

Con la segunda de las preguntas, obtenemos que los ojos del personaje buscado son marrones, por lo tanto, con esta pregunta, nos quedamos con sólo 10 opciones posibles.

Gracias a la tercera pregunta obtenemos que la persona buscada no es morena, por lo tanto, nos quedamos con sólo 4 opciones.

Por la cuarta y última pregunta, vemos que la única persona de las que quedaban como posibles opciones es Jake.

Veamos por consiguiente cómo sería el árbol de decisión que hemos seguido para obtener el resultado deseado.

Arbol de decision quien es quien

 

¿Cómo aplicamos árboles de decisión a la Logística?

Esta técnica es fácilmente aplicable a muchos sectores y negocios. Por ejemplo, si somos una compañía de mensajería y tenemos que enviar un paquete de un determinado tamaño a un lugar concreto, podemos decidir que furgoneta de las que va a pasar lo más cerca posible tiene espacio suficiente para llevar este paquete. Por lo tanto, podemos asignar a nuestro paquete una furgoneta específica, que se adapte a las características y necesidades de cada paquete.

A modo de resumen podemos decir que los árboles de decisión, aun siendo los grandes desconocidos de este mundo plagado de datos con tendencias activas como puede ser el BigData o el Business Intelligence, son una herramienta muy útil con grandes aplicaciones y que facilita mucho la asignación de una solución (como hemos visto con el ejemplo anterior, la furgoneta) a un problema concreto (el reparto de un paquete con unas necesidades y características específicas.

Miércoles, 28 Junio 2017 12:06

Big Data: paralelización de datos con Apache Spark

Escrito por

Apache Spark es un software que se encarga de distribuir o paralelizar los datos a la hora de analizarlos.

Hoy en día se habla mucho de la paralelización de los datos en diferentes máquinas para procesar la información más rápido, ¿pero realmente que es eso? Paralelizar los datos en diferentes máquinas no es más que dividir los datos en archivos más pequeños. Estos archivos más pequeños son enviados cada uno a una máquina diferente. De esta forma, cada máquina procesará una pequeña parte del fichero inicial en lugar de analizar el fichero completo.

spark consumos

Si tenemos el siguiente archivo: consumos.csv con 2 columnas, la primera indica la hora a la que se recogieron los datos y la segunda indica el consumo de KW/h. Este fichero tiene 10 momentos diferentes en las que se han recogido los datos. Creamos un clúster con Spark como vemos en la siguiente figura:

Spark - master . trabajador

Una de las máquinas es la encargada de controlar las operaciones, que recibe el nombre de máster, y las otras dos máquinas comunicadas con el máster, reciben el nombre de trabajadores. Si mandamos hallar la suma de KW/h a nuestro clúster, que procede de la siguiente forma:

  1. Divide el fichero consumos.csv en 2 ficheros, particion1.csv y particion2.csv, cada uno de ellos de 5 filas
  2. Manda a una máquina del clúster el fichero particion1.csv y a la otra el fichero particion2.csv
  3. Cada máquina del clúster hace la suma de la segunda columna y devuelve el resultado al master
  4. Una vez que el master ha recibido los resultados de cada máquina, suma las dos cantidades recibidas
  5. Spark devuelve la suma total de la columna de los consumos.

Ahora bien, si queremos hallar la media del consumo, cada máquina devuelve la suma como ha hecho antes y, también, devuelve el número de filas que tenía el fichero que ha analizado. En nuestro ejemplo, se actuaría de la siguiente forma:

  1. La máquina que procesa el fichero particion1.csv devolvería una suma de consumos de 0.981 y el número de filas que ha analizado: 5
  2. La máquina que procesa el fichero particion2.csv devolvería una suma de consumos de 0.864 y el número de filas que ha analizado: 5.
  3. La máquina master, suma el número de filas que envía cada máquina y suma cada una de las sumas que recibe de cada una de las máquinas y hace la siguiente división:

spark - media

Veamos de manera gráfica cómo calcularía la media de los consumos:

spark ejemplo

 

Concluimos por lo tanto la simplicidad y velocidad que nos aporta Spark ante un problema de grandes dimensiones. Divide y vencerás!

 

Sábado, 03 Junio 2017 10:04

MDM - MASTER OF WHAT?

Escrito por

Con la infoxicación que existe hoy en día, muchas organizaciones necesitan de alguien que controle, filtre, limpie y estructure sus datos maestros.

Muchas veces hemos oído que quien controla los datos controla el poder, pero también hay que recordar que un gran poder conlleva una gran responsabilidad… Entonces, ¿en manos de quién dejamos la correcta gestión de nuestros datos maestros?

MDM 2

¿Qué son los datos maestros?

La mayoría de los sistemas de software tienen listas de datos que son compartidos y utilizados por varias de las aplicaciones que componen el sistema. Por ejemplo, un sistema ERP  como mínimo tendrá un maestro de cliente, un maestro de artículos y un maestro de cuentas. Estos datos maestros son a menudo uno de los activos clave de una empresa.

¿Qué es la Gestión de Datos Maestros? - MDM

MDM es el acrónimo de Master Data Management. Esta importante y cada vez más popular disciplina empresarial, está diseñada para eliminar el elevado número de errores, redundancias e inconsistencias que existen en los diversos y fragmentados entornos de información de hoy en día. MDM puede ayudar a las organizaciones a mejorar la productividad e impulsar el rendimiento operativo mejorando la precisión de la información y el intercambio de datos dentro y fuera de la empresa.

MDM 3

El MDM se ocupa del quién, qué, cómo y dónde, tanto de actividades comerciales como de las venta, las compras, las diferentes interacciones con clientes, proveedores y empleados.

Cada vez vemos más retos recurrentes en los negocios que exigen la creación de un centro de datos que se extiende a través de aplicaciones, procesos de negocio, líneas de negocio, etc. Estos son los casos típicos de uso y las razones por las cuales nuestros clientes están necesitando su propio MDM.

MDM 4

¿Qué herramientas utilizamos para crear una lista Maestra y gestionar nuestros Datos Maestros?

Considerando las implementaciones MDM que existen en el mercado, LIS-Solutions intenta buscar una solución que ofrezca las siguientes características clave:

  • Gestión de datos unificada para MDM, integración de datos y gestión de procesos de negocio (BPM).
  • Manejo de múltiples dominios en un solo conjunto de tecnología y hardware.
  • Un  amplio conjunto de conectores de integración de datos OOTB.
  • Implementaciones flexibles, como MDM en instalaciones  en la nube  y como servicio.
  • Integración con Big Data
  • Escalibilidad horizontal y verticalmente
  • Un enfoque de plataforma que evite el bloqueo de proveedores

MDM 5

Talend es el único proveedor que ofrece un completo MDM, ETL, data quality, BPM, Enterprise Service Bus (ESB) y una solución de integración de datos en una sola plataforma tecnológica, compatible con muchas de nuestras herramientas de Business Intelligence como Qlik o Tableu.

Además es el único proveedor que ofrece un perfil de datos en una gran solución de datos a través de una plataforma unificada, con un repositorio de código común y herramientas para programar metadatos.

MDM 1

 

Una solución de MDM es el pináculo de las tecnologías de integración de datos, y además tiene la capacidad de trabajar con múltiples dominios, proveer mejores mecanismos para el mantenimiento de la calidad de los datos y proporcionar su funcionalidad en forma de servicios, que permiten integrarla con mayor facilidad a ambientes heterogéneos. MDM puede ayudar a cualquier tipo de organización a cumplir el objetivo de contar con un repositorio central de información, necesaria tanto para operaciones como para la toma de decisiones.

Si desea tener más información sobre Master Data Management (MDM), contacte con nosotros.

 

Página 1 de 4