Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon Forecast Getting Start

Amazon Forecast Getting Start

2019.10.11 DevelopersIO 2019 in Osaka

61f90740b91146cdf166bf74c6c4885f?s=128

貞松政史

October 11, 2019
Tweet

Transcript

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

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

  3. 3 ⾃⼰紹介 • ⽒名 • 貞松 政史 (サダマツ マサシ) •

    所属 • データアナリティクス事業本部 • インテグレーション部 開発チーム • 岡⼭オフィス勤務 •好きなAWSサービス • SageMaker • Lambda • Forecast ← new!
  4. 4 本セッションのゴール Amazon Forecast だいたいわかった ü Amazon Forecastの概要 ü コンソール上での操作⼿順

    ü なんとなくの活⽤イメージ
  5. 5 本セッションで話さないこと 時系列予測の理論的な(深い)話 がっつりシステムに組み込む話

  6. 6 おしながき 1. Amazon Forecastとは 2. 時系列予測の基礎 3. コンソール上でのForecastの操作⼿順 4.

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

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

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

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

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

  12. 12 Forecastの活⽤領域 • ⼩売の需要予測 • 在庫予測 • 収益・売上・キャッシュフローの予測 • 従業員・労働⼒の計画

    • ウェブトラフィックの⾒積 • Amazon EC2のキャパシティ予測 etc…
  13. 13 Forecastの利⽤⽅法 • コンソール上で使⽤ ← 今回はこれ • AWS CLIで使⽤ •

    Jupyter Notebookで使⽤ • AWS SDKで使⽤ (for Python, for Java など)
  14. 14 時系列予測の基礎 1. Amazon Forecastとは 2. 時系列予測の基礎 3. コンソール上でのForecastの操作⼿順 4.

    オープンデータを使った使⽤例
  15. 15 時系列予測とは        

            時間的な連続性を持つ過去の実績データから未来の数値・傾向を予測する ? ? ?
  16. 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 予測対象データ⾃体の傾向 季節変動・トレンド →その他外部要因(周辺環境の変化、世界情勢)など 古典的な統計⼿法や機械学習を適⽤することで予測
  17. 17 コンソール上でのForecastの操作⼿順 1. Amazon Forecastとは 2. 時系列予測の基礎 3. コンソール上でのForecastの操作⼿順 4.

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

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

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

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

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

  23. 23 Forecast domain • RETAIL : ⼩売の需要予測 • INVENTORY_PLANNING :

    サプライチェーンと在庫の計画 • EC2 CAPACITY : Amazon EC2 キャパシティの予測 • WORK_FORCE : 従業員の計画 • WEB_TRAFFIC : 今後のウェブトラフィックの⾒積もり • METRICS : 収益およびキャッシュフローなどの予測メトリクス • CUSTOM : その他すべての時系列予測のタイプ
  24. 24 データセットの作成 • データセット名 • データの時間刻み • スキーマ定義 • 必須のスキーマ

    ⁻ item_id ⁻ timestamp ⁻ target_value • 任意のスキーマ
  25. 25 時系列データの時間刻み 選択可能な時間刻みの単位 • minutes : 分 • hour :

    時間 • day : ⽇ • week : 週 • month : ⽉ • year : 年
  26. 26 データインポート • データセットインポート名 • タイムスタンプフォーマット ⁻ yyyy-MM-dd HH:mm:ss ⁻

    yyyy-MM-dd • IAMロール(S3のRead) • インポートするデータの場所 ⁻ S3バケット上のパス
  27. 27 予測⼦の作成

  28. 28 予測⼦の作成 • 予測⼦名 • 予測範囲(期間) • 予測の時間刻み • 予測アルゴリズムの選択

    ⁻ AutoML(⾃動選択) ⁻ Manual(⼿動選択)
  29. 29 予測⼦の作成 Forecastで使⽤可能な時系列予測アルゴリズム • ARIMA : ⾃⼰回帰和分移動平均 • DeepAR+ :

    再帰型ニューラルネットワーク (RNN) を使⽤してスカ ラー (1次元) 時系列を予測するための、教師あり学習アルゴリズム • ETS : 指数平滑法 • NPTS : ノンパラメトリック時系列 • Prophet : 局所的なベイズ構造時系列モデル
  30. 30 予測⼦の作成 • Forecast dimensions • Backtest window ⁻ Number

    of windows ⁻ Offset • Advanced configutations ⁻ ハイパーパラメータ設定など
  31. 31 作成した予測⼦の確認

  32. 32 作成した予測⼦の確認

  33. 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    値が⼩さいほど良い
  34. 34 作成した予測⼦の確認 重み付けされた分位損失 (weighted Quantile Loss) 値が⼩さいほど良い

  35. 35 予測の作成

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

  37. 37 予測の可視化 27 

  38. 38 予測の可視化 27 

  39. 39 予測のエクスポート

  40. 40 予測のエクスポート • 予測エクスポート名 • 出⼒する予測結果 • IAM(S3 Write) •

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

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

    p90
  43. 43 ユースケース 1. Amazon Forecastとは 2. 時系列予測の基礎 3. コンソール上でのForecastの操作⼿順 4.

    オープンデータを使った使⽤例
  44. 44 福岡市のインフルエンザ報告数 https://ckan.open-governmentdata.org/dataset/influenza401307fukuoka

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

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

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

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

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

  50. 50 予測の可視化

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

  52. まとめ

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

  54. 54 結論 Amazon Forecast はいいぞ

  55. 55