Está en la página 1de 72

GESTIÓN DE PEDIDOS PARA PUNTOS DE VENTA CON APRENDIZAJE

AUTOMÁTICO

PROYECTO DE GRADO PARA OPTAR EL TÍTULO DE INGENIERO


INDUSTRIAL E INGENÍERO DE SISTEMAS Y COMPUTACIÓN.

Por:
JUAN CAMILO JARAMILLO ÁVILA

Asesores:
HAYDEMAR NUÑEZ CASTRO
ANAMARIA MOJICA HANKE

UNIVERSIDAD DE LOS ANDES.


FACULTAD DE INGENIERÍA.
DEPARTAMENTO DE INGENIERÍA INDUSTRIAL.
DEPARTAMENTO DE INGENIERIA DE SISTEMAS Y COMPUTACIÓN.
BOGOTÁ D.C.
2020
Resumen

Ante la gran variedad de la demanda de productos que puede presentar una


comercializadora en sus diferentes puntos de venta, se genera desconocimiento a la hora de
hacer pedidos a los proveedores de los diferentes productos ofrecidos. Por ello, a través de
algoritmos de aprendizaje automático, se propone realizar una automatización de los pedidos
basado en la demanda de los productos para poder estimar la rotación de los inventarios en
cada uno de los puntos de ventas y obtener control de los productos para evitar el sobrestock
en los diferentes puntos de venta. Para ello, se entrenaron los modelos estadísticos de
Regresión Lineal, Holt-Winters y Seasonal ARIMA, junto con los modelos de Deep Learning
Perceptron Multicapa y Redes Neuronales Recurrentes. Para evaluar los modelos se
utilizaron las métricas MSE, MAE y 𝑅! .

Palabras Clave: Inteligencia Artificial, Automatización, Gestión de Inventarios, Redes


Neuronales Artificiales, Minería de Datos, Sistematización de pedidos, Manejo de
Inventarios en punto de venta, Organización y Comunicación a proveedores.
1. Introducción

Una empresa comercializadora de productos naturales encargada del manejo de más de 1500
productos en 170 puntos de venta realiza el pronóstico de ventas de cada producto de manera
manual por los vendedores. Esto ha venido generando a la empresa sobrestock en los puntos
de venta lo cual corresponde a retención de mercancía evaluada en 90 millones de pesos. Por
ello se quiere crear un sistema, el cual permita pronosticar de manera adecuada las ventas de
estos productos y así evitar retenciones en la mercancía, lo cual generaría una mayor rotación
de inventario.

Por ello, se propuso el desarrollo de un sistema que sea capaz de pronosticar la demanda de
cada uno de los productos por cada punto de venta y con ello, poder realizar una planeación
con base en las ventas estimadas de cada producto. Esto con el fin de poder realizar el pedido
a la bodega central de manera automática y evitar la acumulación de inventario en los puntos
de venta. Para el desarrollo del sistema, se evaluó las diferentes series de los productos a
través de las transacciones realizadas en cada punto de venta. Para ello se discriminó cada
uno de los puntos de ventas con sus productos para realizar un análisis preciso de cada uno,
esto con el fin de evitar sesgos dentro de las distribuciones de los productos y así poder
unificar la información para la bodega central.

Para evaluar las series, se utilizó la metodología CRISP-DM, un estándar para el desarrollo
de proyectos de minería de datos, la cual se basa en las siguientes fases:

• Comprensión del Negocio.


• Comprensión de los Datos.
• Preparación de los Datos.
• Modelado.
• Evaluación.
• Implementación.

Ilustración 1. Diagrama de la metodología


CRISP-DM.

Como resultado de las entrevistas y actividades realizadas con directivos, vendedores y


demás, se logró obtener la información de las ventas de siete meses (octubre 2019 – abril
2020). Luego de la validación y la limpieza de los datos, se realizó la construcción de las
series de tiempo para cada demanda de los productos. Esto se hizo con el fin de poder obtener
la información de cada producto de manera autónoma, de manera que el sistema pueda
aprender las propiedades de la serie del tiempo sin ningún tipo de sesgo relacionado con otro
producto, otro punto de venta u otra serie diferente a las ventas del este.

Para la modelación del sistema, se propuso realizar la experimentación con modelos


estadísticos y algoritmos de aprendizaje profundo, esto con el fin de determinar cuál modelo
o algoritmo de aprendizaje se ajusta mejor a las diferentes demandas de los productos
permitiendo aproximarse a futuras demandas. Los modelos estadísticos evaluados son la
Regresión Lineal, la serie Holt-Winters y el Seasonal ARIMA, con el cual se permite
identificar en una primera instancia, la solución de pronósticos basado en la demanda.
También se evaluaron dos algoritmos de Deep Learning los cuales son el Perceptron
Multicapa y las Redes Neuronales Recurrentes. Esto con el fin de lograr un modelo capaz de
predecir de la manera mas adecuada la demanda de los productos.

