Reto Atmira Stock Prediction



El Data Partner

PcComponentes se fundó en el año 2005, y apostó desde sus inicios por el canal online como principal foco de negocio con el objetivo de poder ofrecer a los amantes de la tecnología los mejores componentes a precios asequibles, sin que por ello los clientes tuvieran que renunciar a la calidad y a un buen servicio postventa. Conservar y mantener el carácter del pequeño comercio, la cercanía con el cliente y el trato personalizado, son las premisas sobre las que se basa su filosofía.

El objetivo

Para cualquier e-commerce es muy importante tener disponibles, siempre que sea posible, aquellos productos que reclaman sus consumidores, el abastecimiento de la demanda es imprescindible para dar un buen servicio al cliente.

Para poder garantizar dicha disponibilidad hay que tener en cuenta dos factores que convierten lo anterior en un reto: no se puede incurrir en rotura de stock (situación en la que la demanda de producto resulta ser superior a las previsiones y se presentan dificultades de abastecimiento en tiempo y forma adecuados) pero tampoco excederse en el aprovisionamiento de unidades de producto con una demanda insuficiente, puesto que requieren un espacio de almacenamiento que es limitado. Por tanto, se necesita una situación de equilibrio que garantice que las desviaciones con respecto a las ventas reales sean mínimas, pero sin incurrir en rotura, puesto que esto tiene impacto directo en la satisfacción de los clientes.

Dado lo anterior, te retamos a crear el mejor modelo de estimación de unidades vendidas para cada uno de los artículos y para cada uno de los días del año en base al cual se puedan planear la frecuencia y volumen de las compras necesarias.





El dataset

El dataset integra la información de las ventas y atributos de producto para las fechas comprendidas entre 01/06/2015 y el 30/09/2016.



FICHEROS

  • Dataset "Modelar_UH2021.txt": Con este fichero deberás construir un modelo predictivo que permita estimar las ventas por producto y día. Datos entre 01/06/2015 y el 30/09/2016.
  • Dataset "Estimar_UH2021.txt": El modelo generado lo aplicarás a los datos de este fichero, de modo que calcules, para cada producto y día, el número de artículos vendidos más probable. Datos entre 01/10/2016 y el 31/12/2016.

VARIABLES

  • Fecha: momento del tiempo en el que se produce el evento.
  • Id: número identificador del artículo.
  • Visitas: número de veces que ha sido visualizada la ficha de un producto dado para un día concreto. Remarcamos que puede darse el caso en el que las visitas sean inferiores a las compras de ese mismo día, siempre que el producto que se ha comprado estuviera previamente añadido al carrito o se haya añadido desde la opción del recomendador sin pasar por ficha de producto.
  • Categoría_uno: categoría de producto nivel uno.
  • Categoría_dos: segundo nivel de agrupación para cada producto que precede a la de nivel uno.
  • Estado: situación en la que se encuentra el producto. Esta variable toma 3 posibles valores para el dataset Modelar_UH2021:
    • - Rotura: no hay stock físico disponible para servir en nuestros almacenes.
    • - Tránsito: no hay stock físico en nuestros almacenes, pero está pendiente de entrega inminente desde proveedor.
    • - No Rotura: hay stock físico disponible en nuestros almacenes.

    Para el dataset Estimar_UH2021 todas las variables aparecen con el estado Tránsito o No Rotura.
  • Precio: indica el precio unitario al que se realiza la transacción. Cuando su valor es nulo, ha de ser completado con el precio anterior temporalmente más cercano para cada artículo.
  • Día atípico: toma los siguientes valores:
    • 0: si estamos fuera de fechas con comportamiento atípico.
    • 1: si estamos en un periodo con una demanda más alta de lo habitual.
    • -1: si estamos en un periodo con una demanda más baja de lo habitual.
  • Campaña: esta variable nos indica para las campañas principales, si el producto estaba en promoción o no en una fecha determinada.
  • Antigüedad: días transcurridos desde la entrada en catálogo de cada producto.
  • Unidades vendidas: variable a predecir. Nos indica las unidades vendidas para cada día y cada artículo.

