En este repositorio encontraran el desarrollo metodológico para estimar, a través de Machine Learning, la demanda de 50 items en los próximos 7 días en 10 tiendas

Overview

Predicción de la demanda de múltiples ítems

El poder predecir de forma precisa la demanda de cierto producto es de gran interés para el Retail o empresas importadoras, ya que esta información sirve para determina la cantidad de producto que debe ser incluido en la solicitud de importación, identificar los productos y la cantidad, que deben ser enviado a los distintos locales (tienda, almacén, centro de distribución, etc.), entre otros.

Generar pronósticos precisos es una tarea bastante difícil y aún más, lo es el predecir la demanda de múltiples ítems. Esto debido a la influencia que pueden tener distintos factores sobre la venta de los productos, entre ellos: La estacionalidad anual, el día de la semana, el tiempo desde la mayor venta, la competencia entre productos. etc.

En este repositorio encontraran el desarrollo metodológico para predecir, a través de Machine Learning, la demanda de 50 items en 10 tiendas distintas. Se utilizó cada día de ventas registradas como fecha de referencia para predecir las ventas en el futuro en base a múltiples variables del pasado, en particular:

  • Se utilizó el modelo XGboost, una metodología que se basa en árboles de decisiones.

  • Se utilizó una base de datos de ventas históricas de 50 items en 10 tiendas, que contenía 5 años de información de ventas diaria. Los datos fueron descargados desde la página de Kaggle: https://www.kaggle.com/competitions/demand-forecasting-kernels-only/data

  • A partir de los datos se construyeron 50 variables a predecir, que corresponden a la venta total de cada ítem en los próximos 7 días (sin incluir el día de referencia), para cada una de las tiendas.

  • Como variable explicativa se construyeron variables que permitiesen determinar el promedio, el máximo, el mínimo, el total, número de días desde la mayor venta, número de días desde la menor venta, entre otras, para cada uno de los ítems en los 21 días anteriores a la fecha de referencia. Además, se crearon variables relacionadas con la estacionalidad, obteniéndose como resultado cerca de 500 variables explicativas relacionadas a las ventas de cada tienda-perido.

  • El modelo fue construido a través de una muestra de construcción, ajustado con una muestra de validación y testeado en una muestra test. Finalmente, el desempeño del modelo fue estimado a través del error porcentual.

Resultados

A continuación, se presentan aquellos resultados más relevantes relacionados al desarrollo metodológico, la eficiencia del modelo y su implementación.

Comportamiento de la demanda en distintas tiendas.

A modo de ejemplo, se muestra la serie de tiempo de ventas diarias de 4 items en las distintas tiendas, durante un periodo de 5 años. Es posible observar estacionalidad en las ventas.

Comportamiento-demanda-4-items-10-store.png

Comportamiento de la demanda para el item_8 en distintas tiendas.

A modo de ejemplo, se muestra la serie de ventas del item_8 según tienda. Es posible observar un incremento de las ventas del producto a lo largo del tiempo.

Ventas-item8-10store.png

Segmentación de la muestra

El modelo fue construido a través de una muestra de construcción, ajustado con una muestra de validación y testeado en una muestra de testeo. La primera parte de la data fue utilizada para la construcción, la segunda parte para la validación y la última parte para el testeo. Esta forma de segmentación asegura que el modelo sea funcional en el futuro.

Segmentaci-n-de-la-muestra.jpg

Construcción de variables

Para la construcción de variables, se utilizó cada registro de ventas como una “fecha de referencia”, es decir, para cada registro se estimó la cantidad de producto que se va vender en los próximos 7 días y a su vez se utilizaron los 21 días anteriores para construir las variables explicativas (500 variables). En ambos casos no se utilizó el día de referencia en los cálculos, ya que muchas veces cuando se quiere implementar el modelo, las ventas del mismo día no se han cerrado.

variables.jpg

Desempeño del modelo

A modo de ejemplo, se muestra las ventas totales reales y predichas durante una semana, para el item_8 en 3 tiendas distintas

resultados.png

El desempeño del modelo fue medido como el % de registros cuyo error porcentual de las ventas predichas es menor a un 10% a la del valor real.

Error porcentual = (valor estimado - valor real) / valor real × 100% (en valor absoluto)

Sin-t-tulo.jpg

Los resultados indican que en construcción (train) el modelo muestra una alta capacidad predictiva, se puede observar que el 90% de los registros tienen un error porcentual menor al 10%. Por otro lado, durante la validación se observa que el 63% de los registros tienen un error porcentual menor al 10% alcanzando un 84% con un 15% de error porcentual y al 95% con un error porcentual del 20%. Lo cual indicaría un leve sobreajuste pero el modelo está siendo altamente eficiente.

Para asegurar la robustes del modelo se evaluó el desempeño del modelo sobre todo el periodo 2017 – 2018 (test). Los resultados mostraron ser altamente consistente con los logrados durante la validación, por lo cual, se sostiene que el modelo es robusto y tiene poco sobre ajuste, por lo cual, puede ser llevado a producción.

You might also like...

Esse repositório estara com os meus projetos publicos, para que de alguma forma possa contribuir para a comunidade Dev!

O programa foi desenvolvido para atender a seguinte necessidade: Eu sempre criei documentos para os desenvolvimentos de projetos, ou de alguma implant

Aug 1, 2022

Repositório criado para armazenar o projeto final apresentado na disciplina de Computação Gráfica que consistia em utilizar OpenGL para apresentar um modelo 3D.

Projeto Final Computação Gráfica É um projeto básico para composição de nota e nada muito avançado em relação as aplicações da área de computação gráf

Aug 6, 2022