Para la evaluación y selección de estos modelos, se dividió la serie en tres etapas para el
entrenamiento de los algoritmos de aprendizaje. El último mes de la serie se utilizó como
evaluación del modelo, el penúltimo mes se utilizó como validación del modelo para poder
establecer los hiperparámetros del modelo, y el resto de la serie se utilizó para el
entrenamiento del algoritmo. Además, se evaluó cada resultado con las métricas Mean
Squared Error (MSE), Root Mean Squared Error (RMSE), el Mean Absolute Error (MAE),
y el 𝑅! de la serie. Con las métricas establecidas

Por último, agradecer a la empresa Natural Light S.A. por brindar los datos y la disposición
de cada uno de los empleados a la hora de hacer la entrevista, a las profesoras del
Departamento de Ingeniería de Sistemas y Computación Haydemar Núñez y Anamaria
Mojica Hanke, al profesor del Departamento de Ingeniería Industrial David Álvarez por la
guía y asesoramiento del proyecto de minería de datos, tratamiento de series de tiempo y
entrenamiento de algoritmos de aprendizaje que han permitido la realización de este sistema
de automatización.

2 Descripción general
A la hora de realizar este proyecto aplicado a la empresa, es importante definir los objetivos
del sistema, con el fin de poder determinar la utilidad del proyecto. Además, es importante
entender el contexto de la empresa, las razones por las cuales surgen los problemas y cuáles
son las soluciones propuestas hoy en día.

2.1 Objetivos
Se han establecido los siguientes objetivos para la evaluación de este proyecto:

Objetivo general:
Establecer una política de inventarios por cada punto de venta de la comercializadora con el
fin de controlar la rotación de inventario, automatizar el proceso de pedido y reducir costos
logísticos en la adquisición y transporte de los productos.

Objetivos específicos:
§ Crear un sistema que permita automatizar los pedidos en cada uno de los puntos de venta
hacia la bodega central.

§ Obtener los diferentes niveles de inventario de los productos, tanto de la bodega central
como de los puntos de venta, para poder realizar las diferentes compras a los proveedores.

2.2 Antecedentes
Una primera solución que propuso el departamento de sistemas y analítica de la empresa fue
la implementación de un promedio móvil de las ventas en los últimos tres meses para poder
establecer valores predictivos para el próximo pedido. Sin embargo, se han dado cuenta que
la precisión no es la más adecuada, debido a que no considera diferentes factores como la
estacionalidad de los productos o la aparición de productos nuevos.

Además, como parte de la investigación se estableció que los modelos estadísticos hacen
gran parte de los análisis predictivos que se construyen hoy en día, se sugieren modelos
estadísticos como la propuesta por Holt-Winters y el Seasonal ARIMA descrito por Pérez
(2012) y Ma (2018). También se estudian diferentes modelos como la regresión lineal, y los
promedios móviles los cuales son basados en la demanda histórica, y modelos cuantitativos
como el método Delphi basada en el criterio de los expertos (Reguánt-Alvarez, 2016).

Sin embargo, otros artículos sugieren para el tratamiento de las series temporales, y utilizando
las capacidades computacionales de hoy en día, aplicaciones de Machine Learning, como los
algoritmos de k-Means, Regression Forest y Support Vector Machines para estudios de los
productos en el área de Retail (Usuga, 2018). También se sugiere realizar algoritmos de Deep
Learning como las Artificial Neuronal Network (ANN), Concurrent Neural Network (CNN)
y Deep Belief Network (DBF).

2.3 Identificación del problema y de su importancia


Actualmente, la empresa naturista Natural Light S.A. en una empresa comercializadora de
productos naturales que maneja más de 170 puntos de venta y, debido al desconocimiento de
la rotación de inventario y la demanda de los más de 1300 productos que se manejan, los
pedidos que se realizan a la bodega central son muy grandes. Entrevistando a la jefe del área
de ventas de la empresa asegura que “(…) Actualmente hay aproximadamente 90 millones
de pesos en productos que no se venden en ciertos puntos de venta dado al sobrestock.
Además, nos hemos dado cuenta de que hay productos en ciertos puntos de venta que hacen
falta en otros lugares y se pierde la oportunidad de realizar la venta” (comunicación personal,
2019). Con un estudio preliminar del problema, se ha identificado que este no solo afecta el
área de ventas, también afecta otras áreas como compras, comercial y de cartera. Por lo que
una definición de una política de inventarios dentro de cada punto de venta para gestionar los
excedentes del inventario de los productos ayudará a mejorar el nivel de ventas y del
cumplimiento de un nivel de servicio de la comercializadora.

