Save 37% off PRO during our Black Friday Sale! »

アンサンブル学習① ランダムフォレストの仕組み

Fd6de6cbad68e7898078f548b6dd894c?s=47 K
October 23, 2021

アンサンブル学習① ランダムフォレストの仕組み

Fd6de6cbad68e7898078f548b6dd894c?s=128

K

October 23, 2021
Tweet

Transcript

  1. IUUQTXXXZPVUVCFDPNDIBOOFM6$'Z7#W;#F&C/'TY'SH RandomForest RandomForest アンサンブル1 アンサンブル1

  2. ccp_alpha コスト・複雑さによって木を枝刈りする ccp_alpha = 0 ccp_alpha = 0.4 前回までのおさらい 過学習を抑えるためのパラメータに

    どのようなものがあるか説明しました
  3. アンサンブル学習とは 複数の予測モデルを組合せて、ロバスト性やより高い性能を目指す 複数モデルの平均値・多数決を出す方針 ブースティング(Boosting) •バギング •ランダムフォレスト •ExtraTrees •Stacking •AdaBoost •GradientBoosting

    •XGBoost 複数の予測モデルの平均や多数決などを取り、 最終的な予測を行う 予測モデルの誤差に注目して 少しずつモデルを改善して行く 勾配ブースティング(Gradient Boosting)
  4. バギング(Bagging, Bootstrap AGGregatING) 訓練データの一部のみを使って作成(bootstrapping)したモデルを組合せる(aggregating) A Bagging classifier is an ensemble

    meta-estimator that fits base classifiers each on random subsets of the original dataset and then aggregate their individual predictions (either by voting or by averaging) to form a final prediction. ग़యɿsklearn.ensemble.BaggingClassifier 訓練データ全体 • • • • • • • • … • • • • • • • • • • • • 複数の小さな集まりを作る (ブートストラップ) 平均を取る 多数決を取る 最終的な 出力 重複してもいい
  5. ランダムフォレスト(RandomForest) データの一部を抽出+ランダムに特徴選択+決定木作成し、その結果をまとめる 訓練データ全体 • • • • • • •

    • … • • • • • • • • • • • • 複数の小さな集まりを作る (ブートストラップ) 平均を取る 多数決を取る 最終的な 出力 番目の特徴を 使って木を作成 1,2,4 番目の特徴を 使って木を作成 5,4,10 番目の特徴を 使って木を作成 7,5,9 } p個の特徴のうちm個の 特徴をランダムに選ぶ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ
  6. ランダムフォレスト(RandomForest) データの一部を抽出+ランダムに特徴選択+決定木作成し、その結果をまとめる 訓練データ全体 • • • • • • •

    • … • • • • • • • • • • • • 複数の小さな集まりを作る (ブートストラップ) 平均を取る 多数決を取る 最終的な 出力 番目の特徴を 使って木を作成 1,2,4 番目の特徴を 使って木を作成 5,4,10 番目の特徴を 使って木を作成 7,5,9 } ࢀߟจݙɿhttps://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassi fi er.html n_estimators max_depth bootstrap max_samples
  7. なぜランダムに特徴を選択する必要があるのか 最良の特徴を選択すると、全て似たような木になってしまうから バリアンスが大きく バイアスが小さいモデルを使いたい =決定木 木の出力の相関が高いと 平均化する意味が薄くなる =木の作成に使用する特徴を ランダムに選択 独立でなく、正の相関

    を持つB個の確率変数の平均の分散は (※引用) ρ ρσ2 + 1 − ρ B σ2 Ҿ༻ɿTrevor Hastie ɾRobert Tibshirani ɾJerome Friedman ஶ ”౷ܭతֶशͷجૅ: σʔλϚΠχϯάɾਪ࿦ɾ༧ଌ”. ڞཱग़൛, 2014. (15.1) ࣜ
  8. 実際にやってみる 20次元の特徴を持つデータの二項分類問題 ←2つの特徴だけで分類するのは難しそう

  9. アンサンブルした効果を見る 最終的に作成された木が最もROC-AUCが高いことが確認できる ROC-AUC ほとんど予測できない木も存在する すべて合わせると最もスコアが高い! 青色=ランダムフォレスト内の個別の木の性能 オレンジ色=ランダムフォレストの性能 0.5

  10. RandomForestで作成した木を可視化 異なる構造の木が複数作成されている ※RandomForestでモデル作成後、モデルに含まれる木の一部のルールを可視化しています 特徴がランダムで選ばれていることが確認できる

  11. 特徴の重要度を見る① 重要度=予測をする上でどの特徴が重要かの度合い feature importance = その特徴のデータを使うことで どれくらいジニ不純度を下げることができたかの度合い 高ければ高いほど重要な特徴! ジニ不純度については以下の動画を参考

  12. 特徴の重要度を見る② 重要度=予測をする上でどの特徴が重要かの度合い https://scikit-learn.org/stable/modules/generated/sklearn.inspection.permutation_importance.html#sklearn.inspection.permutation_importance 特定の特徴をランダムに並び替えて どれくらい性能が落ちるかをチェックする 性能が落ちる=重要な特徴

  13. https://k-datamining.github.io/dm-book/data-analysis/materials/ensemble/RandomForest.html

  14. まとめ アンサンブル手法のRandomForestについて説明しました •アンサンブルとは『複数の予測モデルを組合せて、ロバスト性やより高い性能を目指 す』手法の総称 •アンサンブルする方針として、複数のモデルの平均や多数決を出す方法と、予測の失 敗に注目してモデルを改善する方法がある •ブートストラップとはデータの一部を抽出すること •RandomForest=ブートストラップ+ランダムに特徴を選んで木を作成 •個別の木は精度があまり高くないが、全体として精度が高いモデルが作成される

  15. 参考文献 •Post pruning decision trees with cost complexity pruning •sklearn.tree.DecisionTreeRegressor

    •1.11. Ensemble methods •Random Forests Leo Breiman and Adele Cutler •Trevor Hastie ・Robert Tibshirani ・Jerome Friedman 著・杉山 将・井手 剛・ 神嶌 敏弘・栗田 多喜夫・前田 英作監訳・井尻 善久・井手 剛・岩田 具治・金森 敬 文・兼村 厚範・烏山 昌幸・河原 吉伸・木村 昭悟・小西 嘉典・酒井 智弥・鈴木 大 慈・竹内 一郎・玉木 徹・出口 大輔・冨岡 亮太・波部 斉・前田 新一・持橋 大地・山 田 誠訳 ”統計的学習の基礎: データマイニング・推論・予測”. 共立出版, 2014.