LoginSignup
1
2

AWS Forecastで再学習を行うときの実装ノーハウ(boto3利用)

Last updated at Posted at 2023-11-14

下記のような知識があるとこの記事が理解しやすいです。

  • AWS Forecastについて基本知識
  • AWS SDK (boto3等)やCLIでAWS Forecastの予測の実施方法がわかる
  • Python

AWS Forecastとは
https://docs.aws.amazon.com/ja_jp/forecast/latest/dg/what-is-forecast.html

AWS boto3 forecast Doc
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/forecast.html

再学習とは

Forecastの予測の実施流れ

Forecastの予測は以下のような流れで行われます。

  1. Dataset Group作成
  2. Dataset 作成
  3. Dataset インポート
  4. Predictor 作成
  5. Forecast 作成
  6. Forecast エクスポート

予測を行うたびに全体の流れを繰り返すのは非効率的です。

再学習の実施流れ

  1. 既に作成済みのDatasetに追加データをインポート
  2. 既に作成済みのPredictorを指定してPredictorを作成
  3. Forecast作成からの手順は同上です。

とくにPredictorの処理が高速になります。

予測子の再学習は、新しい予測子をゼロから作成するよりも最大 50% 高速です。
Predictor のトレーニング時間は短くなり、Forecast では既存の構成設定が自動的に使用されます。

参照:https://docs.aws.amazon.com/ja_jp/forecast/latest/dg/retrain-predictors.html

実装ノーハウ

利用ライブラリ:boto3

forecast = boto3.client(service_name='forecast', region_name='ap-northeast-1')

引数:create_dataset_import_job

  • 過去作成したdataset-groupの既に存在するdatasetへ追加データをインポート
  • 追加データをインポートする際はcreate_dataset_import_jobの引数にImportMode='INCREMENTAL'を指定
dataset_import_job_response = forecast.create_dataset_import_job(
    DatasetImportJobName=import_job_name,
    DatasetArn=dataset_arn, # `dataset-group`の既存の`dataset`
    DataSource={
        "S3Config" : {
            "Path": s3_path,
            "RoleArn": role_arn
        }
    },
    TimestampFormat=time_stamp_format,
    ImportMode='INCREMENTAL' # `ImportMode='INCREMENTAL'`を指定
)

ImportMode='FULL'を指定すると追加とはならなく全体データが上書きされます。

引数:create_auto_predictor

  • ReferencePredictorArn引数に再学習する対象のPredictorを指定
create_predictor_response = forecast.create_auto_predictor(
    PredictorName=predictor_name,
    ReferencePredictorArn=retraining_predictor_arn # 再学習する対象の`Predictor`を指定
)

※ 引数のForecastHorizon, ForecastFrequency, DataConfigは指定しないことにご注意ください。

検証結果

  • Predictor作成時間が明らかに短くなっています。
区分 実績データ 再学習元 Predictor作成時間 Forecast作成時間 予測対象期間
1回目予測 2022年1月1日~2022年8月31日 なし 50分 17分 2022年9月1日~2022年10月30日
2回目予測(再学習) 2022年9月1日~2022年9月30日(追加分) 1回目予測Predictor 34分 15分 2022年10月1日~2022年11月29日
3回目予測(再学習) 2022年10月1日~2022年10月31日(追加分) 2回目予測Predictor 34分 15分 2022年11月1日~2022年12月30日
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2