時系列予測のために Azure AutoML を試しています。1 時間間隔で 2 年間のデータを含む単純な 2 列のトレーニング データセットがあります。列 1 は日付/時刻です。列 2 は予測したい変数です。Azure AutoML を数回実行しましたが、正常に完了したようです。ただし、予測を行ってグラフを作成すると、明らかに何かが間違っています。どういうわけか予測が量子化されているようです。下のグラフは、トレーニングセット後 7 日間のものです。青が実績、赤が予測です。これは明らかに正しくありません。
これがトレーニング用の構成です(python):
lags = [1,24,168]
forecast_horizon = 7 * 24 # 7 days of hourly data
forecasting_parameters = ForecastingParameters(
time_column_name="DateTime",
forecast_horizon=forecast_horizon,
target_lags=lags,
country_or_region_for_holidays='NZ',
freq='H',
use_stl='season',
seasonality='auto'
)
automl_config = AutoMLConfig(task='forecasting',
debug_log='automl_forecasting_function.log',
primary_metric='normalized_root_mean_squared_error',
experiment_timeout_hours=1,
experiment_exit_score=0.05,
enable_early_stopping=True,
training_data=train_df,
compute_target=compute,
n_cross_validations=10,
verbosity = logging.INFO,
max_concurrent_iterations=19,
max_cores_per_iteration=19,
label_column_name="Output",
forecasting_parameters=forecasting_parameters,
featurization="auto",
enable_dnn=False)
実行した最適なモデルは VotingEnsemble です。
ForecastingPipelineWrapper(pipeline=Pipeline(
memory=None,
steps=[('timeseriestransformer',
TimeSeriesTransformer(
featurization_config=None,
pipeline_type=<TimeSeriesPipelineType.FULL: 1>)),
('prefittedsoftvotingregressor',
PreFittedSoftVotingRegressor(estimators=[('7',
Pipeline(memory=None,
steps=[('minmaxscaler',
MinMaxScaler(copy=True,
feature_range=(0,
1))...
DecisionTreeRegressor(ccp_alpha=0.0,
criterion='mse',
max_depth=None,
max_features=0.5,
max_leaf_nodes=None,
min_impurity_decrease=0.0,
min_impurity_split=None,
min_samples_leaf=0.00218714609400816,
min_samples_split=0.00630957344480193,
min_weight_fraction_leaf=0.0,
presort='deprecated',
random_state=None,
splitter='best'))],
verbose=False))],
weights=[0.5,
0.5]))],
verbose=False),
stddev=None)