Kibana como herramienta de Business Intelligence

En los anteriores posts vimos los beneficios que tiene el análisis de datos en tiempo real dentro de las empresas [link primer post] y cuáles son las herramientas necesarias para alcanzar este objetivo [link segundo post]. En este post, haremos uso de la herramienta Kibana incorporada dentro del entorno ELK , que será la encargada de realizar las representaciones de B.I.

¿Qué es Kibana?

Kibana un plugin de visualización perteneciente al entorno ELK que sirve para generar visualizaciones y dashboards, es decir, es una herramienta de business intelligence.

¿Cómo accedemos a Kibana?

Para acceder a este plugin, si le instalamos por defecto, podremos acceder a través de nuestro navegador usando la dirección 127.0.0.1:5601 o localhost:5601. Es decir, es una aplicación web. Esto permite instalar Kibana en un servidor y acceder a él mediante la configuración adecuada desde cualquier ordenador conectado a nuestra red.

¿Qué nos aporta Kibana?

Kibana nos aporta una interfaz gráfica e intuitiva para realizar gráficas a medida. Nos permite elegir, de forma sencilla, entre 16 tipos de gráficas.

tipos visualizaciones

Dentro de estas opciones seleccionaremos, para nuestro ejemplo, las gráficas líneas y accedemos a un menú, donde podemos configurar qué variable queremos poner como eje X y qué variable como eje Y. En este caso y continuando con los datos recopilados de los coches, podemos generar un gráfico en el que representemos el tiempo en el que hemos capturado los datos frente a las revoluciones en cada uno de los instantes.

Si ejecutamos la gráfica, podemos ver la gráfica generada a la derecha del menú. En este caso, hemos cogido como intervalo de tiempo entre las 11:41 hasta las 11:54 del día de hoy y obtenemos:

grafica kibana 1

 

Obviamente, podemos realizar diferentes tipos de gráficas y coger diferentes medidas, por ejemplo, si seleccionásemos el formato de gráfica “Gauge”, podemos elegir las revoluciones máximas alcanzadas en el periodo de tiempo, quedando de la siguiente forma:

grafica kibana 2

Para finalizar, una vez realizadas todas las gráficas que nos interesan y debidamente guardadas, podemos generar un dashboard.

En el menú de la izquierda seleccionando la opción “Dashboard”, podremos crear nuestro propio panel de KPI’s personalizado añadiendo todas las gráficas que hallamos creado.

Otra de las posibilidades que posee Kibana para la representación gráfica es “Timelion”, situada en el menú de la izquierda. Esta herramienta es un editor de series temporales. Esto significa que podremos realizar comparaciones entre gráficas, por ejemplo, podemos comparar las revoluciones en el mismo momento de tiempo entre un vehículo de gasolina y uno diésel:

grafica kibana 3

Este tipo de gráficos también podemos añadirlos en el dashboard conjuntamente a los otros gráficos.

¿Cómo podemos visualizar datos en Kibana en Tiempo Real?

El principal objetivo de estos post, es alcanzar la representación gráfica en tiempo real de los datos generados y almacenados dentro del entorno ELK, gracias a Kibana esto resulta muy sencillo. En la esquina superior derecha de la aplicación, donde tenemos el intervalo de fechas que estamos visualizando, podemos configurar que los gráficos se actualicen cada cierto periodo de tiempo:

kibana 4

Haciendo esta sencilla acción y disponiendo de registros que se almacenen en nuestra base de datos de manera constante, podremos alcanzar el objetivo de leerlos y mostrarlos graficamente de una manera rápida, sencilla y personalizada.

Para concluir este cuarteto de posts, sólo nos falta enseñar los resultados finales obtenidos de los coches estudiados. Este último post se publicará a lo largo de esta semana, ¿estáis preparados?

Entorno ELK: Manejo de datos en Tiempo Real

 Después de nuestro primer post  en el que introducíamos nuestro proyecto de análisis de datos en tiempo real, pasamos a la descripción de las herramientas y recursos necesarios.

Como resulta obvio, lo principal en este proyecto son los datos, y para ello decidimos que estos fueran reales y que pudiéramos contrastar y comprender. Así fue como decimos realizar la monitorización de datos de dos automóviles en circulación. Por suerte la captura de datos en utilitarios resulta muy fácil usando el protocolo OBDII.

Protocolo para extraer datos: OBDII