También, como lo describió la jefe del área de compras “Uno de los grandes problemas que
tenemos al manejo de los productos es que las compras con los proveedores nos basamos en
los stocks de la bodega central. Pero, las vendedoras de los puntos de venta siempre basan
los pedidos a bodega bajo un sugerido general de todos los puntos de venta o a criterio de la
misma vendedora. Lo que genera acumulación de los productos y generando rotación en la
bodega pero no realmente en las ventas, por lo que se genera compras innecesarias
después”. Asimismo, bajo el argumento presentado en la entrevista con la jefe del área
de ventas, existe una preocupación en el área financiera y comercial no solo por la baja
rotación de los productos, sino que se generan mayor cantidad de costos la hora de realizar
las compras a los proveedores y menores niveles de de rotación de cartera. Sin embargo, un
punto importante que dejamos afuera si se implementa esta política es la opinión y
experiencia de cada una de las vendedoras en los diferentes puntos de venta, debido a que
ellas son las que están generando directamente el proceso de las ventas y la interacción con
el cliente. Este puede ser un punto muy importante si ellas entienden la importancia de la
rotación de cada uno de los productos en vez de acumular mercancía “por si acaso”.

Ante esta oportunidad, la jefe del área de ventas ha establecido como objetivo tener un nivel
de inventario de 45 días para los productos vendidos en cada punto de venta, estableciendo
también la menor variabilidad posible tanto entre productos como en puntos de venta. Para
eso, se quiere establecer políticas en cada uno de los puntos de ventas según el inventario a
la mano que manejen, la demanda que manejen actualmente sobre los productos y los
productos sustitutos presentes en el punto de venta. Debido a la gran variabilidad que existen
sobre estos productos se ha propuesto a la empresa definir una política de inventarios
personalizada en cada punto de venta, de manera que se pueda manejar la variabilidad que
existen con respecto a los pronósticos de venta para cada producto, el manejo que se tengan
con productos sustitutos y la política de inventarios establecidos en otros puntos de venta en
la zona. Esto con el fin de reducir el sobrestock que se genera actualmente en los puntos de
venta y poder automatizar el sistema de pedidos hacia la bodega central, para poder establecer
una mayor rotación de inventarios en los productos y controlar las compras que se generan
hacia los proveedores.

3 Diseño y especificaciones
Con los objetivos establecidos en las entrevistas, y estableciendo una política que sea capaz
de controlar la acumulación de productos en los puntos de venta, se definió el siguiente
problema:
3.1 Definición del problema
¿Cómo establecer un sistema que permita predecir las ventas de los puntos de venta para
automatizar los pedidos a la bodega central y obtener una rotación de inventarios mayor a la
obtenida actualmente?

3.2 Especificaciones

Requerimientos Funcionales
§ Realizar un estimado de las ventas para cada producto por cada punto de venta.
§ Obtener la información de cada uno de los productos en los diferentes puntos de venta.
§ Realizar un informe por punto de venta con el pedido sugerido a la bodega central.
§ Unificar la información de las ventas en los puntos de venta.
§ Realizar pronósticos antes de la ventana temporal de pedido (8 – 15 días).
§ Obtener una precisión sobre las ventas mayor a la que se emplea actualmente.

3.3 Restricciones
Una de las mayores restricciones que se presentaron en este problema fue la causada por la
pandemia, la cual limitó la comunicación y el tiempo de entrega de los resultados. Además,
la empresa actualmente maneja su sistema de transacciones y registros a través del lenguaje
COBOL, y no presentan una base de datos relacional de donde se obtiene toda la información.
Por lo tanto, todas las actualizaciones no se pueden hacer en tiempo real debido a que la
comunicación que existe entre los sistemas se realiza a través de archivos planos (CSV). Sin
embargo, dado el rango de tiempo que tiene el sistema para realizar la carga de datos, el
entrenamiento y la predicción, se cuenta con el tiempo suficiente para poder realizar las
tareas.

Una de las mayores limitantes presentes fueron los pocos datos recolectados para el
entrenamiento de los algoritmos, ya que se recolectó la información de siete meses lo que al
transformar los datos convierte entre 160-180 datos por producto, por lo tanto, no presentaba
suficiente variabilidad para que el algoritmo aprendiera el modelo sin ser sesgado. Esta
limitante se presentó debido a que, como se menciono anteriormente, la comunicación de
datos se presenta a través de archivos planos, por lo que la información de un año
representaba GigaBytes de información.

Otro gran limitante es el ambiente de desarrollo, debido a que se utilizó Python como
lenguaje de programación, en la empresa actualmente no existe una persona la cual maneje
el lenguaje de programación ni conozca de las técnicas de aprendizaje automático que se
implementaron, por lo que el mantenimiento y el cambio deberá ser reportado para que
nosotros podamos cambiarlo o realizar capacitaciones del sistema el cual permita un
entendimiento del lenguaje de programación, del ambiente de desarrollo utilizado y de las
técnicas utilizadas en este sistema.
Por último, al desplegarse este sistema en un ambiente colaborativo como lo es Google
Collaborate, se obtienen las restricciones del proveedor, las cuales nos limitan a tener un
espacio en la nube de información de 15 GB, una memoria RAM limitada disponible de 12
GB, un tiempo de ejecución de máximo 12 horas seguidas y la utilización limitada de los
recursos de procesamiento como las GPU y las TPU.

