LoginSignup
1
0

はじめに

たまたま Amazon Lookout for Metrics というサービスについて触れることがあったので検証した内容をまとめてみました。

Amazon Lookout for Metrics とは?

機械学習を使用してメトリクス内の異常を自動的に検知してくれる AWS サービスです。

検証内容

今回は以下の記事を参考に行っています。

概要説明

あるファーストフードチェーンが一部の店舗でポイントプログラムを導入しました。
そのプログラムの内容は以下です。

  • 商品を購入するとその金額に応じてポイントが溜まる
  • 溜まったポイントは割引券や特典と交換することができる

このポイントの獲得と交換パターンにおいてパターン異常を検知する設定を行うという内容です。

データ概要

ここで取り扱うデータの項目とその内容については以下となります。

項目 説明
TIMESTAMP データの取得日です。
今回は yyyy-MM-dd を扱っています。
LOCATION_ID ポイントプログラムが導入された店舗の ID です。
A-1001 ~ A-1008 の 8 店舗が集計対象です。
EARNED_POINTS 獲得ポイントです。
顧客が商品を購入して得られたその日の総数です。
REDEEM_POINTS 交換ポイントです。
顧客が店舗で交換したその日のポイントの総数です。

設定

今回の構築ステップは大きく分けて以下の 3 ステップとなります。

  1. Amazon S3 バケットの作成と解析データのアップロード
  2. Detector の作成
  3. データセットの作成

S3バケットの作成とサンプルデータのアップロード

ここでは Amazon Lookout for Metrics で解析するためのデータ置き場とそのデータの準備を行います。
利用するデータは AWS Samples というところにあるデータを利用します。

  • まず、AWS Samples より、 loyalty.csv というファイルのダウンロードをします。

download-dataset.png

  • 次に S3 バケットを作成し、先ほどダウンロードし loyalty.csv をアップロードします。

upload-file01.png

upload-file02.jpg

upload-file03.png

Detector の作成

対象となるデータセットの監視と検出をするための Detector を作成します。

  • まず、 AWS マネジメントコンソール > Amazon Lookout for Metrics をクリックします。

  • 次に Create detector をクリックします。

create-detector.png

Create detector

Detector details で Detector の情報を入力します。

  • Detector nameloyalty-point-anomaly-detector を入力します。
  • Interval は Detector がデータセットを分析する間隔なので、今回の利用データは一日単位のため 1 day intervals を指定します。
  • Create をクリックします。

create-detector02.jpg

データセットの作成

ここではデータの場所と Detector へ異常を伝えるためのデータセットを作成します。

  • Detector の作成が完了すると以下の画面が表示されるので Add a dataset をクリックします。

create-dataset01.png

  • Nameloyalty-point-anomaly-dataset を入力します。
  • TimezoneAsia/Tokyo を指定します。

create-dataset02.png

  • DatasourceAmazon S3 を選び、Detector modeBacktest を選択して先ほどアップロードしたデータソースのファイルパスを入力します。

  • [Detect format settings] をクリックします。

create-dataset03.png

  • 全てデフォルトの状態で Next をクリックします。

create-dataset04.png
create-dataset05.png

meaures と dimensions の設定

MesuresKPI (Key Performance Indicator : 重要業績評価指標) を設定する項目で、Dimensionsカテゴリーセグメント を設定する項目になります。

  • MesuresEARNED_POINTSREDEEM_POINTS を指定します。
  • Dimensions では地域別に計測したいので LOCATION_ID を指定します。

Configure-dataset01.png

timestamps の設定

Timestamp はデータの タイムスタンプ が記録されている項目とそのフォーマットを指定します。

  • TimestampTIMESTAMP という項目を指定し、 Format では Enter a timestamp format を選んで Timestamp formatyyyy-MM-dd を入力します。

Configure-dataset02.png

コストの見積もり

Cost Estimate を利用すると検知にかかる費用を事前に見積もることができます。
今回の場合、 Measures 数が 2 つで Dimension 数が 8 つのため、Metrics 数は 2 (Measures) × 8 (Dimension) = 16 (Metrics) になります。
また、1 Metrics あたり $0.75 になるのため、発生する費用は 16 (Metrics) × $0.75 = $12.00 となります。

Configure-dataset04.jpg

※ ここで見積もりを間違うと請求が大変なことになるので気をつけましょう。

  • Next をクリックします

Configure-dataset05.jpg

Review and create

  • 内容を確認して問題なければ Save and activate をクリックします。

Configure-dataset06.jpg

  • Activate your detector という確認画面がポップアップされるため、 confirm を入力して Activate をクリックします。

Configure-dataset07.png

Activate detector の項目が Activating backtest... から Backtest complete となったら完了です。

Configure-dataset08.png

解析結果

バックテストが完了したら検出した異常について確認します。

  • Amazon Lookout for Metrics > Detectors > loyalty-point-anomaly-detector > Anomalies をクリックします。

  • すると REDEEM_POINTS Impacted というのが表示されているのでクリックします。

Check01.png

Severity score は検知した異常の重大度を示し、 Start time detected は異常を検知した時刻(TIMESTAMP値)が表示されます。
ここでは重要度が 91 の異常を Sep 01, 2022 00:00 JST に検知しています。

Check03.jpg

また、異常に対する寄与率も確認できます。
今回は異常の全てが A-1002 からのものということを表しています。

Check04.jpg

おわりに

データを S3 に置くだけで簡単に異常検知を行ってくれるのでとても便利だなと感じました。
ただ、 Dimensions はうっかり間違うと大変なことになるため注意が必要です。


参考

1
0
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
0