1 votos

Previsión de varias horas con variable de retardo - XGBoost o GBM

Tengo una serie temporal de datos por hora como esta:

df.head()

 y  v1  v2 v3 v4 v5 v6
20  1   29 3  4  0  2020
23  1   24 2  3  1  2020
29  0   17 5  6  2  2020
35  0   15 5  6  3  2020

Estoy usando XGBoost o GBM para predecir $y$ para el día siguiente (24 horas). Como los métodos como GBM o XGBoost no tienen en cuenta las tendencias o patrones de las series temporales, añadí a los datos variables como el año, la hora, el mes, etc. Como no se tiene en cuenta el último valor, también creé una variable de retardo ( $x$ ) para $y$ :

df.head()

 y  v1  v2 v3 v4 v5 v6   x
20  1   29 3  4  0  2020 
23  1   24 2  3  1  2020 20
29  0   17 5  6  2  2020 23
35  0   15 5  6  3  2020 29

Como sólo estoy prediciendo una variable ( $y$ ) utilizando como entrada las otras variables, ¿cómo tendrá mi segunda, tercera, etc. hora en cuenta el valor del retraso? Mi línea de producción es algo similar a esto:

import numpy as np
df_train = df
X1=df_train[['v1','v2','v3','v4','v5','v6','x']
y1=df_train['y']
from sklearn.model_selection import train_test_split
X_train, y_train =X1, y1
X_test=df_test[['v1','v2','v3','v4','v5','v6','x']
regressor=XGBRegressor()
regressor.fit(X_train,y_train)
regressor.predict(X_test)

Sin embargo, no puedo dar $x$ como entrada para predecir las próximas 24 horas porque no tengo valores de x para las próximas 24 horas porque siempre dependen del último día. ¿Es posible que el modelo prediga, por ejemplo, la hora 5 utilizando el valor $x$ de la predicción $y$ ¿valor en la hora 4?

Editar: Y si no es posible utilizar las predicciones en el momento $t$ para ser una característica de retardo para la predicción en el tiempo $t+1$ ¿Cómo puedo superar este problema? ¿Puedo simplemente predecir ambos $x$ y $y$ ?

0voto

hstoerr Puntos 698

Hay varias opciones disponibles, y al final es probablemente una cuestión empírica lo que funciona mejor (al menos yo no soy consciente de un mejor enfoque):

  1. Predicción de $Y_{t+2}$ en función de los datos disponibles $X_t$ (sin covariables de previsión)
  2. Previsión, por ejemplo $X_{t+2}$ y utilizar esa previsión para predecir $Y_{t+2}$
  3. Previsión, por ejemplo $Y_{t+1}$ para predecir a su vez $Y_{t+2}$

A continuación, se plantea, por supuesto, la cuestión de cuántos modelos se van a utilizar para pronosticar el día siguiente (24 horas). ¿Un modelo para las 24 horas, 24 modelos diferentes o algo intermedio?

Esto es de alguna manera un hiperparámetro aquí que se puede optimizar.

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