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

実践 時系列解析 輪読会#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

    View full-size slide

  2. ⾃⼰紹介
    • tokita(@yoichi_t)
    • 所属:株式会社Glia Computing
    (https://www.glia-computing.com/)
    • 2018年8⽉に設⽴(Co-Founder)
    • 機械学習/データ分析のPoC、導⼊⽀援、コンサル
    • 過去
    • 広告会社で推薦システムの開発をやっていたり、警備会社で⼈物⾏動
    の研究をしてました

    View full-size slide

  3. ⾃⼰紹介
    • tokita(@yoichi_t)
    • チョコボールの秘密を解明するために、⽇々データを収集&解析
    チョコボール 統計

    View full-size slide

  4. 8章「特徴量の⽣成と選択」の構成
    • 8.1: 簡単な例
    • 短い時系列データ(toy sample)を使って「時系列の特徴量⽣成」の
    事例
    • 8.2: 特徴量の計算で⼀般に考慮すべきこと
    • 「時系列」としての特性
    • 8.3: インスピレーションを得るための特徴量が⾒つかる場所の
    カタログ
    • 特徴量⽣成のためのPythonとRのライブラリ紹介
    • 8.4: ⽣成した特徴から選ぶ⽅法
    • 特徴量選択の具体例(上記ライブラリのチュートリアル)

    View full-size slide

  5. 前提
    • 6,7章と9(,10)章では前提となる考え⽅が異なる
    • いわゆる「統計的な⼿法」と「機械学習」の違い
    • (個⼈的にこの表現は好きではない)

    View full-size slide

  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

    View full-size slide

  7. 前提
    • 6,7章と9(,10)章では前提となる考え⽅が異なる
    • いわゆる「統計的な⼿法」と「機械学習」の違い
    • (個⼈的にこの表現は好きではない)
    • 8章では、系列データを何らかの情報に圧縮した表現を考える
    • 9章のための準備(だけじゃないとは思うけど)
    x!
    = 𝑥"!
    , 𝑥#!
    , ⋯ , 𝑥$!
    %
    𝑥!"
    :i番⽬の系列データのk番⽬の特徴量(平均など)
    定常過程(6章)
    μ
    観測=状態𝑠#
    +ノイズε
    状態空間モデル(7章)
    観測データ(時系列)
    系列データの特徴量化(8章)

    View full-size slide

  8. 8.1 簡単な例
    • notebook
    • https://github.com/tok41/note_oreilly_time_seriese_analysis

    View full-size slide

  9. 8.2 特徴量の計算で⼀般に考慮すべきこ

    • 背景知識を使って、その分析に『意味があるのか』を考える
    • 何が関係してると考えるのか?何を予測したいのか?仮説を持つべき
    • e.g. 意味のある周期(純粋なノイズは予測できない)
    • 仮説に基づいて役に⽴つ特徴量を設計する
    • 無駄に多くの量を作っても過剰適合を招くだけ
    (最近は正則化で緩和されると⾔われている。深層学習とか。)
    • 定常性
    • 多くの特徴量では「定常過程」または「エルゴード性」を前提にしている
    (?)
    • 時系列の⻑さ
    • 扱う時系列の⻑さは⼤きく変わらないことが望ましい
    • 特徴量によっては系列が⻑いと不安定になる
    • これを⾒越した特徴量の設計が必要

    View full-size slide

  10. 8.4 ⽣成した特徴量から選ぶ⽅法
    • tsfreshなどのパッケージを利⽤することで⼀般に使われる特徴
    量を⼤量に⽣成できる(8.3)
    • 特徴量⽣成ライブラリの濫⽤は避けましょう(9章)
    • 有効な特徴量を選別しておくことが有効
    • 過剰適合、可読性/説明性
    • → FRESHアルゴリズム、RFE(再帰的特徴量削減)

    View full-size slide

  11. 8.4 ⽣成した特徴量から選ぶ⽅法
    • FRESHアルゴリズム
    • ⼊⼒特徴量毎に、⽬標変数に対する有意性を検定して選別する
    • 検定には、ベンジャミン-イェクティエリの⼿順により特徴量毎のp値
    をまとめて評価する
    • tsfreshパッケージ(python)で実装されている
    • RFE
    • 全ての特徴量の中から重要度が低い特徴量を順々に削除していく
    • 特徴量の重要順を計算できる
    • sklearn.feature_selection.RFE (python)で実装されている

    View full-size slide

  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

    View full-size slide

  13. まとめ
    • 6,7章と8章以降は前提が異なる
    • 時系列データの特徴量は、系列データを圧縮したもの
    • 背景知識を活⽤して、意味のある特徴量を設計する
    • ⼀般に使われる特徴量の⽣成と不要な特徴量の削減をするため
    のパッケージもある
    • ご利⽤は計画的に

    View full-size slide