Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Abstract: Este trabajo surge a raíz de una competencia organizada por la empresa Mercado libre, en la cual se proporcionó una
serie de tiempo de ventas históricas, con el objetivo de predecir, dentro de los 30 días siguientes, cuales son las probabilidades de
que un artículo determinado se agote para cada uno de esos días. Para la resolución del problema se utilizó un modelo de Redes
Neuronales Artificiales y en base a los resultados se calcularon las probabilidades diarias de quedarse sin stock.
Keywords: Control de inventario, Regresión lineal, Redes Neuronales Artificiales, Días de inventario
Fig. 1: Ventas entre febrero y marzo de 2021 en el sitio Mercado libre Argentina Fig 2, Matriz de correlación
2. Caso de estudio
2.1 Datos
Utilizamos un set de datos proporcionado por
listing_type
Mercadolibre, sobre ventas diarias de productos y nivel de
stock de los mismos, cuenta con datos de Mercadolibre shipping_logistic_type
Brasil, México y Argentina, para este trabajo se segmentaron
los datos correspondientes a Mercadolibre Argentina. Se shipping_payment
utilizó, para el diseño del modelo, RapidMiner y un script Target_stock
desarrollado en Python para el cálculo de las probabilidades.
date_day
date_month
2.2 Construcción del modelo
La predicción fue resuelta generando un modelo date_week
mediante una red neuronal artificial. Para ello, inicialmente Thresthold node
se segmentaron los datos, dejando solamente los
correspondientes a Mercadolibre Argentina, luego,
mediante la matriz de correlación, Fig [2], no se detectaron Fig. 3. Red neuronal
atributos fuertemente correlacionados por lo que no hubo
que descartar ningún atributo. El atributo a predecir (label), Modelo:
Node 1 (Sigmoid) Node 2 (Sigmoid)
es sold_quantity. ---------------- ----------------
El proceso fue realizado con la herramienta de análisis listing_type: 0,038 listing_type: -0,044
shipping_logistic_type: -0,002 shipping_logistic_type: -0,016
de datos RapidMiner, donde se realizaron diferentes shipping_payment: 0,021 shipping_payment: 0,020
operaciones. Primeramente se numerizaron los atributos target_stock: -0,227 target_stock: -0,221
listing_type, shipping_logistic_type y shipping_payment. date_day: 0,006 date_day: 0,056
Otros atributos utilizados fueron date_day, date_month, date_month: 0,000 date_month: -0,007
date_week: -0,018 date_week: -0,002
date_week, (estos surgen de la numerización del atributo Bias: -0,100 Bias: -0,087
date) y finalmente target_stock que es la cantidad de Node 3 (Sigmoid) Node 4 (Sigmoid)
inventario al último día (31 de marzo), el atributo site_id fue ---------------- ----------------
utilizado para segmentar los datos a la región Argentina y el listing_type: -0,007 listing_type: -0,019
shipping_logistic_type: 0,030 shipping_logistic_type: -0,019
atributo SKU para luego hacer las estimaciones para un shipping_payment: -0,024 shipping_payment: -0,045
producto en particular. target_stock: -0,158 target_stock: -0,172
date_day: -0,020 date_day: -0,026
Para el entrenamiento del modelo, se utilizó un 80% del date_month: 0,018 date_month: 0,013
dataset original y el 20% restante fue usado para testing. date_week: -0,017 date_week: 0,002
Bias: -0,052 Bias: -0,038
La RNA se entrenó con 200 ciclos de training, un Node 5 (Sigmoid) Output ( Regression Linear)
learning rate de 0,01 y un momento de 0,9. Una vez ---------------- -------------------
generado el modelo, se realizaron las pruebas de listing_type: 0,018 Node 1: -0,270
performance, lo que nos arrojó un error medio cuadrático shipping_logistic_type: 0,055 Node 2: -0,296
shipping_payment: 0,017 Node 3: -0,197
de 7,773 +/- 0,000. target_stock: -0,202 Node 4: -0,257
El modelo generado está compuesto de cinco nodos de date_day: -0,026 Node 5: -0,224
date_month: -0,025 Threshold: -0,337
entrada, cinco nodos ocultos y el Bias y un nodo de salida date_week: 0,046
[fig.3]. Bias: -0,058
Especialización en inteligencia de datos orientada al big data - UNLP 2021 - Aplicaciones de Inteligencia de Datos - Docente a
cargo: Dr. Aurelio Fernandez Bariviera (Univ. Rovira i Virgili – España)
Finalmente, se procesó el archivo CSV obtenido en 4 Conclusiones
RapidMiner con un script Python y en base a las Es posible, mediante Redes Neuronales Artificiales,
predicciones de ventas del día n, se recalculó el stock hacer predicciones acertadas de acuerdo a la época del año
diario el cual se utiliza como dato de entrada para el y manejar niveles de inventarios correctos que ayuden a
siguiente día n+1 y así hasta llegar al día 30, luego se manejar eficientemente un negocio. Gracias a las
calculan las probabilidades diarias de quedarse sin stock capacidades de aprender en base a datos históricos de las
para un SKU en particular, para ello se recorre el vector RNA, es posible hacer uso de ellas en problemas de
generado, se suma la cantidad vendida del día anterior predicción, donde la variable a estimar sigue con un
con la cantidad vendida del día actual (ventas patrón de comportamiento similar a lo largo del tiempo,
acumuladas), hasta que este sea igual al stock, y se Nos hemos encontrado con el inconveniente en
realiza el cociente entre la cantidad diaria vendida y el donde en ciertos días hay picos de venta y nuestro modelo
total de ventas predichas, lo que nos da la probabilidad no logró predecirlo eficientemente, pero en general hace
de quedarse sin stock de cada día. aproximaciones con un error relativamente bajo. Si bien
las redes neuronales pueden utilizarse para este tipo de
P(NOStock) = Sold_Quantity_Predict / ∑ Sold_Quantity_Predict
predicciones, existen muchas variables que en este
3 Resultados obtenidos ejemplo no han sido tenidas en cuenta y podrían influir
Después de realizar varios ensayos, con un k = 2, mucho en las ventas, como por ejemplo medios de pago,
es decir, la red utiliza la información de 2 meses para promociones bancarias, descuentos, estacionalidad de
predecir las ventas del tercer mes, y con 200 ciclos de ciertos productos, etc., pero igualmente, en general se
entrenamiento, nos da como resultado las estimaciones de logró una buena aproximación a lo que se pedía realizar.
ventas diarias, las que se pueden ver comparadas con las
ventas reales diarias [Fig.4]
Referencias