OBDII es un sistema de diagnóstico a bordo de vehículos. Este sistema está disponible en una amplia gama de vehículos desde aproximadamente el año 1996 en Estados Unidos. En Europa este sistema se instaló en el año 2000 para los vehículos gasolina, en 2003 para los vehículos diésel y en 2005 para camiones. Gracias a este dispositivo hoy en día podemos acceder a los sensores y datos de cualquier vehículo cuya fecha de fabricación supere las anteriormente citadas. Este sistema es muy útil para IoT.

Análisis de datos en tiempo real: ELK

La otra parte más importante de este proyecto consiste en ser capaz de capturar los datos, analizarlos y finalmente mostrarlos. Para esto utilizamos el entorno ELK, presentado en el anterior post, Elasticsearch+Logstash+Kibana.

elk

Siguiendo el esquema superior tras la creación del log (registro) está la fase de la captura de los datos (recolección, procesamiento y almacenado). Para esto usaremos Logstash  una herramienta capaz de recolectar los logs, modificarlos de acuerdo a nuestras necesidades y, posteriormente, enviarlos hacia la base de datos. Gracias a esta herramienta, podemos enviar los logs creados por el coche a una base de datos en el formato que más nos interesa.

logstash

En una segunda etapa usaremos Elasticsearch. Este combina un motor de búsqueda y una base de datos que usaremos para almacenar los datos procesados por Logstash. Las dos características diferenciadoras de esta base de datos es el ser distribuida y la gran velocidad de procesamiento de búsquedas que puede alcanzar. Esta combinación hace que sea ideal para realizar proyectos de análisis en tiempo real. 

elastic

Como último paso para mostrar los datos decidimos usar Kibana. Kibana es un plugin de Elasticsearch que aporta la visualización gráfica de los datos almacenados en el clúster de Elasticsearch. De esta forma, se pueden crear gráficas individuales o dashboards completos. Además, gracias a la función de refresco, se pueden ver los datos actualizados a nivel de segundos. Es una interfaz gráfica e intuitiva, por lo que cualquier persona perteneciente al mundo del negocio tiene la completa autonomía para generarse sus propias representaciones gráficas, en función de sus necesidades y sin necesidad de contar con la parte de IT.

kibana

Así es como se crea el entorno ELK (Elastic Stack, nombre que recibe en inglés) que nos permite conseguir las representaciones gráficas de datos obtenidos en tiempo real.

Business Intelligence y el arte de las representaciones

En el siguiente post, se detallará como crear los gráficos usando Kibana, además de crear nuestros propio dashboard.

Te esperamos en el siguiente post, ¿te lo vas a perder?

Visualización de datos en tiempo real (1/4)

Actualmente la sociedad exige rapidez y puntualidad. Para cumplir con estos dos rasgos, se hace indispensable disponer de información en tiempo real.

Los datos están generándose continuamente por multitud de dispositivos. Además, comenzamos a saber la importancia del análisis de datos. Por eso cada vez más empresas, buscan la manera de analizar estos datos con la mayor brevedad posible.   

real time 1

 

¿Realmente se ahorran costes con una monitorización de datos en Tiempo Real?

¡SI! En forma de: reducción de gastos, optimización de recursos, predicciones a medida de la demanda...

Veamos diferentes casos de uso:

  • Caso de Uso #1: Proveedor
  • En el ámbito de la logística, si sabemos cómo y cuánto está consumiendo nuestro cliente, podemos optimizar stock para poder servirle en forma y tiempo. De esta forma nos ahorramos gastos en inmovilizado, reduciendo costes de almacén y asegurando un nivel de seguridad en el stock más reducido.
  • Caso de Uso #2: Cliente
    Si la empresa se dedica a la producción y depende de una materia prima que le sirve un proveedor externo, dicho proveedor puede saber en cada momento cuánta materia prima queda en el almacén y, por lo tanto, puede proveer a la empresa en consecuencia, evitando roturas de stock, con las ventajas que ello conlleva. Si la empresa se queda sin materia prima, tendría que parar la producción, elevándose los costes e incrementando el riesgo de tener que retrasar algún envío.
  • Caso de Uso #3: Línea de producción
    En el caso de que nuestra empresa se dedique a la producción en línea, podemos representar de forma gráfica todos los parámetros recogidos en la misma, de forma que seremos capaces de detectar errores en la cadena de producción en tiempo real, simplemente con una visualización y así retirar la pieza afectada en la mayor brevedad posible, sin tener que esperar a que recorra toda la cadena para ser retirada de forma manual.

¿Cómo puede una empresa conseguir visualizaciones de datos en tiempo real? y ¿cómo podemos disponer de esta información de forma automática?

elk

Para responder a estas dos preguntas, vamos a recurrir al entorno ELK: Elasticsearch, Logstash y Kibana. Con estos tres softwares conseguimos una completa suit que nos permite recoger los datos y enviarles (Logstash) a una base de datos (Elasticsearch) en la cual se realizarán las búsquedas necesarias para que desde una herramienta de visualización gráfica (Kibana) podamos ver los resultados en tiempo real.

 

Experimento: Monitorización de datos de dos automóviles en Tiempo Real.

coche graph

Actualmente contamos con la tecnología necesaria para almacenar y representar los datos en tiempo real, por ello durante las siguientes semanas, vamos a publicar una serie posts, en los que trataremos la manera de realizar representaciones gráficas de dos coches en movimiento. ¡Este será el resultado final!

 

kibana

¡Cada semana lanzaremos dos nuevos posts, no te los pierdas!

¿Qué es VSM - Value Stream Mapping?

Kaizen, 5Ss, Pokayoke, Hejunka, Muri, Mudas….. términos muy de moda. Lean, una metodología nada moderna (más de 70 años de antigüedad) pero de rabiosa actualidad y que está dando mucho juego a la hora de gestionar la mejora continua en las Operaciones.

Pero si bien, el objetivo de lean es reducir las 9 formas de muda o desperdicios que solemos tener en nuestros procesos:

 

vsm pro

  1. Inventario.
  2. Transporte.
  3. Movimiento de personas.
  4. Tiempos de espera.
  5. Sobre proceso.
  6. Sobreproducción.
  7. Errores.
  8. Desperdicio del talento de las personas.
  9. Despilfarro de energía.

En LIS Solutions nos hemos centrado en el proceso en sí, analizando y aportando valor a una herramienta básica dentro de la metodología Lean, como es el VSM (Value Stream Map o Mapa de flujo de valor ) de nuestras operaciones Logísticas.

VSM + B.I

Hemos conseguido combinar un mapa de flujo de valor, con los valores de los KPI y parámetros. Esta actualización la hacemos en batches customizables a nivel empresa (cada hora, franja de 5 minutos, semana, etc.) volcando la información del SGA-ERP en un cuadro de mandos.

Esta herramienta, así como los valores históricos de cada uno de los parámetros, inventarios entre procesos, tiempos de espera, etc. nos va a permitir analizar ‘online’ la influencia de las acciones puestas en marcha sobre nuestros KPI correspondientes, evidenciando la correlación entre la acción tomada y la mejora en el dato y permitiéndonos en tiempo real hacer correcciones y por tanto reducir el riesgo asociado a nuestros cambios.

esquema vsm

 

Una solución 100% adaptable al proceso de nuestros clientes y que sin duda es un elemento complementario e indispensable en toda implantación de cultura lean en la Supply Chain.

Contacta con nosotros.

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.

Tenemos por delante un gran reto, conseguir que la Logística de uno de los grandes del textil salga victoriosa de la guerra, en uno de los eventos del marketing más agresivos del año (Black Friday y Cyber Monday)

"La guerra es un juego serio en el que uno compromete su reputación, sus tropas y su patria."                   Napoleón I (1769-1821) Napoleón Bonaparte. Emperador francés.

WarRoom

Nuestros generales lo tienen claro, lo primero que necesitamos es tener visión absoluta, y en tiempo real, sobre nuestro campo de batalla, la cadena de suministro, para ello nos apoyaremos en una torre de control de datos.

Estamos preparados, tenemos nuestro centro de mando, conectado y sincronizado, estamos ante una guerra tecnológica, pero contamos con todos los actores tradicionales, generales (directores de proyecto), capitanes (coordinadores-facilitadores) y por supuesto, los soldados (científicos de datos, a los que podemos ver más abajo). 

 warroom personas

"Estar preparados para la guerra es uno de los medios más eficaces para conservar la paz." George Washington (1732-1799) Primer presidente de los Estados Unidos.

