NOTICIAS / TECNOLOGÍA AI

25 de noviembre de 2020
En Artefact somos tan franceses que hemos decidido aplicar el aprendizaje automático a los cruasanes. Este primer artículo de dos explica cómo hemos decidido utilizar Catboost para predecir las ventas de “viennoiseries”. Las características más importantes que impulsaron las ventas fueron las últimas ventas semanales, si el producto está en promoción o no y su precio. Le presentaremos algunas bonitas características de ingeniería, como la canibalización y por qué a veces es necesario actualizar la variable objetivo.

¿De qué se trata?

En Artefact somos tan franceses que hemos decidido aplicar el aprendizaje automático a los cruasanes. Este primer artículo de dos explica cómo hemos decidido utilizar Catboost para predecir las ventas de “viennoiseries”. Las características más importantes que impulsaron las ventas fueron las últimas ventas semanales, si el producto está en promoción o no y su precio.

Le presentaremos algunas bonitas características de ingeniería que incluyen la canibalización y por qué a veces es necesario actualizar la variable objetivo. Elegimos como métricas de evaluación la Precisión de Pronóstico y el biais. Nuestro segundo artículo explicará cómo pusimos este modelo en producción y algunas buenas prácticas de ML Ops.

¿Para quién?

  • Data Científico, Ingeniero ML o Data amantes

Contexto

Desarrollo de modelos

Ahora que tenemos un problema bien definido y algunos objetivos que alcanzar, por fin podemos empezar a escribir un buen código python en nuestros cuadernos: ¡que empiece la diversión!

Solicitud Data

Como en cualquier proyecto científico data, todo empieza con data. Por experiencia, le recomendamos encarecidamente que solicite el data lo antes posible. No sea tímido a la hora de pedir muchos data y para cada fuente de data asegúrese de identificar a un referente, alguien con quien pueda ponerse en contacto fácilmente y plantear sus preguntas sobre la colección de data o sobre cómo se estructura el data.

Gracias a las distintas reuniones pudimos elaborar una lista de los data que podíamos utilizar:

  • Transaccional data incluido el precio de los productos.
  • Promociones: una lista de todas las promociones futuras y sus precios asociados.
  • Información sobre el producto: diferentes características relacionadas con los productos.

Análisis exploratorio Data (EDA) y detección de valores atípicos

Image for post

De la predicción de ventas a la predicción óptima de ventas

Un reto nos llevó a actualizar nuestra variable objetivo. A veces, debido a una influencia inesperada o a una mala previsión, el departamento esperaba una escasez de productos antes del final del día. Entonces pueden producirse dos fenómenos: el cliente al no poder encontrar su producto no compra nada, o compra un bien similar. Basándonos en el histórico data, dedujimos algunas leyes de distribución (estadísticas básicas) que nos ayudaron a modelizar este impacto y actualizamos nuestra variable objetivo para no predecir las ventas históricas sino las ventas óptimas de un producto concreto.

Esta actualización de la variable objetivo es delicada porque es realmente difícil saber si la actualización ha tenido sentido. ¿Mejoró realmente la calidad del data o la empeoró? Una forma de cuantificar nuestro impacto fue tomar las ventas sin ruptura de existencias y crear una falsa escasez, por ejemplo, eliminar todas las ventas después de las 5 ó 6 de la tarde y luego intentar reconstruir las ventas. Este método nos ayuda a volver a un problema clásico supervisado que podemos evaluar objetivamente.

Como resultado, pudimos predecir las ventas óptimas y evitar que nuestro algoritmo aprendiera patrones de escasez.

Nuestros modelos

Después de haber limpiado correctamente nuestro data, por fin podemos probar y ensayar algunos modelos.

Image for post

Un modelo frente a muchos modelos

En resumen, utilizamos un algoritmo Catboost, para predecir todas nuestras 10 000 series temporales, para cada producto y cada tienda. Pero, ¿y si un artículo tiene un patrón de ventas realmente particular, o una tienda específica? ¿Podría el algoritmo identificar y aprender este patrón?

Estas cuestiones nos llevan a preguntarnos, ¿deberíamos agrupar nuestros productos, tiendas y entrenar un algoritmo por agrupación? Aunque el uso de algoritmos de árboles de decisión debería hacer frente a este reto, observamos limitaciones en algunos casos concretos.

Los algoritmos de refuerzo son algoritmos iterativos, basados en aprendices débiles que se centrarán en sus mayores errores. Evidentemente, está un poco simplificado, pero me sirve para señalar una de sus limitaciones. Si no ha normalizado su variable objetivo, su algoritmo “sólo” se centrará en los productos con grandes errores, que serán probablemente los que tengan mayores ventas. Como resultado, el algoritmo puede centrarse más en los productos o tiendas con mayor volumen de ventas.

No encontramos la forma perfecta de abordar este reto, pero observamos algunas mejoras agrupando nuestros productos/tiendas por familias o frecuencia de venta.

¿Cómo evaluar nuestro modelo?

  1.  Validación cruzada

2. La elección de la métrica:

Image for post

Palabras finales, algunos consejos para cualquier proyecto data

Puntos clave

¿Interesado en digital y data marketing?

Suscríbase a Data Digest, el boletín de Artefact, para recibir consejos prácticos, ideas y opiniones en su bandeja de entrada todos los meses.

¡Apúnteme!