El reto consiste en desarrollar un algoritmo que prediga la demanda de un modelo en un punto de venta de acuerdo a su gama semanalmente, sin usar herramientas, aplicaciones y/o API de paga y además de no generar gastos. Esto es una restricción muy importante
- train.csv - Data de entrenamiento. Desde la semana 1 (17/05/2021-23/05/2021) hasta la semana 50 (25/04/2022- 1/05/2022)
- test.csv - Data de test. Desde la semana 51 (2/05/2022-8/05/2022) hasta la semana 60 (4/07/2022-10/07/2022)
- test_sample.csv - Un ejemplo de submission en el formato correcto
- Z_MARCA - Marca del equipo
- Z_GAMA - Gama del equipo
- Z_MODELO - ModeloZ_MODELO - Modelo
- Z_DEPARTAMENTO - Departamento del Perú del punto de venta
- Z_PUNTO_VENTA - Punto de venta a abastecer
- SEMANA_XX - Semana de abastecimiento de acuerdo con el modelo, punto de venta y gama
Se pide determinar la demanda semanal de un modelo en un punto de venta de acuerdo a su gama.
Se evaluará a los participantes en función del RMSE, de menor a mayor. Durante la competencia se reportarán resultados sobre un subconjunto del set de evaluación (50%), pero los resultados finales se calcularán sobre los datos restantes (50%)
Para todos los participantes, los archivos subidos deberán tener las siguientes columnas: ID yDemanda. Tener en cuenta que el valor de "Demanda" hace referencia al valor forecasteado. Al mismo tiempo, la estructura de la variable "ID" es Modelo|Punto de venta|Gama|# Semana.
ID,Demanda
XXXX|PDV1|XXXX|Semana 55,1
XXXX|PDV1|XXXX|Semana 56,2
XXXX|PDV1|XXXX|Semana 57,3
Nuestra solución logró el primer puesto en ambos leaderboards tanto público como privado demonstrando que nuestro modelo es robusto y no tuvo problemas de overfitting.
- Instalar con
pip install -r requirements.txt
las librerías necesarias para correr los scripts de Python/o/Notebooks. (Ver Recomendación 1) - En la carpeta notebooks, correr el notebook 1.Preprocessing.ipynb o el script Preprocessing.py. (Ver Recomendación 3)
- En la carpeta notebooks, correr el notebook 2.Modeling_Prophet_Ratios.ipynb o el script Modeling_Prophet_Ratios.py. (Ver Recomendación 2)
- En la carpeta notebooks/Forecasting_por_semanas, correr el notebook 3.PreprocesamientoTemporal.ipynb y 4.CreacionDatasetTemporal.ipynb o sus scripts .py homólogos (Ver Recomendación 2).
- Alternativamente si se desea ahorrar el uso de memoria RAM y tiempo (2 horas aprox.) para el procesamiento temporal de la data, puede omitir el paso 3 y descargar todos los archivos de la siguiente ruta: https://drive.google.com/drive/u/1/folders/1ZYyjUH2FAHhVYJ9avH_GFFhOjAP_ekRV
- En la carpeta notebooks/Forecasting_por_semanas, correr los notebooks 5.Entrenamiento_modelo1.ipynb, 6.Entrenamiento_modelo2.ipynb y 7.Ensamblaje_de_modelos.ipynb en ese orden o correr sus scripts homólogos. (Ver Recomendación 2)
- Los valores de la predicción del forecasting se encontrarán en la carpeta Results con el nombre
submission_model_final.csv
- Se recomienda instalar las librerías desde una terminal como anaconda prompt en Windows o Linux/MAC terminal ya que correrlo desde los notebooks puede tener problemas.
- Se recomienda correr el proyecto usando los notebooks para sacarle provecho a todo el análisis realizado y la propuesta del modelo.
- En el caso del notebook Preprocessing si gusta puede optar por el script Preprocessing.py ya que no se tiene mucho análisis de datos.