diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index f42c5c7..33734cb 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -69,7 +69,7 @@ jobs: with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./book/_book - destination_dir: dev + destination_dir: latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/notebooks/part1/01_naive.ipynb b/notebooks/part1/01_naive.ipynb index 9e87f50..d6c5cdc 100644 --- a/notebooks/part1/01_naive.ipynb +++ b/notebooks/part1/01_naive.ipynb @@ -27,7 +27,72 @@ }, { "cell_type": "code", + "execution_count": 1, "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
| \n", + " | points | \n", + "
|---|---|
| 2021-01-01 | \n", + "0 | \n", + "
| 2021-01-02 | \n", + "0 | \n", + "
| 2021-01-03 | \n", + "0 | \n", + "
| 2021-01-04 | \n", + "1 | \n", + "
| 2021-01-05 | \n", + "1 | \n", + "
NaiveForecaster()Please rerun this cell to show the HTML repr or trust the notebook.
NaiveForecaster()
NaiveForecaster()Please rerun this cell to show the HTML repr or trust the notebook.
NaiveForecaster()
| \n", + " | points | \n", + "
|---|---|
| 2021-03-06 | \n", + "1.0 | \n", + "
| 2021-03-07 | \n", + "1.0 | \n", + "
| 2021-03-08 | \n", + "1.0 | \n", + "
| 2021-03-09 | \n", + "1.0 | \n", + "
LogTransformer()Please rerun this cell to show the HTML repr or trust the notebook.
LogTransformer()
Differencer()Please rerun this cell to show the HTML repr or trust the notebook.
Differencer()
TransformedTargetForecaster(steps=[('differencer', Differencer()),\n",
+ " ('naive',\n",
+ " NaiveForecaster(strategy='mean',\n",
+ " window_length=24))])Please rerun this cell to show the HTML repr or trust the notebook.TransformedTargetForecaster(steps=[('differencer', Differencer()),\n",
+ " ('naive',\n",
+ " NaiveForecaster(strategy='mean',\n",
+ " window_length=24))])Differencer()
NaiveForecaster(strategy='mean', window_length=24)
TransformedTargetForecaster(steps=[Differencer(),\n", + " NaiveForecaster(strategy='mean',\n", + " window_length=24)])Please rerun this cell to show the HTML repr or trust the notebook.
TransformedTargetForecaster(steps=[Differencer(),\n", + " NaiveForecaster(strategy='mean',\n", + " window_length=24)])
Differencer()
NaiveForecaster(strategy='mean', window_length=24)
TransformerPipeline(steps=[('log', LogTransformer()), ('diff', Differencer())])Please rerun this cell to show the HTML repr or trust the notebook.TransformerPipeline(steps=[('log', LogTransformer()), ('diff', Differencer())])LogTransformer()
Differencer()
ExponentialSmoothing()Please rerun this cell to show the HTML repr or trust the notebook.
ExponentialSmoothing()
STLTransformer(sp=365)Please rerun this cell to show the HTML repr or trust the notebook.
STLTransformer(sp=365)
STLForecaster(forecaster_resid=STLForecaster(forecaster_resid=AutoREG(lags=31),\n", + " forecaster_seasonal=NaiveForecaster(sp=365),\n", + " forecaster_trend=AutoREG(lags=31),\n", + " sp=365),\n", + " forecaster_seasonal=NaiveForecaster(sp=7),\n", + " forecaster_trend=AutoREG(lags=31), sp=7)Please rerun this cell to show the HTML repr or trust the notebook.
STLForecaster(forecaster_resid=STLForecaster(forecaster_resid=AutoREG(lags=31),\n", + " forecaster_seasonal=NaiveForecaster(sp=365),\n", + " forecaster_trend=AutoREG(lags=31),\n", + " sp=365),\n", + " forecaster_seasonal=NaiveForecaster(sp=7),\n", + " forecaster_trend=AutoREG(lags=31), sp=7)
STLForecaster(forecaster_resid=AutoREG(lags=31),\n", + " forecaster_seasonal=NaiveForecaster(sp=365),\n", + " forecaster_trend=AutoREG(lags=31), sp=365)
AutoREG(lags=31)
AutoREG(lags=31)
NaiveForecaster(sp=365)
NaiveForecaster(sp=365)
AutoREG(lags=31)
AutoREG(lags=31)
NaiveForecaster(sp=7)
NaiveForecaster(sp=7)
AutoREG(lags=31)
AutoREG(lags=31)
| \n", + " | test_MeanAbsoluteScaledError | \n", + "fit_time | \n", + "pred_time | \n", + "len_train_window | \n", + "cutoff | \n", + "y_train | \n", + "y_test | \n", + "y_pred | \n", + "
|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "12.839683 | \n", + "0.002775 | \n", + "0.007933 | \n", + "1095 | \n", + "2022-12-30 | \n", + "sales\n", + "date \n", + "2020-01-01... | \n", + "sales\n", + "date \n", + "2022-12-31... | \n", + "sales\n", + "2022-12-31 458.0\n", + "2023-01-01... | \n", + "
| 1 | \n", + "3.813045 | \n", + "0.002680 | \n", + "0.006148 | \n", + "1195 | \n", + "2023-04-09 | \n", + "sales\n", + "date \n", + "2020-01-01... | \n", + "sales\n", + "date \n", + "2023-04-10... | \n", + "sales\n", + "2023-04-10 866.0\n", + "2023-04-11... | \n", + "
| 2 | \n", + "8.068216 | \n", + "0.002591 | \n", + "0.006612 | \n", + "1295 | \n", + "2023-07-18 | \n", + "sales\n", + "date \n", + "2020-01-01... | \n", + "sales\n", + "date \n", + "2023-07-19... | \n", + "sales\n", + "2023-07-19 748.0\n", + "2023-07-20... | \n", + "
| 3 | \n", + "7.854970 | \n", + "0.002779 | \n", + "0.005778 | \n", + "1395 | \n", + "2023-10-26 | \n", + "sales\n", + "date \n", + "2020-01-01... | \n", + "sales\n", + "date \n", + "2023-10-27... | \n", + "sales\n", + "2023-10-27 1229.0\n", + "2023-10-... | \n", + "
| 4 | \n", + "5.955709 | \n", + "0.002442 | \n", + "0.005910 | \n", + "1495 | \n", + "2024-02-03 | \n", + "sales\n", + "date \n", + "2020-01-01... | \n", + "sales\n", + "date \n", + "2024-02-04... | \n", + "sales\n", + "2024-02-04 1916.0\n", + "2024-02-... | \n", + "
| \n", + " | promo | \n", + "macro_trend | \n", + "
|---|---|---|
| date | \n", + "\n", + " | \n", + " |
| 2020-01-01 | \n", + "0.0 | \n", + "1.304000 | \n", + "
| 2020-01-02 | \n", + "0.0 | \n", + "1.327826 | \n", + "
| 2020-01-03 | \n", + "0.0 | \n", + "1.350638 | \n", + "
| 2020-01-04 | \n", + "0.0 | \n", + "1.361667 | \n", + "
| 2020-01-05 | \n", + "0.0 | \n", + "1.361633 | \n", + "
| \n", + " | name | \n", + "object | \n", + "
|---|---|---|
| 0 | \n", + "ARDL | \n", + "<class 'sktime.forecasting.ardl.ARDL'> | \n", + "
| 1 | \n", + "ARIMA | \n", + "<class 'sktime.forecasting.arima._pmdarima.ARI... | \n", + "
| 2 | \n", + "AutoARIMA | \n", + "<class 'sktime.forecasting.arima._pmdarima.Aut... | \n", + "
| 3 | \n", + "AutoEnsembleForecaster | \n", + "<class 'sktime.forecasting.compose._ensemble.A... | \n", + "
| 4 | \n", + "AutoREG | \n", + "<class 'sktime.forecasting.auto_reg.AutoREG'> | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "
| 77 | \n", + "UpdateEvery | \n", + "<class 'sktime.forecasting.stream._update.Upda... | \n", + "
| 78 | \n", + "UpdateRefitsEvery | \n", + "<class 'sktime.forecasting.stream._update.Upda... | \n", + "
| 79 | \n", + "VARMAX | \n", + "<class 'sktime.forecasting.varmax.VARMAX'> | \n", + "
| 80 | \n", + "VECM | \n", + "<class 'sktime.forecasting.vecm.VECM'> | \n", + "
| 81 | \n", + "YfromX | \n", + "<class 'sktime.forecasting.compose._reduce.Yfr... | \n", + "
82 rows × 2 columns
\n", + "| \n", + " | promo | \n", + "macro_trend | \n", + "
|---|---|---|
| date | \n", + "\n", + " | \n", + " |
| 2024-12-28 | \n", + "0.0 | \n", + "22.805784 | \n", + "
| 2024-12-29 | \n", + "0.0 | \n", + "22.805784 | \n", + "
| 2024-12-30 | \n", + "0.0 | \n", + "22.805784 | \n", + "
| 2024-12-31 | \n", + "1.0 | \n", + "22.805784 | \n", + "
| 2025-01-01 | \n", + "0.0 | \n", + "22.805784 | \n", + "
ForecastingPipeline(steps=[('imputer', Imputer(method='mean')),\n",
+ " ('forecaster', AutoREG(lags=30))])Please rerun this cell to show the HTML repr or trust the notebook.ForecastingPipeline(steps=[('imputer', Imputer(method='mean')),\n",
+ " ('forecaster', AutoREG(lags=30))])Imputer(method='mean')
AutoREG(lags=30)
| \n", + " | lag_98__macro_trend | \n", + "lag_34__macro_trend | \n", + "lag_17__macro_trend | \n", + "lag_104__macro_trend | \n", + "lag_67__macro_trend | \n", + "lag_36__macro_trend | \n", + "lag_35__macro_trend | \n", + "lag_9__macro_trend | \n", + "lag_22__macro_trend | \n", + "lag_6__macro_trend | \n", + "... | \n", + "lag_119__promo | \n", + "lag_129__macro_trend | \n", + "lag_34__promo | \n", + "lag_33__promo | \n", + "lag_47__macro_trend | \n", + "lag_159__macro_trend | \n", + "lag_114__promo | \n", + "lag_91__promo | \n", + "lag_136__macro_trend | \n", + "lag_71__macro_trend | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| date | \n", + "\n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " |
| 2024-07-06 | \n", + "82.233778 | \n", + "81.711556 | \n", + "81.654222 | \n", + "81.633778 | \n", + "81.764000 | \n", + "82.488444 | \n", + "82.042667 | \n", + "82.259556 | \n", + "82.534667 | \n", + "82.909333 | \n", + "... | \n", + "0.0 | \n", + "77.054667 | \n", + "0.0 | \n", + "0.0 | \n", + "82.734222 | \n", + "71.103556 | \n", + "0.0 | \n", + "0.0 | \n", + "76.021333 | \n", + "81.838222 | \n", + "
| 2024-07-07 | \n", + "82.288444 | \n", + "81.823556 | \n", + "81.886667 | \n", + "81.660444 | \n", + "81.880444 | \n", + "82.042667 | \n", + "81.711556 | \n", + "82.540444 | \n", + "82.463556 | \n", + "83.153778 | \n", + "... | \n", + "0.0 | \n", + "77.324889 | \n", + "0.0 | \n", + "0.0 | \n", + "82.791556 | \n", + "71.535556 | \n", + "0.0 | \n", + "1.0 | \n", + "76.131111 | \n", + "82.044889 | \n", + "
| 2024-07-08 | \n", + "82.319556 | \n", + "82.084889 | \n", + "82.160889 | \n", + "81.724444 | \n", + "82.063111 | \n", + "81.711556 | \n", + "81.823556 | \n", + "82.741333 | \n", + "82.210222 | \n", + "83.440444 | \n", + "... | \n", + "0.0 | \n", + "77.896000 | \n", + "0.0 | \n", + "0.0 | \n", + "82.934667 | \n", + "71.861333 | \n", + "0.0 | \n", + "0.0 | \n", + "76.268889 | \n", + "82.003111 | \n", + "
| 2024-07-09 | \n", + "82.393778 | \n", + "82.555556 | \n", + "82.290222 | \n", + "81.875556 | \n", + "82.175556 | \n", + "81.823556 | \n", + "82.084889 | \n", + "82.909333 | \n", + "81.881778 | \n", + "83.594667 | \n", + "... | \n", + "0.0 | \n", + "78.460444 | \n", + "0.0 | \n", + "0.0 | \n", + "83.110222 | \n", + "72.159111 | \n", + "0.0 | \n", + "0.0 | \n", + "76.441333 | \n", + "81.840889 | \n", + "
| 2024-07-10 | \n", + "82.383556 | \n", + "82.657333 | \n", + "82.144889 | \n", + "82.086222 | \n", + "82.288000 | \n", + "82.084889 | \n", + "82.555556 | \n", + "83.153778 | \n", + "81.639111 | \n", + "83.721778 | \n", + "... | \n", + "0.0 | \n", + "79.001778 | \n", + "0.0 | \n", + "0.0 | \n", + "83.123111 | \n", + "72.249778 | \n", + "0.0 | \n", + "0.0 | \n", + "76.692889 | \n", + "81.764000 | \n", + "
5 rows × 180 columns
\n", + "ForecastingPipeline(steps=[('preprocessing',\n",
+ " TransformerPipeline(steps=[('lag',\n",
+ " Lag(lags=[1, 2, 3, 4, 5,\n",
+ " 6, 7, 8, 9,\n",
+ " 10, 11, 12,\n",
+ " 13, 14, 15,\n",
+ " 16, 17, 18,\n",
+ " 19, 20, 21,\n",
+ " 22, 23, 24,\n",
+ " 25, 26, 27,\n",
+ " 28, 29, 30, ...])),\n",
+ " ('subset',\n",
+ " IndexSubset()),\n",
+ " ('impute',\n",
+ " Imputer(method='backfill',\n",
+ " value=0)),\n",
+ " ('feature_selection',\n",
+ " FeatureSelection())])),\n",
+ " ('forecaster', AutoREG(lags=30))])Please rerun this cell to show the HTML repr or trust the notebook.ForecastingPipeline(steps=[('preprocessing',\n",
+ " TransformerPipeline(steps=[('lag',\n",
+ " Lag(lags=[1, 2, 3, 4, 5,\n",
+ " 6, 7, 8, 9,\n",
+ " 10, 11, 12,\n",
+ " 13, 14, 15,\n",
+ " 16, 17, 18,\n",
+ " 19, 20, 21,\n",
+ " 22, 23, 24,\n",
+ " 25, 26, 27,\n",
+ " 28, 29, 30, ...])),\n",
+ " ('subset',\n",
+ " IndexSubset()),\n",
+ " ('impute',\n",
+ " Imputer(method='backfill',\n",
+ " value=0)),\n",
+ " ('feature_selection',\n",
+ " FeatureSelection())])),\n",
+ " ('forecaster', AutoREG(lags=30))])TransformerPipeline(steps=[('lag',\n",
+ " Lag(lags=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,\n",
+ " 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,\n",
+ " 24, 25, 26, 27, 28, 29, 30, ...])),\n",
+ " ('subset', IndexSubset()),\n",
+ " ('impute', Imputer(method='backfill', value=0)),\n",
+ " ('feature_selection', FeatureSelection())])Lag(lags=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n", + " 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, ...])
IndexSubset()
Imputer(method='backfill', value=0)
FeatureSelection()
AutoREG(lags=30)
ReductionForecaster(estimator=LGBMRegressor(random_state=42), window_length=30)Please rerun this cell to show the HTML repr or trust the notebook.
ReductionForecaster(estimator=LGBMRegressor(random_state=42), window_length=30)
LGBMRegressor(random_state=42)
LGBMRegressor(random_state=42)
TransformedTargetForecaster(steps=[Differencer(),\n", + " ReductionForecaster(estimator=LGBMRegressor(random_state=42),\n", + " window_length=30)])Please rerun this cell to show the HTML repr or trust the notebook.
TransformedTargetForecaster(steps=[Differencer(),\n", + " ReductionForecaster(estimator=LGBMRegressor(random_state=42),\n", + " window_length=30)])
Differencer()
ReductionForecaster(estimator=LGBMRegressor(random_state=42), window_length=30)
LGBMRegressor(random_state=42)
LGBMRegressor(random_state=42)
| \n", + " | MAPE | \n", + "
|---|---|
| ML + Normalização + Direto | \n", + "0.136547 | \n", + "
| ML + Normalização | \n", + "0.145583 | \n", + "
| ML + Diferença | \n", + "0.164518 | \n", + "
| ML + Log + Diferença | \n", + "0.174632 | \n", + "
| ML | \n", + "0.202821 | \n", + "
| \n", + " | \n", + " | promo | \n", + "
|---|---|---|
| sku_id | \n", + "date | \n", + "\n", + " |
| 0 | \n", + "2020-01-01 | \n", + "0.0 | \n", + "
| 2020-01-02 | \n", + "0.0 | \n", + "|
| 2020-01-03 | \n", + "0.0 | \n", + "|
| 2020-01-04 | \n", + "0.0 | \n", + "|
| 2020-01-05 | \n", + "0.0 | \n", + "|
| ... | \n", + "... | \n", + "... | \n", + "
| 24 | \n", + "2024-07-01 | \n", + "1.0 | \n", + "
| 2024-07-02 | \n", + "0.0 | \n", + "|
| 2024-07-03 | \n", + "0.0 | \n", + "|
| 2024-07-04 | \n", + "0.0 | \n", + "|
| 2024-07-05 | \n", + "0.0 | \n", + "
41200 rows × 1 columns
\n", + "| \n", + " | sales | \n", + "
|---|---|
| date | \n", + "\n", + " |
| 2020-01-01 | \n", + "0 | \n", + "
| 2020-01-02 | \n", + "0 | \n", + "
| 2020-01-03 | \n", + "0 | \n", + "
| 2020-01-04 | \n", + "0 | \n", + "
| 2020-01-05 | \n", + "0 | \n", + "
| ... | \n", + "... | \n", + "
| 2024-07-01 | \n", + "220 | \n", + "
| 2024-07-02 | \n", + "128 | \n", + "
| 2024-07-03 | \n", + "47 | \n", + "
| 2024-07-04 | \n", + "73 | \n", + "
| 2024-07-05 | \n", + "165 | \n", + "
1648 rows × 1 columns
\n", + "| \n", + " | \n", + " | sales | \n", + "
|---|---|---|
| sku_id | \n", + "date | \n", + "\n", + " |
| 0 | \n", + "2020-01-01 | \n", + "0 | \n", + "
| 2020-01-02 | \n", + "0 | \n", + "|
| 2020-01-03 | \n", + "0 | \n", + "|
| 2020-01-04 | \n", + "0 | \n", + "|
| 2020-01-05 | \n", + "0 | \n", + "|
| ... | \n", + "... | \n", + "... | \n", + "
| 2 | \n", + "2024-07-01 | \n", + "125 | \n", + "
| 2024-07-02 | \n", + "185 | \n", + "|
| 2024-07-03 | \n", + "179 | \n", + "|
| 2024-07-04 | \n", + "210 | \n", + "|
| 2024-07-05 | \n", + "236 | \n", + "
3296 rows × 1 columns
\n", + "| \n", + " | \n", + " | sales | \n", + "
|---|---|---|
| sku_id | \n", + "date | \n", + "\n", + " |
| 0 | \n", + "2024-07-06 | \n", + "165.0 | \n", + "
| 2024-07-07 | \n", + "165.0 | \n", + "|
| 2024-07-08 | \n", + "165.0 | \n", + "|
| 2024-07-09 | \n", + "165.0 | \n", + "|
| 2024-07-10 | \n", + "165.0 | \n", + "|
| ... | \n", + "... | \n", + "... | \n", + "
| 24 | \n", + "2024-12-28 | \n", + "209.0 | \n", + "
| 2024-12-29 | \n", + "209.0 | \n", + "|
| 2024-12-30 | \n", + "209.0 | \n", + "|
| 2024-12-31 | \n", + "209.0 | \n", + "|
| 2025-01-01 | \n", + "209.0 | \n", + "
4500 rows × 1 columns
\n", + "| \n", + " | forecasters | \n", + "
|---|---|
| 0 | \n", + "NaiveForecaster(window_length=1) | \n", + "
| 1 | \n", + "NaiveForecaster(window_length=1) | \n", + "
| 2 | \n", + "NaiveForecaster(window_length=1) | \n", + "
| 3 | \n", + "NaiveForecaster(window_length=1) | \n", + "
| 4 | \n", + "NaiveForecaster(window_length=1) | \n", + "
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " window_length=30)Please rerun this cell to show the HTML repr or trust the notebook.
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " window_length=30)
LGBMRegressor(random_state=42, verbose=-1)
LGBMRegressor(random_state=42, verbose=-1)
ForecastByLevel(forecaster=ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " window_length=30))Please rerun this cell to show the HTML repr or trust the notebook.
ForecastByLevel(forecaster=ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " window_length=30))
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " window_length=30)
LGBMRegressor(random_state=42, verbose=-1)
LGBMRegressor(random_state=42, verbose=-1)
TransformedTargetForecaster(steps=[Differencer(),\n", + " ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " window_length=30)])Please rerun this cell to show the HTML repr or trust the notebook.
TransformedTargetForecaster(steps=[Differencer(),\n", + " ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " window_length=30)])
Differencer()
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " window_length=30)
LGBMRegressor(random_state=42, verbose=-1)
LGBMRegressor(random_state=42, verbose=-1)
| \n", + " | Global (1) | \n", + "Local (1) | \n", + "Global (2) | \n", + "Local (2) | \n", + "
|---|---|---|---|---|
| MSE | \n", + "41.057873 | \n", + "23.720592 | \n", + "22.238809 | \n", + "67.626298 | \n", + "
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " normalization_strategy='divide_mean', window_length=30)Please rerun this cell to show the HTML repr or trust the notebook.
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " normalization_strategy='divide_mean', window_length=30)
LGBMRegressor(random_state=42, verbose=-1)
LGBMRegressor(random_state=42, verbose=-1)
| \n", + " | Global (1) | \n", + "Local (1) | \n", + "Global (2) | \n", + "Local (2) | \n", + "Global 3 (window norm) | \n", + "
|---|---|---|---|---|---|
| MSE | \n", + "41.057873 | \n", + "23.720592 | \n", + "22.238809 | \n", + "67.626298 | \n", + "15.317953 | \n", + "
ForecastingPipeline(steps=[FourierFeatures(fourier_terms_list=[1, 1], freq='D',\n", + " sp_list=[365.25, 30.4375]),\n", + " ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " normalization_strategy='divide_mean',\n", + " window_length=30)])Please rerun this cell to show the HTML repr or trust the notebook.
ForecastingPipeline(steps=[FourierFeatures(fourier_terms_list=[1, 1], freq='D',\n", + " sp_list=[365.25, 30.4375]),\n", + " ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " normalization_strategy='divide_mean',\n", + " window_length=30)])
FourierFeatures(fourier_terms_list=[1, 1], freq='D', sp_list=[365.25, 30.4375])
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " normalization_strategy='divide_mean', window_length=30)
LGBMRegressor(random_state=42, verbose=-1)
LGBMRegressor(random_state=42, verbose=-1)
| \n", + " | Global (1) | \n", + "Local (1) | \n", + "Global (2) | \n", + "Local (2) | \n", + "Global 3 (window norm) | \n", + "Global 4 (fourier) | \n", + "
|---|---|---|---|---|---|---|
| MSE | \n", + "41.057873 | \n", + "23.720592 | \n", + "22.238809 | \n", + "67.626298 | \n", + "15.317953 | \n", + "15.143648 | \n", + "
GroupbyCategoryForecaster(forecasters={'erratic': ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n",
+ " normalization_strategy='divide_mean',\n",
+ " window_length=30),\n",
+ " 'intermittent': ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n",
+ " normalization_strategy='divide_mean',\n",
+ " window_length=30),\n",
+ " 'lumpy': ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n",
+ " normalization_strategy='divide_mean',\n",
+ " window_length=30),\n",
+ " 'smooth': ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n",
+ " normalization_strategy='divide_mean',\n",
+ " window_length=30)},\n",
+ " transformer=ADICVTransformer(features=['class']))Please rerun this cell to show the HTML repr or trust the notebook.GroupbyCategoryForecaster(forecasters={'erratic': ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n",
+ " normalization_strategy='divide_mean',\n",
+ " window_length=30),\n",
+ " 'intermittent': ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n",
+ " normalization_strategy='divide_mean',\n",
+ " window_length=30),\n",
+ " 'lumpy': ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n",
+ " normalization_strategy='divide_mean',\n",
+ " window_length=30),\n",
+ " 'smooth': ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n",
+ " normalization_strategy='divide_mean',\n",
+ " window_length=30)},\n",
+ " transformer=ADICVTransformer(features=['class']))ADICVTransformer(features=['class'])
ADICVTransformer(features=['class'])
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " normalization_strategy='divide_mean', window_length=30)
LGBMRegressor(random_state=42, verbose=-1)
LGBMRegressor(random_state=42, verbose=-1)
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " normalization_strategy='divide_mean', window_length=30)
LGBMRegressor(random_state=42, verbose=-1)
LGBMRegressor(random_state=42, verbose=-1)
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " normalization_strategy='divide_mean', window_length=30)
LGBMRegressor(random_state=42, verbose=-1)
LGBMRegressor(random_state=42, verbose=-1)
ReductionForecaster(estimator=LGBMRegressor(random_state=42, verbose=-1),\n", + " normalization_strategy='divide_mean', window_length=30)
LGBMRegressor(random_state=42, verbose=-1)
LGBMRegressor(random_state=42, verbose=-1)
None
None
| \n", + " | \n", + " | \n", + " | sales | \n", + "
|---|---|---|---|
| group_id | \n", + "sku_id | \n", + "date | \n", + "\n", + " |
| -1 | \n", + "20 | \n", + "2020-01-01 | \n", + "0 | \n", + "
| 2020-01-02 | \n", + "0 | \n", + "||
| 2020-01-03 | \n", + "0 | \n", + "||
| 2020-01-04 | \n", + "0 | \n", + "||
| 2020-01-05 | \n", + "2 | \n", + "||
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| __total | \n", + "__total | \n", + "2024-07-01 | \n", + "2000 | \n", + "
| 2024-07-02 | \n", + "1616 | \n", + "||
| 2024-07-03 | \n", + "1917 | \n", + "||
| 2024-07-04 | \n", + "2384 | \n", + "||
| 2024-07-05 | \n", + "2462 | \n", + "
51088 rows × 1 columns
\n", + "| \n", + " | sales | \n", + "
|---|---|
| date | \n", + "\n", + " |
| 2020-01-01 | \n", + "4 | \n", + "
| 2020-01-02 | \n", + "2 | \n", + "
| 2020-01-03 | \n", + "3 | \n", + "
| 2020-01-04 | \n", + "14 | \n", + "
| 2020-01-05 | \n", + "16 | \n", + "
| \n", + " | sales | \n", + "
|---|---|
| date | \n", + "\n", + " |
| 2020-01-01 | \n", + "24 | \n", + "
| 2020-01-02 | \n", + "19 | \n", + "
| 2020-01-03 | \n", + "14 | \n", + "
| 2020-01-04 | \n", + "23 | \n", + "
| 2020-01-05 | \n", + "23 | \n", + "
| ... | \n", + "... | \n", + "
| 2024-07-01 | \n", + "2000 | \n", + "
| 2024-07-02 | \n", + "1616 | \n", + "
| 2024-07-03 | \n", + "1917 | \n", + "
| 2024-07-04 | \n", + "2384 | \n", + "
| 2024-07-05 | \n", + "2462 | \n", + "
1648 rows × 1 columns
\n", + "| \n", + " | \n", + " | \n", + " | sales | \n", + "
|---|---|---|---|
| group_id | \n", + "sku_id | \n", + "date | \n", + "\n", + " |
| -1 | \n", + "20 | \n", + "2024-07-06 | \n", + "0.000000 | \n", + "
| 2024-07-07 | \n", + "0.000000 | \n", + "||
| 2024-07-08 | \n", + "0.000000 | \n", + "||
| 2024-07-09 | \n", + "0.000000 | \n", + "||
| 2024-07-10 | \n", + "0.000000 | \n", + "||
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| __total | \n", + "__total | \n", + "2024-12-28 | \n", + "55.335283 | \n", + "
| 2024-12-29 | \n", + "156.831394 | \n", + "||
| 2024-12-30 | \n", + "210.198180 | \n", + "||
| 2024-12-31 | \n", + "190.297510 | \n", + "||
| 2025-01-01 | \n", + "13.594787 | \n", + "
5580 rows × 1 columns
\n", + "| \n", + " | \n", + " | \n", + " | sales | \n", + "
|---|---|---|---|
| group_id | \n", + "sku_id | \n", + "date | \n", + "\n", + " |
| -1 | \n", + "20 | \n", + "2024-07-06 | \n", + "0.0 | \n", + "
| 2024-07-07 | \n", + "0.0 | \n", + "||
| 2024-07-08 | \n", + "0.0 | \n", + "||
| 2024-07-09 | \n", + "0.0 | \n", + "||
| 2024-07-10 | \n", + "0.0 | \n", + "||
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| __total | \n", + "__total | \n", + "2024-12-28 | \n", + "0.0 | \n", + "
| 2024-12-29 | \n", + "0.0 | \n", + "||
| 2024-12-30 | \n", + "0.0 | \n", + "||
| 2024-12-31 | \n", + "0.0 | \n", + "||
| 2025-01-01 | \n", + "0.0 | \n", + "
5580 rows × 1 columns
\n", + "| \n", + " | Baseline | \n", + "BottomUpReconciler | \n", + "TopDownReconciler | \n", + "OptimalReconciler (ols) | \n", + "Mint Reconciler | \n", + "
|---|---|---|---|---|---|
| Mean Absolute Squared Error | \n", + "40.179149 | \n", + "26.079303 | \n", + "90.661393 | \n", + "59.86903 | \n", + "22.794349 | \n", + "
PytorchForecastingNBeats(dataset_params={'max_encoder_length': 120,\n",
+ " 'target_normalizer': EncoderNormalizer(\n",
+ "\tmethod='standard',\n",
+ "\tcenter=True,\n",
+ "\tmax_length=None,\n",
+ "\ttransformation=None,\n",
+ "\tmethod_kwargs={}\n",
+ ")},\n",
+ " model_params={'context_length': 120,\n",
+ " 'expansion_coefficient_lengths': [2, 5],\n",
+ " 'learning_rate': 0.001,\n",
+ " 'num_blocks': [2, 2],\n",
+ " 'stack_types': ['trend', 'seasonality']},\n",
+ " train_to_dataloader_params={'batch_size': 256},\n",
+ " trainer_params={'max_epochs': 1})Please rerun this cell to show the HTML repr or trust the notebook.PytorchForecastingNBeats(dataset_params={'max_encoder_length': 120,\n",
+ " 'target_normalizer': EncoderNormalizer(\n",
+ "\tmethod='standard',\n",
+ "\tcenter=True,\n",
+ "\tmax_length=None,\n",
+ "\ttransformation=None,\n",
+ "\tmethod_kwargs={}\n",
+ ")},\n",
+ " model_params={'context_length': 120,\n",
+ " 'expansion_coefficient_lengths': [2, 5],\n",
+ " 'learning_rate': 0.001,\n",
+ " 'num_blocks': [2, 2],\n",
+ " 'stack_types': ['trend', 'seasonality']},\n",
+ " train_to_dataloader_params={'batch_size': 256},\n",
+ " trainer_params={'max_epochs': 1})