Skip to content

Horizon specific features #486

@RickoClausen

Description

@RickoClausen

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:

Image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions