Amazon Lookout for MetricsのBacktestモードの役に立つ機能

## はじめに
Amazon Lookout for MetricsでBacktestモードを利用する際に、役に立つと思った機能等について記載します。
※本記事は2024年9月時点での情報になります。
## その1：save dataset機能
BacktestモードでActivate前の状態を保存することができます。

![save dataset.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/bf340a08-1d7a-076e-fc89-d1f1da394bce.png)
**■save dataset手順**

やり方は以下になります。
Dataset設定の際に「save dataset」を押下します。やることはこれだけです。

すると下記のようなデータセットが作成できたメセージが出ます。
![データセット名.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/fe682933-6a70-eeff-aabe-cd200133611a.png)

この機能を使うことで、ActivateするまではDetectorの検出機能は開始されませんので
その間にアラートの追加設定や、取り込むデータの見直しをすることができます。

Activateするには以下の手順で実施します。

**■Activate手順**

Detectorの詳細画面で「Activate detector」のボタンが出ています。
![データセット名.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/6f3041ae-ce42-d58f-ab1b-77338d60e9de.png)

「Activate detector」を押下すると下記の様にDetectorをActivateするか確認されます。
またここではデータの 70% を学習に使用し、30% を異常検出に使用すること、学習中にアラートを設定できることが確認できます。
![Activeデテクター名.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/b84da1d4-4845-754f-938c-9d74c894cc04.png)
※アラート設定はオプションの機能になります。
※Activate中にアラート設定を追加することも可能ですが、Activate完了前までにアラート設定を完了させる必要があること、またActivate処理を途中で止める事はできないので注意してください。

「Activate」を押下すると「The detecotr is learning」のメッセージが出てDetectorの状態が変化していきます。
![スクリーンショット 2024-09-29 134548.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/05815d77-3727-fbe9-c4d5-0705d93e510b.png)

![スクリーンショット 2024-09-29 134554.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/0a3fd36b-4047-3a6b-c81b-6685f7cc8d52.png)
Activating backtestになり
**⇩**
![スクリーンショット 2024-09-29 140121.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/b62faade-7eea-33fb-84e9-b5425e9f9043.png)
Backtest in progressになり
**⇩**
![スクリーンショット 2024-09-29 140802.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/be300948-a537-7b2f-d28e-fac8984c1dbd.png)
Backtest in completeで完了になります。





## その2 ：Backtest data propertiesの情報
上記手順の中で「データの 70% を学習に使用し、30% を異常検出に使用すること」とありますが、具体的にどの期間が学習用でどの期間が異常検出に使われているのかはBacktest data propertiesを見ることで確認することができます。

Activete detectorの状態がcompleteになった後
detector詳細画面の「Backtest data properties」で確認できます。
![backtestデータレンジ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/64f92eda-7bae-1d5f-7ac3-0fb7f21b3554.png)

今回使用したデータを以下のように処理していることが分かります。

**・データの範囲：2023/1/1 ～ 2024/8/31**
**・学習データ期間(70％)：2023/1/1 ～ 2024/4/16**
**・異常検出期間(30％)：2024/4/17 ～ 2024/8/31**

ここから、異常検出には2024年4月17日以降のデータを利用していることがわかります。
※学習期間のデータは異常検出には利用されません。
※ここでは日付単位のデータを使用しています。
※以下のようにBacktestの異常検出に必要な最小データ量の制限もありますので注意してください。

https://docs.aws.amazon.com/lookoutmetrics/latest/dev/gettingstarted-quotas.html#gettingstarted-quotas-backtest
>バックテストに使用されるトレーニング データとテスト データの比率は、トレーニング 70%、テスト 30% です
>バックテストに必要な最小データ量は、データ収集の間隔によって次のように異なります。
>5 分間隔– 約 1 日分のデータ。
>10 分間隔– 1.9 日分のデータ。
>1 時間間隔– 11.8 日分のデータ。
>1 日間隔– 285 日間のデータ。


## まとめ
Lookout for MetricsではActivate後に設定ミスに気づいても、Activate処理のキャンセルはできないため、save dataset機能を使うことで最終確認などを落ち着いて行えるのが便利だと思いました。
また異常検出させたいデータが学習期間に含まれていると異常として検出されませんので、うまく異常が検出されない場合には、Backtest data propertiesで学習期間と異常検出期間を確認することで問題解決につながるかもしれません。
この記事が何かのお役に立てれば幸いです。