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?
- Python Short Example
- Scikit-Learnを使ったサンプル
- irisデータセットを用いた分類
- ソースコードはhttps://gist.github.com/glamp/5717321
- 動かしてみた結果
- 行単位でsetosa, versicolor, virginicaをsetosa / versicolor / virginicaと予測した数と表示
preds setosa versicolor virginica actual setosa 15 0 0 versicolor 0 15 1 virginica 0 1 13
まとめ
Yhat inc.というStartup?のブログ記事の紹介でした。
他にも面白そうなエントリーがあったので、別の機会にまた読んでまとめてみます。