$30 off During Our Annual Pro Sale. View Details »

実践 時系列解析 輪読会#5

実践 時系列解析 輪読会#5

https://reading-circle-beginners.connpass.com/event/234032/

オライリーから出版された「実践 時系列解析」の輪読会資料です。
8章の内容の簡単な解説をしています。

輪読会でまとめているリポジトリはこちら。
https://github.com/tok41/note_oreilly_time_seriese_analysis

Yoichi Tokita

December 22, 2021
Tweet

More Decks by Yoichi Tokita

Other Decks in Programming

Transcript

  1. 「実践 時系列解析」 輪読会#5 2021/12/23 @yoichi_t

  2. ⾃⼰紹介 • tokita(@yoichi_t) • 所属:株式会社Glia Computing (https://www.glia-computing.com/) • 2018年8⽉に設⽴(Co-Founder) •

    機械学習/データ分析のPoC、導⼊⽀援、コンサル • 過去 • 広告会社で推薦システムの開発をやっていたり、警備会社で⼈物⾏動 の研究をしてました
  3. ⾃⼰紹介 • tokita(@yoichi_t) • チョコボールの秘密を解明するために、⽇々データを収集&解析 チョコボール 統計

  4. 8章「特徴量の⽣成と選択」の構成 • 8.1: 簡単な例 • 短い時系列データ(toy sample)を使って「時系列の特徴量⽣成」の 事例 • 8.2:

    特徴量の計算で⼀般に考慮すべきこと • 「時系列」としての特性 • 8.3: インスピレーションを得るための特徴量が⾒つかる場所の カタログ • 特徴量⽣成のためのPythonとRのライブラリ紹介 • 8.4: ⽣成した特徴から選ぶ⽅法 • 特徴量選択の具体例(上記ライブラリのチュートリアル)
  5. 前提 • 6,7章と9(,10)章では前提となる考え⽅が異なる • いわゆる「統計的な⼿法」と「機械学習」の違い • (個⼈的にこの表現は好きではない)

  6. 前提 • 「統計モデル」(6,7章) • ⽣成モデル的アプローチ • 系の挙動についてモデル(仮 説)を⽴て、仮説に基づいてモ デルを推定し、活⽤する •

    「機械学習」( 9(,10)章) • 識別モデル的アプローチ • 識別関数の獲得 • 系の挙動について仮説を持たな ず、⼊⼒データから「注⽬する 結果」を予測する 44 1. INTRODUCTION p(x|C1 ) p(x|C2 ) x class densities 0 0.2 0.4 0.6 0.8 1 0 1 2 3 4 5 x p(C1 |x) p(C2 |x) 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 1.2 Bishop, PRML, p.44(sec1) https://www.microsoft.com/en- us/research/uploads/prod/2006/01/Bishop-Pattern-Recognition- and-Machine-Learning-2006.pdf
  7. 前提 • 6,7章と9(,10)章では前提となる考え⽅が異なる • いわゆる「統計的な⼿法」と「機械学習」の違い • (個⼈的にこの表現は好きではない) • 8章では、系列データを何らかの情報に圧縮した表現を考える •

    9章のための準備(だけじゃないとは思うけど) x! = 𝑥"! , 𝑥#! , ⋯ , 𝑥$! % 𝑥!" :i番⽬の系列データのk番⽬の特徴量(平均など) 定常過程(6章) μ 観測=状態𝑠# +ノイズε 状態空間モデル(7章) 観測データ(時系列) 系列データの特徴量化(8章)
  8. 8.1 簡単な例 • notebook • https://github.com/tok41/note_oreilly_time_seriese_analysis

  9. 8.2 特徴量の計算で⼀般に考慮すべきこ と • 背景知識を使って、その分析に『意味があるのか』を考える • 何が関係してると考えるのか?何を予測したいのか?仮説を持つべき • e.g. 意味のある周期(純粋なノイズは予測できない)

    • 仮説に基づいて役に⽴つ特徴量を設計する • 無駄に多くの量を作っても過剰適合を招くだけ (最近は正則化で緩和されると⾔われている。深層学習とか。) • 定常性 • 多くの特徴量では「定常過程」または「エルゴード性」を前提にしている (?) • 時系列の⻑さ • 扱う時系列の⻑さは⼤きく変わらないことが望ましい • 特徴量によっては系列が⻑いと不安定になる • これを⾒越した特徴量の設計が必要
  10. 8.4 ⽣成した特徴量から選ぶ⽅法 • tsfreshなどのパッケージを利⽤することで⼀般に使われる特徴 量を⼤量に⽣成できる(8.3) • 特徴量⽣成ライブラリの濫⽤は避けましょう(9章) • 有効な特徴量を選別しておくことが有効 •

    過剰適合、可読性/説明性 • → FRESHアルゴリズム、RFE(再帰的特徴量削減)
  11. 8.4 ⽣成した特徴量から選ぶ⽅法 • FRESHアルゴリズム • ⼊⼒特徴量毎に、⽬標変数に対する有意性を検定して選別する • 検定には、ベンジャミン-イェクティエリの⼿順により特徴量毎のp値 をまとめて評価する •

    tsfreshパッケージ(python)で実装されている • RFE • 全ての特徴量の中から重要度が低い特徴量を順々に削除していく • 特徴量の重要順を計算できる • sklearn.feature_selection.RFE (python)で実装されている
  12. 8.4 ⽣成した特徴量から選ぶ⽅法 • 詳細はnotebook • https://github.com/tok41/note_oreilly_time_seriese_analysis • tsfreshのexample • https://tsfresh.readthedocs.io/en/v0.3.0/text/quick_start.html#quick-start-

    label • sklearn.feature_selection.RFEのドキュメント参照 • https://scikit- learn.org/stable/modules/generated/sklearn.feature_selection.RFE.html
  13. まとめ • 6,7章と8章以降は前提が異なる • 時系列データの特徴量は、系列データを圧縮したもの • 背景知識を活⽤して、意味のある特徴量を設計する • ⼀般に使われる特徴量の⽣成と不要な特徴量の削減をするため のパッケージもある

    • ご利⽤は計画的に