4 Desarrollo del diseño


Para la realización del modelo, se implementó la metodología Cross Industry Standard
Process for Data Mining (CRISP-DM), la cual es un estándar para los proyectos de minería
de datos. Para el desarrollo de este proyecto, se estableció el siguiente cronograma para
cumplir con las etapas propuestas en la metodología.

Semana Actividad
Semana 1 - 2 Comprensión del Negocio:
- Entrevistas con los jefes de áreas.
- Comprensión del proceso de negocio.
- Visita a los diferentes puntos de venta.
Semana 3 - 4 Comprensión del Negocio:
- Establecimiento de la situación actual.
- Establecimiento de los objetivos.
- Establecimiento de los requerimientos.
Semana 5 - 6 Comprensión de los Datos:
- Recolección de los Datos.
- Definición de las variables.
- Definición del diccionario de Datos.
Semana 7 - 9 Preparación de los Datos:
- Recolección de los Datos.
- Definición de las variables.
- Definición del diccionario de Datos.
- Integración de Datos.
- Limpieza de los Datos.
Semana 10 - 12 Modelado:
- Selección de la técnica de modelado.
- Selección de supuestos.
- Construcción de la arquitectura del modelo.
- Entonación de los parámetros.
- Análisis de Salida del Modelo.
Semana 13 Evaluación:
- Presentación del Modelo a la Empresa.
- Aprobación del Modelo.
- Establecer la metodología de
implementación.
Semana 14-16 Implementación:
- Desarrollo del sistema de implementación.
- Plan de monitoreo del sistema.
- Desarrollo y presentación de informes.
- Documentación.

4.1 Recolección de Información

Para la obtención de los datos utilizados en esta prueba se realizaron entrevistas a la jefe de
compras con asesoramiento del presidente de la compañía, entrevistas al área de analítica
para la comprensión de los datos, construcción del diccionario de datos y exploración de los
trabajos realizados actualmente y entrevistas con el departamento de sistemas los cuales
fueron los encargados de brindar los datos para el entrenamiento de los modelos.

Por otra parte, los datos fueron suministrados en archivo plano, debido a que en la
infraestructura actual de la empresa no contaban con una base de datos establecida para la
toma de las transacciones. Debido a esto, solo se obtuvouna porción de las ventas totales del
año 2019 y 2020 a causa de la gran cantidad de información almacenada en disco.

4.2 Alternativas de diseño


Como alternativas de diseño, se evaluaron dos metodologías estándares para la minería de
datos. Una de ellas fue la metodología Sample, Explore, Modify, Model, Assess (SEMMA)
propuesta por SAS Institute el cual consta el proceso como la selección, exploración y
modelamiento de los datos. Esta metodología es utilizada principalmente en descubrimiento
de patrones para grandes cantidades de datos. Por lo general, es utilizado como herramientas
enfocadas en la Minería de Datos.

Una segunda alternativa considerada fue la metodología Knowledge Discovery for Databases
(KDD), la cual busca obtener conocimiento de alto nivel enfocado principalmente a grandes
bases de datos. Se utiliza principalmente en búsquedas de machine learning, reconocimiento
de patrones, estadísticas y construcción de sistemas expertos. Sus etapas principales son la
selección de los datos, el preprocesamiento de los datos, la transformación de los datos, la
selección y aplicación del algoritmo y la consolidación e interpretación del aprendizaje
obtenido.
Sin embargo, se escogió la metodología CRISP-DM no sólo por la adaptación práctica que
se generaba en el contexto del problema, sino también debido a que en los últimos años sigue
siendo uno de los estándares más utilizados en los proyectos de minería de datos
(KDNuggets, 2014). Además, es uno de los estándares más enseñados en las universidades a
la hora de aplicar trabajos de minería de datos.

5 Implementación
Las etapas detalladas por la metodología CRISP-DM, fueron desarrolladas principalmente
de manera presencial con los expertos de la empresa en la primera etapa. Adicionalmente, la
etapa de desarrollo, validación e implementación fue desarrollada en el Lenguaje de
Programación Python, utilizando el ambiente de desarrollo Jupyter Notebook y trabajando
en plataformas de desarrollo en la nube como Google Collaborate y GitHub. Dentro del
desarrollo se utilizaron las librerías de Sklearn1, TensorFlow2, Keras3, Pandas4, Matplotlib5
y statsmodels6.

5.1 Descripción de la implementación