FORMATO Y ESTRUCTURA

Los datasets con formato txt tienen como estructura:

  • Nombres de campo: Incluidos en la cabecera.
  • Separador: "|"
  • Codificación: UTF-8.

DATASET RESPUESTA

Se denominará “Equipo_UH2021.txt” donde Equipo será el nombre del equipo con el que te has inscrito y constará de tres columnas que corresponden a las variables:

  • Fecha: momento del tiempo en el que se produce el evento.
  • Id: número identificador del artículo.
  • Unidades vendidas: variable a predecir.




Se valorará

La calidad y la técnica utilizada para generar un modelo
Se analizará la técnica analítica utilizada y se compararán objetivamente los valores reales frente a los valores predichos por el modelo. Para ello, se tendrán en cuenta dos objetivos: minimizar las desviaciones con respecto a los datos reales y evitar las roturas de stock (situación en la que la predicción de unidades vendidas es inferior a la demanda real). Está será la métrica a minimizar:
(0.7 * rRMSE) + (0.3 * (1 - CF)), siendo los mejores trabajos los que consigan los valores más reducidos de dicha métrica.
- CF es el % de casos favorables, definidos como aquellos en los que no se ha incurrido en rotura, es decir, la demanda ha sido igual o inferior a la previsión.
- rRMSE se define como

Siendo:
“n” el número de casos,
“yi” el valor real,
“ŷ” el valor estimado,
“Ӯ” la media de los valores reales

¿Qué pedimos?
- Un script (“script exploración”) que contendrá el análisis exploratorio y procesos relevantes testados o ejecutados pero no aplicados en la solución final.
- Un script (“script predicción”) que contendrá el proceso de extracción, transformación y carga de los datos, el procesado aplicado así como la generación de predicciones.
- Una breve descripción donde se expondrá el proceso y la metodología seguida, las técnicas aplicadas y los resultados obtenidos (en formato presentación, pdf o html, máximo 5 páginas con 3 imágenes).

Un valor menor no conllevará explícitamente una mejor clasificación. El “script de predicción” mencionado debe cumplir que sea generalizable y en el caso de métricas equiparables, se tendrán en cuenta los criterios siguientes:
- el Jurado podrá valorar si la documentación interna aportada (código y comentarios) está correctamente estructurada, expresada y es reproducible.
- los scripts de exploración y predicción deben constituir un proyecto de data science con todas sus fases.

En la fase de Presentación y Fallo, el Jurado Nacional tendrá en cuenta, además de los criterios anteriores, que el Proyecto se trasmita de forma clara y concisa.





Ayudas al desarrollo del reto

De cara a abordar el reto, y centrándonos en los dos principales lenguajes de programación que nos permiten realizar analítica avanzada, Python y R, os mostramos algunas librerías que os pueden servir de ayuda:



Librerías en R

dplyr/data.table
Los paquetes dplyr y data.table son herramientas para la exploración y manipulación de datos.

ggplot2
Completo paquete que nos permite representar una gran galería de gráficos. Mejora las funciones habituales de R para gráficos pudiendo incluir más capas y especificaciones.

caret
Incluye sencillas herramientas para analizar la calidad de los datos, selección de características, optimización de parámetros o construcción de modelos predictivos.

mlr
Otro de los meta paquetes más populares. Presenta un marco completo para acceder a distintos paquetes de estadística y machine learning de una forma integrada y coherente.

Tidyverse
Colección de paquetes de R diseñados para data Science.

Keras
API para redes neuronales de alto nivel.

Tensor Flow
Interfaz para acceder a la biblioteca de software libre TensorFlow™ que utiliza diagramas de flujo de datos realizar cálculos numéricos.

Series Temporales
Paquetes de R para el análisis de series temporales.



Librerías en Python

Numpy
Manejo de matrices y la realización de operaciones matriciales y vectoriales de forma sencilla y eficiente.

Matplotlib
Gráficas muy completas para mostrar los resultados de tus pruebas.

Scikit-learn
Librería centrada en machine learning: de clasificadores o regresores, hasta selección automática de modelos y análisis de resultados.