Slide 1

Slide 1 text

みんな⼤好き時系列予測 〜Amazon Forecastで時系列予測やってみた〜 データアナリティクス事業本部 インテグレーション部 貞松 政史

Slide 2

Slide 2 text

スライドは後で⼊⼿することが出来ますので 発表中の内容をメモする必要はありません。 写真撮影をする場合は フラッシュ・シャッター⾳が出ないようにご配慮ください Attention

Slide 3

Slide 3 text

3 ⾃⼰紹介 • ⽒名 • 貞松 政史 (サダマツ マサシ) • 所属 • データアナリティクス事業本部 • インテグレーション部 開発チーム • 岡⼭オフィス勤務 •好きなAWSサービス • SageMaker • Lambda • Forecast ← new!

Slide 4

Slide 4 text

4 本セッションのゴール Amazon Forecast だいたいわかった ü Amazon Forecastの概要 ü コンソール上での操作⼿順 ü なんとなくの活⽤イメージ

Slide 5

Slide 5 text

5 本セッションで話さないこと 時系列予測の理論的な(深い)話 がっつりシステムに組み込む話

Slide 6

Slide 6 text

6 おしながき 1. Amazon Forecastとは 2. 時系列予測の基礎 3. コンソール上でのForecastの操作⼿順 4. オープンデータを使った使⽤例

Slide 7

Slide 7 text

7 Amazon Forecastとは 1. Amazon Forecastとは 2. 時系列予測の基礎 3. コンソール上でのForecastの操作⼿順 4. オープンデータを使った使⽤例

Slide 8

Slide 8 text

8 Amazon Forecast とは 機械学習の経験なしで使⽤できる Amazon.comと同じテクノロジーに 基づいた正確な時系列予測サービス

Slide 9

Slide 9 text

9 で、何ができるの︖ ü 予測したい数値を含む時系列データをインポート ü 時系列予測のアルゴリズムを選択して学習を実⾏ (AutoMLを利⽤すればアルゴリズムの選択も不要︕) ü 学習済みモデル(予測⼦)を⽤いて予測を作成 これだけで時系列予測ができちゃう

Slide 10

Slide 10 text

10 Forecastのメリット データの収集 データの前処理 学習アルゴリズムの実装 学習済みモデルの性能検証 予測の可視化 通常の時系列予測のプロセス ⾃前で準備・実装

Slide 11

Slide 11 text

11 Forecastのメリット データの収集 データの前処理 学習アルゴリズムの実装 学習済みモデルの性能検証 予測の可視化 Forecastを利⽤した時系列予測のプロセス ⾃前で準備 Forecastの機能

Slide 12

Slide 12 text

12 Forecastの活⽤領域 • ⼩売の需要予測 • 在庫予測 • 収益・売上・キャッシュフローの予測 • 従業員・労働⼒の計画 • ウェブトラフィックの⾒積 • Amazon EC2のキャパシティ予測 etc…

Slide 13

Slide 13 text

13 Forecastの利⽤⽅法 • コンソール上で使⽤ ← 今回はこれ • AWS CLIで使⽤ • Jupyter Notebookで使⽤ • AWS SDKで使⽤ (for Python, for Java など)

Slide 14

Slide 14 text

14 時系列予測の基礎 1. Amazon Forecastとは 2. 時系列予測の基礎 3. コンソール上でのForecastの操作⼿順 4. オープンデータを使った使⽤例

Slide 15

Slide 15 text

15 時系列予測とは                 時間的な連続性を持つ過去の実績データから未来の数値・傾向を予測する ? ? ?

Slide 16

Slide 16 text

16 どうやって予測するのか 0 2 4 6 8 10 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 value 0 10 20 30 40 50 60 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 value temp 予測対象データ⾃体の傾向 季節変動・トレンド →その他外部要因(周辺環境の変化、世界情勢)など 古典的な統計⼿法や機械学習を適⽤することで予測

Slide 17

Slide 17 text

17 コンソール上でのForecastの操作⼿順 1. Amazon Forecastとは 2. 時系列予測の基礎 3. コンソール上でのForecastの操作⼿順 4. オープンデータを使った使⽤例

Slide 18

Slide 18 text

18 Forecastの構成要素 データセットグループ データセット(必須) TARGET_TIME_SERIES データセット(任意) RELATED_TIME_SERIES データセット(任意) ITEM_METADATA 予測⼦(予測⽤の学習済みモデル) 予測

Slide 19

Slide 19 text

19 コンソール上でのForecastの操作⼿順 データセットグループ作成 データセット作成 データインポート 予測⼦の作成 予測の作成 予測の可視化

Slide 20

Slide 20 text

20 サンプルデータ http://archive.ics.uci.edu/ml UCI Machine Learning で公開されている電⼒利⽤量データ

Slide 21

Slide 21 text

21 データセットグループの作成 トップページ → Create dataset group

Slide 22

Slide 22 text

22 データセットグループの作成 データセットグループ名とドメインを⼊⼒

Slide 23

Slide 23 text