Para la etapa de Comprensión del Negocio se realizaron diferentes entrevistas tales como al
Presidente de la empresa, a la Jefe del área de compras, al Jefe de la Bodega Central, a los
encargados del área de analítica y a los empleados del Departamento de Sistemas. El fin de
estas entrevistas era comprender el contexto del negocio, los principales problemas que se
presentan, los indicadores que utilizan para evaluar el desempeño de los proyectos, y cuál es
el flujo de información para la toma de las decisiones.

En la Comprensión de los Datos, se tuvo contacto principalmente con la jefe del área de las
ventas y con la encargada del área de sistemas, debido a que se necesitaba una construcción
de un Diccionario de Datos para poder validar los diferentes campos presentes en las
transacciones analizadas. Esto debido a que se necesitaba para la etapa de Preparación de
Datos, con la cual se logró identificar los diferentes Puntos de Venta y los diferentes
productos válidos en la empresa (debido a descontinuación de productos o cierres de puntos
de venta). Adicionalmente, gracias al diccionario se logró identificar las transacciones que
pertenecen a ventas y lograr filtrarlas sobre otras transacciones registradas como
devoluciones o vencimientos.

Para analizar los productos por los diferentes puntos de ventas se separarón las diferentes
series de tiempo de cada uno estos por cada punto de venta, con el fin de poder adaptar los
datos a las transformaciones requeridas por cada modelo. Con la separación hecha y

1
https://scikit-learn.org/stable/
2
https://www.tensorflow.org/?hl=es-419
3
https://keras.io/getting_started/
4
https://pandas.pydata.org/pandas-docs/stable/index.html
5
https://matplotlib.org/3.1.1/index.html
6
https://www.statsmodels.org/stable/index.html
basándonos en la teoría del criterio de Ballou (2004), se decidió realizar una clasificación
ABC de los productos basados en el número de días en el cual no se realizaron ventas (siendo
los productos con mayor concurrencia los mejores clasificados). Según Ballou, al organizar
los productos por la variable a analizar, en la mayoría de los casos se sigue la proporción
dada por Pareto (1896), el cual relaciona que el 80% de las ventas generalmente están
causadas por el 20% de los productos. Debido a esto, al primer 20% del grupo se relacionó
con la clasificación A, el 30% siguiente se clasificó en el grupo B y el 50% restante en el
grupo C.

Esta clasificación se realizó con el fin de seguir las recomendaciones hechas por el presidente
de la empresa y basado en los artículos de Syntetos (2009), Ma (2018) y Kourentzes (2019),
el cual expresan que los productos con mayor variabilidad y concurrencia en ventas son los
más difíciles de ajustar. Además de la relación de Pareto que, validado por la jefe del área de
compras, son los productos que más son representativos en las ventas de la empresa.

Con la clasificación realizada, se procedió a realizar cinco experimentos basados en cinco


modelos de predicción diferentes. Se escogieron tres modelos estadísticos: Regresión Lineal,
Holt-Winters y Seasonal ARIMA. Por otra parte, también se evaluaron dos algoritmos de
Deep Learning: una ANN con la arquitectura de un Perceptron Multicapa (MLP), y una CNN
con la arquitectura de un Long Short Memory Term (LSTM). Para cada serie evaluada, se
realizaron los modelos y se ajustaron los hiperparámetros y por último se evaluaron.

Los experimentos fueron realizados por las series clasificadas en el grupo A, con el fin de
reducir a complejidad del sistema de entrenamiento y limitando el problema evaluado. Para
cada modelo evaluado se establecieron cuatro métricas, tres métricas de error como el Mean
Square Error (MSE), el Root Mean Squared Error (RSME), y el Mean Absolute Error
(MAE), y un coeficiente de determinación como el 𝑅! .

Así mismo, se dividió la serie en tres etapas, la etapa de entrenamiento correspondiente a la


serie entre octubre a febrero, la etapa de validación correspondiente al mes de marzo, y la
etapa de test evaluada en abril. Esta división se realiza con el fin de poder ajustar de los
hiperparámetros correspondientes en cada modelo, dejando de lado el conjunto de test para
poder estimar el comportamiento del sistema a la hora de llevarlo a producción.

5.2 Resultados esperados


Se realizó experimentos con cada uno de los algoritmos mencionados anteriormente, con el
fin de evaluar los modelos estadísticos y los algoritmos de Deep Learning. Pese a que no se
cuenta con mucha información sobre el rendimiento de la implementación de los algoritmos
de Aprendizaje profundo. Debido a su reciente implementación como se muestra en la
bibliografía, se obtiene que los modelos estadísticos se ajustan a la demanda cuando este
presenta un comportamiento (estacionario, de tendencia o estacional). Aunque en la literatura
reflejan como medida de error el MSE, es difícil de comparar la calidad de los pronósticos
frente a este contexto debido a la variación de la escala de los productos. Sin embargo, se
espera que los algoritmos de Deep Learning se comporten mejor que los modelos
estadísticos.

