2 votos

¿Cómo se modelan los patrones estacionales para la infrapredicción?

Quiero predecir las ventas en las máquinas expendedoras de alimentos (para evitar, en última instancia, el desperdicio de alimentos). Trabajo con scikit learn .

Mis modelos actuales no son demasiado malos, pero muestran patrones estacionales de infrapredicción (y recíprocamente de sobrepredicción). El gráfico muestra la relación mensual de (underprediction==True)/(observations) para un modelo (regresión lineal):

enter image description here

El gráfico es similar para los otros modelos que he probado ( Ridge(), Lasso(), AdaBoostRegressor(), GradientBoostingRegressor(), ExtraTreesRegressor(), RandomForestRegressor(), ElasticNet(), KNeighborsRegressor(), DecisionTreeRegressor() ). En todas partes veo patrones como que la proporción de infraprecios en mayo y junio es mayor que en abril y julio. O que la proporción es siempre mayor en diciembre que en enero.

¿Qué puedo hacer para que el modelo recoja este patrón?

Para, en última instancia, reducir la infra y la sobrepredicción y aumentar el ajuste del modelo.

Tal vez añadir una característica/tendencia, pero ¿cómo?

Algunos datos estilizados:

  • Objetivo: food items sold (per day)
  • Características: company, month, day in month, location within company (categorical), canteen (binary), no. of employees, company type, school holiday (binary), bank holiday (binary), day of week
  • Observaciones: 34.000 (42 máquinas expendedoras)
  • Rango de tiempo: 2010-2015

Pasos previstos tras la modelización de la falta de predicción:

  • Ajuste los modelos mencionados con los parámetros por defecto en la validación cruzada y elija el modelo con el menor MSE medio y el menor error estándar ( cross_validation.KFold(n=rows, n_folds=5, shuffle=True) )
  • Ejecutar la búsqueda de cuadrícula en el modelo elegido para el ajuste de los hiperparámetros

0voto

Jimmie R. Houts Puntos 3761

Es posible que quieras mirar las posibles interacciones que se producen en el mes 5, ya que es el único mes con más de un 50% de infraprevisión. (Me parece que todos deberían estar en torno al 50%, y a menos que haya muchas más observaciones en el mes 5, probablemente haya algo que no funciona en el modelo, o no se están teniendo en cuenta las observaciones de NA)

0voto

CC Inc Puntos 496

¿Has probado a crear variables ficticias para los meses (11 y no 12)? Piensa que será capaz de manejar el patrón estacional.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X