-
Notifications
You must be signed in to change notification settings - Fork 101
Open
Labels
Description
Description
Hi,
I’d like to propose leveraging horizon-specific features in forecasting models. For instance, if I'm forecasting 3 steps ahead, I would want to create a separate model for each step. Additionally, each model should be able to access unique features tailored specifically for its corresponding forecast horizon. E.g. how much is booked for a specific date 2 horizons prior.
I’ve provided an example below to illustrate this concept.
Use case
from mlforecast import MLForecast
from sklearn.linear_model import LinearRegression
from mlforecast.utils import generate_daily_series
H = 3
df = generate_daily_series(1)
df["bookings_horizon_1"] = df["y"] * 0.9
df["bookings_horizon_2"] = df["y"] * 0.7
df["bookings_horizon_3"] = df["y"] * 0.5
df.iloc[-2:, df.columns.get_loc("bookings_horizon_1")] = None
df.iloc[-1, df.columns.get_loc("bookings_horizon_2")] = None
df_train = df.iloc[:-H]
df_eval= df.iloc[-H:]
fcst = MLForecast(
models=[
LinearRegression(),
],
lags=[1],
freq="D",
)
individual_fcst = fcst.fit(df_train, max_horizon=H, static_features=[])
individual_preds = individual_fcst.predict(H, X_df=df_eval)
df_eval looks like this:

shanalyb