TECcrBot (TCRB) es un bot de telegram dedicado a proporcionar información y utilidades para los integrantes de la comunidad TEC

 TECcrBot (TCRB) es un bot de telegram dedicado a proporcionar información y utilidades para los integrantes de la comunidad TEC

TECcrBOT Descripción TECcrBot (TCRB) es un bot de Telegram dedicado a proporcionar información y utilidades a los integrantes de la comunidad del ITCR

Dec 8, 2022

Bot para poder atender entre varios administradores las solicitudes de los usuarios....

Bot para poder atender entre varios administradores las solicitudes de los usuarios....

SupportBot Este es un bot muy sencillo de hacer y facil de hacer o desplegar, aqui abajo tendran el indice : 1. Despliegue a Heroku 2. Funcionamiento

Sep 24, 2022

Este proyecto tiene como objetivo realizar el cifrado y la transferencia de información mediante el uso de librerias pgp y servicios GCP, estandarizando el proceso para el uso en multicloud.

DOCUMENTACION PROYECTO 🎯 Proyecto desarrollado con el fin de modernizar el proceso de cifrado y descifrado de archivos haciendo uso de la librería pg

Sep 28, 2022

🏆 Challenge Milenio - Uma aplicação REST API para logística que utilizei os algoritmo Dijkstra e BFS (Breadth-first search) para realizar cálculos para definir trajetos.

🏆 Challenge Milenio - Uma aplicação REST API para logística que utilizei os algoritmo Dijkstra e BFS (Breadth-first search) para realizar cálculos para definir trajetos.

! 🏳️ PROJETO IMPORTADO DO GITLAB - https://gitlab.com/rodneysostras/desafio-dev-jr-pl Challenge Milenio Capital Sobre • Requisitos • Recursos • Como

May 4, 2022

codigo para expandir endereços IPV6 para sua forma de 32 bytes e de forma reversa para DNS.

codigo para expandir endereços IPV6 para sua forma de 32 bytes e de forma reversa para DNS.

codigo para expandir IPV6 codigo facilitador para ultilizar Ipv6, e reduzindo o tempo necessario para realizar sua expansão. alem da expensão, esse co

Dec 12, 2022

Repositório para a implementação da estrutura e dos métodos de grafos.

Grafo em Python 🐍 🤨 O que é este projeto? Este é um projeto acadêmico de implementação de um grafo em python para a matéria de teoria dos Grafos e C

May 6, 2022

Repositório para aplicação ScanPortTest

Repositório para aplicação ScanPortTest

ScanPortTest Repositório para a aplicação ScanPortTest. ScanPortTest É uma aplicação escrita em linguagem Python que tem como finalidade fazer um esca

Mar 2, 2022
Owner
null
Hola chicos en este repositorio encontraran el codigo fuente para crear una camara inteligente con inteligenica artificial.

Seguimiento Automatico de Rostros con IA Hola chicos en este repositorio encontraran el codigo fuente para yomar una camara usb, un servomotor y un ar

Santiago Sanchez Rios 6 Oct 27, 2022
Hola chicos en este repositorio encontraran el codigo fuente para crear un algoritmo de reconocimiento de documentos de identidad.

Reconocimiento-de-DNI-con-Python Hola chicos en este repositorio encontraran el codigo fuente para crear un algoritmo de reconocimiento de documentos

Santiago Sanchez Rios 8 Dec 6, 2022
Repositorio para Ejemplos de Código de los proyectos de MisionTIC2002 Ciclo1

MisiónTIC 2022 - Ciclo 1 - Fundamentos de Programación Repositorio para almacenar los ejemplos de código de los Proyectos del Ciclo 1 - Fundamentos de

null 4 Jun 26, 2022
Através da API do Google Places, faz uma busca pelos estabelecimentos que estão próximos ao usuário, retornando todos os resultados que possuem número de telefone e um link direto para o whatsapp.

Buscador Busca estabelecimentos próximos ao usuário, retornando-os com número de telefone e link direto para o Whatsapp. ?? Instalando as dependências

nicolle 7 Nov 6, 2022
Repositorio de los Laboratorios de Análisis Numérico / Análisis Numérico I de FAMAF, UNC.

Repositorio de los Laboratorios de Análisis Numérico / Análisis Numérico I de FAMAF, UNC. Para los Laboratorios de la materia, vamos a utilizar el len

Luis Biedma 18 Dec 12, 2022
Red neuronal modificada y arreglada para permitir el desarrollo y actualización de la base de datos TADPOLE Challenge, con nuevos datos

Standalone_Nguyen2020_Tadpole2021 Resultado de la actualización y modificación de la base de datos TADPOLE Challenge en 2021, junto con el empleo de l

Emilio Cabañero 1 Jul 4, 2022
Este repositorio representa el avance de las clases de programación de la Universidad del Rosario. Esto se inicia el 8 de agosto del 2022

Curso_Programacion-de-Computadores Este repositorio representa el avance de las clases de programación de la Universidad del Rosario. Esto se inicia e

Manuel Cruz Garrote 1 Aug 8, 2022
Desafio dos 100 dias de código Python

Desafios 100 dias de programação em Python Desafio dos 100 dias de codificação em Python, contemplando todos os aspectos da programação Python desde D

Levi Sange 0 Dec 19, 2022
Repositório para demonstrar uso de action para Deploys Automáticos no Heroku

Repositório para demonstrar uso de action para Deploys Automáticos no Heroku Expliquei com mais detalhes o processo realizado aqui. Link da aplicação

Victor Augusto 3 May 13, 2022
Repositório para realização do teste prático para vaga de Estágio de Análise e Desenvolvimento na empresa Target Sistemas.

Teste Prático - Análise e Desenvolvimento de Sistemas Repositório para realização do teste prático para vaga de Estágio de Análise e Desenvolvimento n

Paulo Vítor 0 Aug 15, 2022