Anonymous
Sktime получил ошибку при выполнении ForecastingGridSearchCV
Сообщение
Anonymous » 20 янв 2025, 19:20
Я пытаюсь выполнить масштабирование как по y, так и по X, прежде чем подгонять модель прогноза. Я хочу сделать преобразование масштабирования необязательным. Однако при выполнении поиска по сетке выше я столкнулся с ошибкой.
Код: Выделить всё
from sklearn.preprocessing import MinMaxScaler, PowerTransformer, RobustScaler
from sktime.performance_metrics.forecasting import MeanSquaredError
from sktime.forecasting.statsforecast import StatsForecastAutoARIMA
from sktime.forecasting.model_selection import ExpandingWindowSplitter
from sktime.forecasting.compose import ForecastingPipeline
from sktime.forecasting.fbprophet import Prophet
поезд1
Код: Выделить всё
y M0 Delta
ds
2022-10 127 249.0 14.0
2022-11 194 298.0 160.0
2022-12 202 269.0 128.0
2023-01 149 215.0 33.0
2023-02 203 198.0 111.0
2023-03 222 259.0 10.0
2023-04 195 232.0 -1.0
2023-05 236 210.0 47.0
2023-06 76 155.0 -12.0
2023-07 204 232.0 101.0
2023-08 231 221.0 -13.0
2023-09 171 196.0 -30.0
2023-10 172 80.0 39.0
2023-11 173 206.0 1.0
2023-12 132 189.0 -8.0
2024-01 165 190.0 50.0
2024-02 93 136.0 0.0
2024-03 105 126.0 45.0
2024-04 99 134.0 18.0
2024-05 121 128.0 12.0
2024-06 109 181.0 0.0
2024-07 183 244.0 7.0
2024-08 159 195.0 27.0
2024-09 147 186.0 -5.0
test1
Период прогнозирования
Код: Выделить всё
pipe_y = TransformedTargetForecaster(
steps=[
("scaler", OptionalPassthrough(TabularToSeriesAdaptor(RobustScaler()))),
("forecaster", StatsForecastAutoARIMA(sp=12)),
]
)
pipe_X = ForecastingPipeline(
steps=[
("scaler", OptionalPassthrough(TabularToSeriesAdaptor(RobustScaler()))),
("forecaster", pipe_y),
]
)
cv1 = ExpandingWindowSplitter(fh=[1], initial_window=train1.shape[0]-3, step_length=1)
gscv1 = ForecastingGridSearchCV(
forecaster=pipe_X,
param_grid=[
{
"scaler__passthrough": [True, False],
"forecaster__scaler__passthrough": [True, False],
"forecaster": [StatsForecastAutoARIMA(sp=12)],
},
{
"scaler__passthrough": [True, False],
"forecaster": [Prophet()],
"forecaster__scaler__passthrough": [True, False],
"forecaster__seasonality_mode": ['addictive','multiplicative'],
"forecaster__changepoint_prior_scale": [0.001, 0.01, 0.1, 0.5],
"forecaster__seasonality_prior_scale": [0.01, 0.1, 1.0, 10.0],
},
],
cv=cv1,
error_score="raise",
scoring=MeanSquaredError(square_root=True),
)
gscv1.fit(train1['y'], X=train1[features1])
Отслеживание ошибок
Код: Выделить всё
---------------------------------------------------------------------------
_RemoteTraceback Traceback (most recent call last)
_RemoteTraceback:
"""
Traceback (most recent call last):
File "c:\Desktop\Waterfall Chart\lib\site-packages\joblib\externals\loky\process_executor.py", line 463, in _process_worker
r = call_item()
File "c:\Desktop\Waterfall Chart\lib\site-packages\joblib\externals\loky\process_executor.py", line 291, in __call__
return self.fn(*self.args, **self.kwargs)
File "c:\Desktop\Waterfall Chart\lib\site-packages\joblib\parallel.py", line 598, in __call__
return [func(*args, **kwargs)
File "c:\Desktop\Waterfall Chart\lib\site-packages\joblib\parallel.py", line 598, in
return [func(*args, **kwargs)
File "c:\Desktop\Waterfall Chart\lib\site-packages\sktime\forecasting\model_selection\_tune.py", line 368, in _fit_and_score
forecaster.set_params(**params)
File "c:\Desktop\Waterfall Chart\lib\site-packages\sktime\base\_meta.py", line 60, in set_params
self._set_params(steps_attr, **kwargs)
File "c:\Desktop\Waterfall Chart\lib\site-packages\sktime\base\_meta.py", line 142, in _set_params
super().set_params(**params)
File "c:\Desktop\Waterfall Chart\lib\site-packages\skbase\base\_base.py", line 398, in set_params
unmatched_params = {key: params[key] for key in unmatched_keys}
File "c:\Desktop\Waterfall Chart\lib\site-packages\skbase\base\_base.py", line 398, in
unmatched_params = {key: params[key] for key in unmatched_keys}
KeyError: 'estimator'
"""
...
--> 763 raise self._result
764 return self._result
765 finally:
KeyError: 'estimator'
Я пытаюсь следовать примеру automl по ссылке ниже:
https://www.sktime.net/en/latest/exampl ... uning.html
п>
Подробнее здесь:
https://stackoverflow.com/questions/793 ... idsearchcv
1737390017
Anonymous
Я пытаюсь выполнить масштабирование как по y, так и по X, прежде чем подгонять модель прогноза. Я хочу сделать преобразование масштабирования необязательным. Однако при выполнении поиска по сетке выше я столкнулся с ошибкой. [code]from sklearn.preprocessing import MinMaxScaler, PowerTransformer, RobustScaler from sktime.performance_metrics.forecasting import MeanSquaredError from sktime.forecasting.statsforecast import StatsForecastAutoARIMA from sktime.forecasting.model_selection import ExpandingWindowSplitter from sktime.forecasting.compose import ForecastingPipeline from sktime.forecasting.fbprophet import Prophet [/code] поезд1 [code]y M0 Delta ds 2022-10 127 249.0 14.0 2022-11 194 298.0 160.0 2022-12 202 269.0 128.0 2023-01 149 215.0 33.0 2023-02 203 198.0 111.0 2023-03 222 259.0 10.0 2023-04 195 232.0 -1.0 2023-05 236 210.0 47.0 2023-06 76 155.0 -12.0 2023-07 204 232.0 101.0 2023-08 231 221.0 -13.0 2023-09 171 196.0 -30.0 2023-10 172 80.0 39.0 2023-11 173 206.0 1.0 2023-12 132 189.0 -8.0 2024-01 165 190.0 50.0 2024-02 93 136.0 0.0 2024-03 105 126.0 45.0 2024-04 99 134.0 18.0 2024-05 121 128.0 12.0 2024-06 109 181.0 0.0 2024-07 183 244.0 7.0 2024-08 159 195.0 27.0 2024-09 147 186.0 -5.0 [/code] test1 [code]M0 Delta ds 2024-10 161.0 -10.0 [/code] Период прогнозирования [code]pipe_y = TransformedTargetForecaster( steps=[ ("scaler", OptionalPassthrough(TabularToSeriesAdaptor(RobustScaler()))), ("forecaster", StatsForecastAutoARIMA(sp=12)), ] ) pipe_X = ForecastingPipeline( steps=[ ("scaler", OptionalPassthrough(TabularToSeriesAdaptor(RobustScaler()))), ("forecaster", pipe_y), ] ) cv1 = ExpandingWindowSplitter(fh=[1], initial_window=train1.shape[0]-3, step_length=1) gscv1 = ForecastingGridSearchCV( forecaster=pipe_X, param_grid=[ { "scaler__passthrough": [True, False], "forecaster__scaler__passthrough": [True, False], "forecaster": [StatsForecastAutoARIMA(sp=12)], }, { "scaler__passthrough": [True, False], "forecaster": [Prophet()], "forecaster__scaler__passthrough": [True, False], "forecaster__seasonality_mode": ['addictive','multiplicative'], "forecaster__changepoint_prior_scale": [0.001, 0.01, 0.1, 0.5], "forecaster__seasonality_prior_scale": [0.01, 0.1, 1.0, 10.0], }, ], cv=cv1, error_score="raise", scoring=MeanSquaredError(square_root=True), ) gscv1.fit(train1['y'], X=train1[features1]) [/code] Отслеживание ошибок [code]--------------------------------------------------------------------------- _RemoteTraceback Traceback (most recent call last) _RemoteTraceback: """ Traceback (most recent call last): File "c:\Desktop\Waterfall Chart\lib\site-packages\joblib\externals\loky\process_executor.py", line 463, in _process_worker r = call_item() File "c:\Desktop\Waterfall Chart\lib\site-packages\joblib\externals\loky\process_executor.py", line 291, in __call__ return self.fn(*self.args, **self.kwargs) File "c:\Desktop\Waterfall Chart\lib\site-packages\joblib\parallel.py", line 598, in __call__ return [func(*args, **kwargs) File "c:\Desktop\Waterfall Chart\lib\site-packages\joblib\parallel.py", line 598, in return [func(*args, **kwargs) File "c:\Desktop\Waterfall Chart\lib\site-packages\sktime\forecasting\model_selection\_tune.py", line 368, in _fit_and_score forecaster.set_params(**params) File "c:\Desktop\Waterfall Chart\lib\site-packages\sktime\base\_meta.py", line 60, in set_params self._set_params(steps_attr, **kwargs) File "c:\Desktop\Waterfall Chart\lib\site-packages\sktime\base\_meta.py", line 142, in _set_params super().set_params(**params) File "c:\Desktop\Waterfall Chart\lib\site-packages\skbase\base\_base.py", line 398, in set_params unmatched_params = {key: params[key] for key in unmatched_keys} File "c:\Desktop\Waterfall Chart\lib\site-packages\skbase\base\_base.py", line 398, in unmatched_params = {key: params[key] for key in unmatched_keys} KeyError: 'estimator' """ ... --> 763 raise self._result 764 return self._result 765 finally: KeyError: 'estimator' [/code] Я пытаюсь следовать примеру automl по ссылке ниже: https://www.sktime.net/en/latest/examples/03b_forecasting_transformers_pipelines_tuning.html п> Подробнее здесь: [url]https://stackoverflow.com/questions/79370006/sktime-got-error-when-performing-forecastinggridsearchcv[/url]