23 Forecast domain • RETAIL : ⼩売の需要予測 • INVENTORY_PLANNING : サプライチェーンと在庫の計画 • EC2 CAPACITY : Amazon EC2 キャパシティの予測 • WORK_FORCE : 従業員の計画 • WEB_TRAFFIC : 今後のウェブトラフィックの⾒積もり • METRICS : 収益およびキャッシュフローなどの予測メトリクス • CUSTOM : その他すべての時系列予測のタイプ

Slide 24

Slide 24 text

24 データセットの作成 • データセット名 • データの時間刻み • スキーマ定義 • 必須のスキーマ ⁻ item_id ⁻ timestamp ⁻ target_value • 任意のスキーマ

Slide 25

Slide 25 text

25 時系列データの時間刻み 選択可能な時間刻みの単位 • minutes : 分 • hour : 時間 • day : ⽇ • week : 週 • month : ⽉ • year : 年

Slide 26

Slide 26 text

26 データインポート • データセットインポート名 • タイムスタンプフォーマット ⁻ yyyy-MM-dd HH:mm:ss ⁻ yyyy-MM-dd • IAMロール(S3のRead) • インポートするデータの場所 ⁻ S3バケット上のパス

Slide 27

Slide 27 text

27 予測⼦の作成

Slide 28

Slide 28 text

28 予測⼦の作成 • 予測⼦名 • 予測範囲(期間) • 予測の時間刻み • 予測アルゴリズムの選択 ⁻ AutoML(⾃動選択) ⁻ Manual(⼿動選択)

Slide 29

Slide 29 text

29 予測⼦の作成 Forecastで使⽤可能な時系列予測アルゴリズム • ARIMA : ⾃⼰回帰和分移動平均 • DeepAR+ : 再帰型ニューラルネットワーク (RNN) を使⽤してスカ ラー (1次元) 時系列を予測するための、教師あり学習アルゴリズム • ETS : 指数平滑法 • NPTS : ノンパラメトリック時系列 • Prophet : 局所的なベイズ構造時系列モデル

Slide 30

Slide 30 text

30 予測⼦の作成 • Forecast dimensions • Backtest window ⁻ Number of windows ⁻ Offset • Advanced configutations ⁻ ハイパーパラメータ設定など

Slide 31

Slide 31 text

31 作成した予測⼦の確認

Slide 32

Slide 32 text

32 作成した予測⼦の確認

Slide 33

Slide 33 text

33 作成した予測⼦の確認 平均平⽅⼆乗誤差 (Root Mean Squared Error, RMSE) 外れ値 (⼤きなズレ) を より⼤きな誤差として扱う -0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99    値が⼩さいほど良い

Slide 34

Slide 34 text

34 作成した予測⼦の確認 重み付けされた分位損失 (weighted Quantile Loss) 値が⼩さいほど良い

Slide 35

Slide 35 text

35 予測の作成

Slide 36

Slide 36 text

36 予測の作成 予測名と予測⼦を⼊⼒

Slide 37

Slide 37 text

37 予測の可視化 27 

Slide 38

Slide 38 text

38 予測の可視化 27 

Slide 39

Slide 39 text

39 予測のエクスポート

Slide 40

Slide 40 text

40 予測のエクスポート • 予測エクスポート名 • 出⼒する予測結果 • IAM(S3 Write) • 出⼒先のS3バケットのパス

Slide 41

Slide 41 text

41 予測のエクスポート 指定したS3バケットのパスにファイル出⼒ ←予測結果データが ⼊ったCSVファイル

Slide 42

Slide 42 text

42 予測のエクスポート 以下の列項⽬を含む • item_id • date • p10, p50, p90

Slide 43

Slide 43 text

43 ユースケース 1. Amazon Forecastとは 2. 時系列予測の基礎 3. コンソール上でのForecastの操作⼿順 4. オープンデータを使った使⽤例

Slide 44

Slide 44 text

44 福岡市のインフルエンザ報告数 https://ckan.open-governmentdata.org/dataset/influenza401307fukuoka

Slide 45

Slide 45 text

45 データ仕様 データ期間︓2015年7⽉〜2019年8⽉(1週間刻み)

Slide 46

Slide 46 text

46 データの前処理 組み合わせて item_idに 年と週番号を週頭の 年⽉⽇に変換して timestampに そのまま target_valueに

Slide 47

Slide 47 text

47 データの前処理結果 item_id, timestamp, target_valueを持つデータに変換完了 item_idが⽇本語の値 → 問題なし ※但しファイルの⽂字コードがUTF-8になっていること

Slide 48

Slide 48 text

48 ここからはForcastの出番 あとは Forecast におまかせ︕

Slide 49

Slide 49 text

49 予測の可視化 ↑⽇本語のitem_id

Slide 50

Slide 50 text

50 予測の可視化

Slide 51

Slide 51 text

51 Bless you. インフルエンザには気をつけましょう

Slide 52

Slide 52 text

まとめ

Slide 53

Slide 53 text

53 まとめ Amazon Forecastは機械学習の経験が無くても 使⽤可能な時系列予測サービス データの収集・前処理さえしておけばGUI上で ポチポチするだけで時系列予測ができる 幾つかの制限・課題はあるものの既に時系列データを 蓄積している幅広い分野で活⽤できる可能性がある

Slide 54

Slide 54 text

54 結論 Amazon Forecast はいいぞ

Slide 55

Slide 55 text

55