stMind

about Tech, Computer vision and Machine learning

"Random Forest in Python"の紹介

Random Forestが短くまとめられたサイトを、備忘録を兼ねて紹介。

Random Forests in Python

  • What is a Random Forest?
    • アンサンブル学習に属する手法
    • アンサンブル学習
      • 複数のモデルの組み合わせで一つの予測問題を解く
      • 独立に学習と予測を行う識別器/モデルを複数生成
      • どの識別器の予測よりも良い、もしくはより良い一つの予測に結合される
      • Random ForestはDecision Tree(決定木)のアンサンブル→アンサンブル学習の一種
    • Randomized Decision Trees
      • Random Forestは分類や回帰を行うツリーの集合体
      • 決定木はデータセットを観測、分類するのに使う一連の条件で構成される
    • Random Forest
      • Random Forestの学習で自動的に複数の決定木が作られる
      • 木はランダムに生成されるので、一つ一つの決定木の分類精度は低い
    • Arboreal Voting
      • では、1万個のダメなモデルの何が良いのか
      • ダメなモデルと一緒に生成される少数の本当に良い決定木が有用
      • 新しい予測を行う時、観測データが木を辿って予測値/ラベルが割り当てられる *それぞれの木の予測値/ラベルが記録、集計されて、全ての木の最頻値が最終結果として返される
      • 少数の木の予測がノイズに強い良い予測をもたらしてくれる
    • Why you should I use it?
      • It's Easy
        • SVMのような大幅なチューニングは不要
      • Uses
        • Variable selection
          • 最も良いユースケースの一つが特徴選択
          • ツリーがある特徴を含む/含まない場合で損失や利得を比較
        • Classification
        • Regression(回帰)
          • もちろん回帰にも使える
    • Python Short Example
preds       setosa  versicolor  virginica  
actual                                    
setosa          15           0          0  
versicolor       0          15          1  
virginica        0           1         13  

まとめ

Yhat inc.というStartup?のブログ記事の紹介でした。
他にも面白そうなエントリーがあったので、別の機会にまた読んでまとめてみます。