6 Validacion
En la validación de los experimentos se estableció una semilla con el fin de generar
reproducibilidad en los datos. Esto con el fin de poder crear escenarios estables y así evitar
que la inicialización de los modelos o la construcción de los datos se vea afectado por la
generación de los números pseudoaleatorios generados por Python.

6.1 Métodos
Como primer paso de los experimentos y utilizando los conjuntos de entrenamiento y
validación, se ajustaron los hiperparámetros correspondientes a cada serie evaluada. Esta
entonación se realiza ya que se quiere poder adaptar cada modelo con cada serie temporal.
Para ello, se utilizó como criterio de selección de modelo el MSE, con el fin de poder obtener
una métrica que sea comparable con todos los modelos evaluados en la serie. Con los mejores
modelos hallados en cada uno de los algoritmos evaluados, se decide seleccionar el mejor
modelo con los datos de test y utilizando el MSE como métrica.

En cada modelo, se establecieron una ventana de hiperparámetros a evaluar para determinar


el mejor modelo que se ajustara a la serie. Para el caso de la Regresión Lineal, se estableció
una ventana temporal de estudio de 8, 10, 12 y 15 días. En el caso del modelo Holt-Winters,
se obtuvo como hipótesis que es una serie estacional aditiva, variando la estacionalidad entre
2 y 20 periodos. Además, los hiperparámetros del modelo SARIMA simulados fueron una
ventana de estacionalidad entre 2 y 20, y un orden entre (2, 1, 4), (1,0,0), (2,1,3) y (3,1,2).
Para ambos modelos de Deep Learning, los hiperparámetros que se utilizaron para el
experimento fue el número de neuronas, variando entre 5, 10, 15 y 20 neuronas, la ventana
temporal entre 8 y 15 días y el escalamiento de los datos (serie normal o escalada). Dejando
como constante la función de activación ‘relu’, el optimizador ‘Adam’ y la función de perdida
como el MSE.

Para seleccionar el mejor modelo dentro de estos experimentos como se mencionó


anteriormente, se utilizó el MSE, debido a que el error es medido según las predicciones del
modelo y no interfiere la variabilidad que puede presentar el modelo. También, al ser
seleccionado por este criterio dentro de los experimentos, se puede establecer de manera
global cual fue el mejor modelo que se adaptó a la serie de la demanda. Sin embargo, cabe
aclarar que para cada producto de cada punto de venta se estimó el mejor modelo que se
ajustara al comportamiento de la demanda, para establecer predicciones más precisas para
cada uno de los productos sin obtener algún sesgo generado por otras series de tiempo.
6.2 Validación de resultados
Para la validación de los resultados, se realizó una muestra aleatoria de 9 series dentro de las
series clasificadas en el grupo A para poder tomar una muestra representativa del rendimiento
de los 5 modelos. Como se muestran en las gráficas del anexo 1, se puede observar la serie
temporal de la demanda utilizada para ajustar el modelo. Para el caso de la evaluación, se
utilizó como conjunto de entrenamiento los datos entre octubre del 2019 a marzo del 2020,
y se obtiene un conjunto de prueba utilizando el mes de abril. Así mismo, se tiene
detalladamente la serie resultante del ajuste del modelo y la predicción que realizaría con los
parámetros ajustados. Para cada serie evaluada, se evaluaron las métricas establecidas con el
fin de seleccionar los mejores algoritmos que permitieran construir un modelo que se ajuste
al comportamiento de la demanda.

Figura 2. Boxplot de las métricas utilizadas para cada modelo evaluado.

Como se puede observar en la Figura 2, las métricas de error evaluadas para los cinco
modelos determinan el rendimiento del modelo construido, permitiendo realizar una
selección basado en un error cercano a 0. Para evaluar la robustez del modelo se realizó el
análisis con el coeficiente de regresión 𝑅! , con el fin de poder realizar un análisis coherente
y completo a la hora de seleccionar el modelo final. Al mostrar los resultados en las tres
métricas de error (MSE, RMSE y MAE), se puede observar que el modelo LSTM presenta
mejores resultados con respecto a los demás modelos. Generando no solo valores cercanos a
cero, sino también obteniendo una menor variabilidad en los errores obtenidos. Además, al
realizar el análisis con el 𝑅! se puede observar que la conclusión es similar a la realizada con
las métricas de errores, puesto que genera un coeficiente cercano a 1 en más de la mitad de
las ocasiones y genera una menor variabilidad en el registro de la métrica.

Figura 3. Boxplot de las métricas evaluadas en los mejores modelos resultantes de las series tipo 'A'.

Adicionalmente, con los mejores modelos establecidos para cada una de las series, se
muestran un comportamiento global de los modelos seleccionados. Se puede observar en la
Figura 3 que gran parte de los modelos entrenados presentan errores con muy poca variación,
salvo algunos datos atípicos correspondientes a modelos que no fueron ajustados
correctamente. Sin embargo, existe un 95% de confianza para estimar que los modelos
entrenados no caerán en la categoría de dato atípico. Además, se registran las estadísticas del
comportamiento de los errores de los modelos evaluados. Como se observa en la Tabla 1,
para más de la mitad de los modelos cosntruidos, existe un ajuste superior al 0.8, permitiendo
establecer un ajuste muy cercano a la serie real.
Tabla 1. Resultados con las métricas establecidas para los productos tipo 'A'.

