Use exogenous regressors for training and predicting
unique_id | ds | y | static_0 | product_id | |
---|---|---|---|---|---|
0 | id_00 | 2000-10-05 | 39.811983 | 79 | 45 |
1 | id_00 | 2000-10-06 | 103.274013 | 79 | 45 |
2 | id_00 | 2000-10-07 | 176.574744 | 79 | 45 |
3 | id_00 | 2000-10-08 | 258.987900 | 79 | 45 |
4 | id_00 | 2000-10-09 | 344.940404 | 79 | 45 |
static_0
and product_id
here are considered to be static and are replicated when constructing
the features for the next timestamp. You can disable this by passing
static_features
to MLForecast.preprocess
or MLForecast.fit
, which
will only keep the columns you define there as static. Keep in mind that
all features in your input dataframe will be used for training, so
you’ll have to provide the future values of exogenous features to
MLForecast.predict
through the X_df
argument.
Consider the following example. Suppose that we have a prices catalog
for each id and date.
ds | unique_id | price | |
---|---|---|---|
0 | 2000-10-05 | id_00 | 0.548814 |
1 | 2000-10-06 | id_00 | 0.715189 |
2 | 2000-10-07 | id_00 | 0.602763 |
3 | 2000-10-08 | id_00 | 0.544883 |
4 | 2000-10-09 | id_00 | 0.423655 |
unique_id | ds | y | static_0 | product_id | price | |
---|---|---|---|---|---|---|
0 | id_00 | 2000-10-05 | 39.811983 | 79 | 45 | 0.548814 |
1 | id_00 | 2000-10-06 | 103.274013 | 79 | 45 | 0.715189 |
2 | id_00 | 2000-10-07 | 176.574744 | 79 | 45 | 0.602763 |
3 | id_00 | 2000-10-08 | 258.987900 | 79 | 45 | 0.544883 |
4 | id_00 | 2000-10-09 | 344.940404 | 79 | 45 | 0.423655 |
MLForecast.fit
(or
MLForecast.preprocess
). However, since the price is dynamic we have to
tell that method that only static_0
and product_id
are static.
MLForecast.ts.features_order_
. As you can see price
was used for
training.
MLForecast.predict
with our forecast horizon and pass the prices
catalog through X_df
.
unique_id | ds | LGBMRegressor | |
---|---|---|---|
0 | id_00 | 2001-05-15 | 418.930093 |
1 | id_00 | 2001-05-16 | 499.487368 |
2 | id_00 | 2001-05-17 | 20.321885 |
3 | id_00 | 2001-05-18 | 102.310778 |
4 | id_00 | 2001-05-19 | 185.340281 |
unique_id | ds | y | static_0 | product_id | |
---|---|---|---|---|---|
0 | id_00 | 2000-10-05 | 39.811983 | 79 | 45 |
1 | id_00 | 2000-10-06 | 103.274013 | 79 | 45 |
2 | id_00 | 2000-10-07 | 176.574744 | 79 | 45 |
3 | id_00 | 2000-10-08 | 258.987900 | 79 | 45 |
4 | id_00 | 2000-10-09 | 344.940404 | 79 | 45 |
unique_id | ds | y | static_0 | product_id | sin1_7 | sin2_7 | cos1_7 | cos2_7 | |
---|---|---|---|---|---|---|---|---|---|
0 | id_00 | 2000-10-05 | 39.811983 | 79 | 45 | 0.781832 | 0.974928 | 0.623490 | -0.222521 |
1 | id_00 | 2000-10-06 | 103.274013 | 79 | 45 | 0.974928 | -0.433884 | -0.222521 | -0.900969 |
2 | id_00 | 2000-10-07 | 176.574744 | 79 | 45 | 0.433884 | -0.781831 | -0.900969 | 0.623490 |
3 | id_00 | 2000-10-08 | 258.987900 | 79 | 45 | -0.433884 | 0.781832 | -0.900969 | 0.623490 |
4 | id_00 | 2000-10-09 | 344.940404 | 79 | 45 | -0.974928 | 0.433884 | -0.222521 | -0.900969 |
unique_id | ds | sin1_7 | sin2_7 | cos1_7 | cos2_7 | |
---|---|---|---|---|---|---|
0 | id_00 | 2001-05-15 | -0.781828 | -0.974930 | 0.623494 | -0.222511 |
1 | id_00 | 2001-05-16 | 0.000006 | 0.000011 | 1.000000 | 1.000000 |
2 | id_00 | 2001-05-17 | 0.781835 | 0.974925 | 0.623485 | -0.222533 |
3 | id_00 | 2001-05-18 | 0.974927 | -0.433895 | -0.222527 | -0.900963 |
4 | id_00 | 2001-05-19 | 0.433878 | -0.781823 | -0.900972 | 0.623500 |
unique_id | ds | LinearRegression | |
---|---|---|---|
0 | id_00 | 2001-05-15 | 275.822342 |
1 | id_00 | 2001-05-16 | 262.258117 |
2 | id_00 | 2001-05-17 | 238.195850 |
3 | id_00 | 2001-05-18 | 240.997814 |
4 | id_00 | 2001-05-19 | 262.247123 |