Nuestra estrategia para ganar la guerra del Black Friday:

  1. Lo primero, hacernos con la colina, necesitamos ver más claro y mejor que el resto. Integraremos todas las fuentes de información necesarias, y las visualizaremos en tiempo real (SGA, ERP, Operadores Logísticos…).
  2. Adelantarnos estratégicamente. El análisis de datos en tiempo real nos ayudará a detectar anomalías, además analizaremos en tiempo real el sentimiento de nuestros clientes, quejas e incidencias para actuar con la mayor celeridad.
  3. 23111955

  4. Decidir eficazmente. En base a todos los análisis se definirán escenarios de actuación y se decidirá entre ellos a través de matrices de ponderación donde influirán distintos factores: velocidad, desviación entre previsión y realidad, saturación de sistemas, nivel de servicio, coste…
  5. Recoger los cuerpos y darlos sepultura. Es fundamental después de un evento (guerra) como este, volver a la normalidad y estabilizar los sistemas y recursos a la mayor velocidad posible, además será clave también gestionar las incidencias de la forma más ágil y resolutiva posible.

Esperemos que nuestros análisis sean un éxito y nos ayuden a ganar la guerra.

Podemos ayudar a ganar guerras, batallas y el día a día. Nuestro arma “Los datos”.

"No puedo creer que me condecoren. Yo creía que era necesario conducir tanques y ganar guerras." John Lennon (1940-1980) Cantante y compositor británico.

Para conocer más información sobre nuestras torres de control de datos, contáctanos - Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.

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 Machine Learning

 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 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.

Si quieres conocer más sobre analítica avanzada descubre nuestro apartado de analítica avanzada de datos.

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.

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.

Siguiendo la entrada en la que anunciábamos la preselección de LIS-Solutions en el programa Bind 4.0 y una vez realizado el pitch el pasado lunes 16 de Octubre en el Parque Tecnológico de Miramón. Nos gustaría aprovechar una segunda entrada de blog, esta vez a modo de presentación "versión extendida" de: qué, quiénes y cómo trabajamos en LIS-Solutions.

Un Poco de Historia.

LIS-SOLUTIONS es una Ingeniería especializada en analítica avanzada para la Industria.

Fundada en 2013 simultáneamente en Alemania y España desarrolla proyectos de consultoría logística y  análisis de datos, en 5 países (España, Alemania, Suiza, Austria y Portugal) Actualmente cuenta con 15 personas en España y 3 en Alemania repartidas en sus delegaciones de: Vitoria-Gasteiz, Madrid, Barcelona, Santander, Ulm y Stuttgart.

Productos.

Quickcheck Pro: la herramienta de diagnóstico estrella de LIS-Solutions, con la que en menos de 72 horas se puede visualizar el estado general de la empresa analizada y realiza una comparación de los indicadores principales con empresas de su entorno.

Visual Tower Pro: A través de esta herramienta es posible tener una completa visión de toda el negocio desde una perspectiva elevada hasta los detalles más significativos evaluando todo el proceso desde el pedido al cobro.

Zero Shutdowns: Se trata de un software y un conjunto de herramientas que basados en algoritmos predictivos permiten anticiparse a las paradas de máquinas y gestiona visualmente el pool de máquinas en tiempo real.

Proyectos

MANGO: Empresa del sector textil en el que desarrollamos una Torre de Control para gestionar la venta y distribución de productos comercializados por E-Commerce. A través de más de 20 KPIs MANGO podrá analizar en tiempo real la situación de su cadena logística.

BMW: con el fin de mejorar las condiciones de trabajo de sus operarios en su fábrica de Munich, requería de un estudio de análisis avanzado para encontrar el puesto idóneo para cada trabajador en función de ciertas limitaciones físicas y discapacidades. Tras un estudio de análisis matricial de más de 2.5 millones de combinaciones el algoritmo sugería a cada jefe de área el puesto donde cada operario podría desarrollar su trabajo de manera más ergonómica, tras lo cual se consiguió un aumento de un 15% de la productividad de estas personas.

ARKOPHARMA: Empresa líder del sector fitosanitario, requirió de un estudio de viabilidad basándonos en las BBDDs, a través de las cuales creamos un modelo digital de su negocio y pudimos analizar el ROI de sus planes de futuro. En una segunda fase instalamos Quickcheck Pro ® para monitorizar su nuevo proceso logístico

¿Más información?

Si quieres conocer de primera mano más información sobre nuestros:

No dudes en contactar con nosotros

Página 2 de 9