1

時系列予測のために 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)
4

1 に答える 1