6.3 Desarrollo del sistema.


Como propuesta para la empreza que utiliza COBOL como lenguaje de programación, se les
suguiere adaptar un servidor instalando el lenguaje de programación Python. Este paso es
importante para la continuidad del sistema puesto que si se quiere realizar el análisis continuo
y el reentrenamiento de los modelos establecidos, es importante poder leerlos y ejecutarlos
para poder generar los reportes establecidos anteriormente, además de brindar una gran
posibilidad de transformación a uno de los lenguajes más utilizados hoy en día según el
PopularitY of Programming Language Index (PYPL).

Sin embargo, si no se decide optar por la opción anterior se puede establecer realizar todo
este desarrollo en el ambiente de Google Collab, el cual como se mostro anteriormente, su
versión gratuita presenta varias ventajas a la hora de desarrollos de Machine Learning. Sin
embargo, si se quiere adquirir la licencia completa para obtener mayor capacidad de cómputo
y obtener una mayor disponibilidad y latencia en el servicio. Este servicio cuesta
aproxiadamente 10 dólares al mes y puede brindar grandes ahorros en el manejo de
inventarios.

7 Conclusiones

7.1 Discusión
Como se pudo evidenciar en este proyecto, las oportunidades en la construcción de políticas
de gestión de pedidos y predicción de ventas en el área de retail ha ido aumentando gracias
a los algoritmos de aprendizaje automático. Pese a que estos métodos fueron desarrollados
hace más de 10 años, en los últimos años se presenta una nueva tendencia en utilizarlos para
el manejo de grandes cantidades de productos los cuales presentan una gran variabilidad en
los datos. Esto con el fin de poder estimar las ventas futuras de los productos más solicitados.
Al obtener una predicción acertada brinda diferentes oportunidades a la empresa que pueden
ser transformadas como ventajas competitivas en el mercado, como por ejemplo la
planeación oportuna de producción, el abastecimiento de los diferentes puntos de venta
evitando sobrestock y costos logísticos adicionales, hasta proyecciones y construcciones de
descuentos para incentivar la compra de los productos con baja rotación.

Por otra parte, se logró culminar este proyecto gracias al seguimiento propuesto por la
metodología CRISP-DM, la cual fue un estándar que se adaptó muy bien al contexto en el
que estábamos evaluando, permitiendo un correcto análisis y la construcción del sistema
solicitado por la empresa. También, se brindó un análisis detallado del problema principal de
la empresa a través de las entrevistas y los análisis de datos. Brindando una nueva puerta al
área de analítica para que considere el estudio de las técnicas de Deep Learning y puedan
adaptarlos a los diferentes problemas que se puedan presentar en la comercializadora.

Sin embargo, una gran oportunidad fue la adaptación de un nuevo sistema para el desarrollo
de algoritmos de aprendizaje como Google Collaborate, la cual permite un desarrollo de
modelos de Machine Learning a través del lenguaje Python utilizando recursos en la nube.
Esta plataforma permite no solo realizar la construcción y desarrollo de proyectos sin utilizar
los recursos de la empresa, sino también realizando un trabajo colaborativo para el desarrollo
de diferentes proyectos.

Por último, se evidenció que los algoritmos de Deep Learning evaluados, en todos los
casos,brindaron mejores resultados que los modelos estadísticos. Por lo tanto, los algoritmos
de Deep Learning se ajustaron mejor a la variabilidad que puede presentar una serie temporal
de venta de productos. Estableciendo predicciones con un coeficiente de regresión muy
cercana a 1 y brindando errores de predicción cercanas a 0.

7.2 Trabajo futuro


Los trabajos futuros se pueden dividir en tres áreas de desarrollo. La primera, la cual se basa
en los datos recolectados, una segunda área en donde se proponen realizar experimentos con
rangos diferentes a los ya utilizados y una tercera área donde se propone realizar otro tipo de
modelos.

La primera área se propone debido a que esta fue una limitación que se presentó a la hora de
realizar el entrenamiento de los modelos. Dado que para obtener una mejor variabilidad y
generalización de los modelos se requiere de una gran cantidad de datos. Este desarrollo
puede ser avanzado, creando una base de datos que permita obtener los datos fácilmente, o
tener a disposición una mayor capacidad de memoria física para poder procesar los datos.

