Elementos filtrados por fecha: Noviembre 2017 - Consultoría Logística

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.

Publicado en Gestión de Datos
Jueves, 23 Noviembre 2017 20:06

WAR ROOM Black Friday

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.

Publicado en Empresa

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.

Publicado en Gestión de Datos

 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.

Publicado en Gestión de Datos