En una segunda área de desarrollo se propone realizar experimentos utilizando otros rangos
de valores para los hiperparámetros en cada modelo, ya que por cuestiones de tiempo y
restricciones establecidas no se pudo iterar sobre otros modelos. Esto con el fin de poder
obtener modelos que se ajusten mejor a las series de demanda y en algunos casos puede que
no sean tan complejos como los modelos presentados. Sin embargo, los resultados obtenidos
muestran un ajuste muy cercano a la serie real de la demanda, por lo que se propone también
realizar la protección intelectual del desarrollo del sistema.

Por último, también se propone evaluar diferentes modelos de Machine Learning como lo
proponen los artículos de Pedregosa (2011), Kulkarni (2012), Ma (2018) y Vesga (2019), los
cuales proponen realizar evaluaciones con algoritmos como la Regresión Lineal Múltiple, k-
Means, Support Vector Machines en su forma de regresión y Random Forest. Así como
evaluar diferentes métricas como el MAPE o el MAAPE para determinar el error de la serie
construida por los modelos de aprendizaje.

8 Referencias
Abadi, M. et al. (2015). TensorFlow: A System for Large-Scale Machine Learning.

Ágreda, P. (2019, 14 Noviembre). Entrevista presencial y comunicación personal.

Ballou, R. (2004). Logística, Administración de la Cadena de Suministro. 5ta Edición.


Pearson Educación. México.

Chollet, F. et al. (2015). Keras.

DBD University. (n.d.). KDD Process/Overview.

Gallardo, J. (n.d.). Metodología para el Desarrollo de Proyectos en Minería de Datos CRISP-


DM.

Goicochea, A. (2009). CRISP-DM, Una metodología para proyectos de Minería de Datos.


Tecnologías de la Información y Estrategia.

Hernández, C. (2018). Hacia una metodología de gestión del conocimiento basada en minería
de datos.

Holt, C. (1957). Forecasting seasonals and trends by exponentially weighted moving


averages. O.N.R. Memorandum no. 52, Carnegie Institute of Technology, Pittsburgh:
Pennsylvania.

Kourentzes, N., Trapero, J. R., & Barrow, D. K. (2019). Optimizing forecasting models for
inventory planning. International Journal of Production Economics, 107597.
doi:10.1016/j.ijpe.2019.10759.
Kulkarni, G., Kannan, P. K., & Moe, W. (2012). Using online search data to forecast new
product sales. Decision Support Systems, 52(3), 604–611.
doi:10.1016/j.dss.2011.10.017.

Ma, S., Fildes, R., Kolassa, S. (2018). Retail forecasting: research and practice. Lancaster
University Management School. Lancaster, UK.

McKnney, W., (2010). Data Structures for Statistical Computing in Python. pp 56 – 61.
Proceedings of the 9th Python in Science Conference.

Montgomery, D., Jennings, C., & Kulahci, M. (2008). Introduction to time series analysis
and forecasting Hoboken, N.J.: Wiley-Interscience.

Pareto, V. (1964). Course d’économie politique. Librairie Droz. Francia.

Pedregosa et al. (2011). Scikit-learn: Machine Learning in Python JMLR 12, pp. 2825-
2830, Journal of Machine Learning Research.

Pérez, R., Mosquera, S., Bravo, J. (2012). Aplicación de Modelos de Pronóstico en Productos
de Consumo Masivo. Biotecnología en el Sector Agropecuario y Agroindustrial.
Universidad del Valle. Cali, Colombia.

Piatetsky, G. (n.d.). CRISP-DM, still the top methodology for analytics, data mining, or data
science projects - KDnuggets.

Reguant-Álvarez, M. Torrado-Fonseca, M. (2016). El método Delphi. Revista d’Innovació.


Barcelona, España.

Syntetos, A. A., Boylan, J. E., & Disney, S. M. (2009). Forecasting for inventory planning:
a 50-year review. Journal of the Operational Research Society, 60(sup1), S149–S160.
doi:10.1057/jors.2008.173.

Tranenko, L. (2019). Machine Learning in Demand Forecasting for Retail. Mobidev. Kiev,
Ucrania.

Usuga C., Lamouri S., Grabot. B. (2018). Trends in Machine Learning Applied to Demand
& Sales Forecasting: A Review. International Conference on Information Systems,
Logistics and Supply Chain. Lyon, Francia.
Vesga, D. (2019). Modelo de planeación de inventarios para E-commerce, utilizando
herramientas de inteligencia artificial para hacer pronósticos de demanda y clasificación
de inventarios (Tesis de Maestría). Universidad de los Andes. Bogotá, Colombia.

Winters P (1960). Forecasting sales by exponentially weighted moving averages. Mngt Sci
6: 324–342.
9 Anexos
Anexo 1. Series evaluadas en el muestreo para obtener el rendimiento de cada uno de
los modelos evaluados.

Serie 1
Serie 2
Serie 3
Serie 4
Serie 5
Serie 6
Serie 7
Serie 8
Serie 9
Anexo 2. Tabla de resultados con los mejores modelos obtenidos evaluado en las cuatro
diferentes métricas.

También podría gustarte