解釈しやすい決定木と、その集合学習である強力なランダムフォレスト。
決定木って『はい/いいえ』で枝分かれするやつだよね?
そう、決定木(Decision Tree)は条件分岐の組み合わせでデータを分類・回帰する木構造のモデル。 解釈しやすいのが大きな魅力よ。
分割の基準は情報利得やジニ不純度。 各ノードで『どの特徴量・閾値で分けると最もきれいに分かれるか』を選ぶの。
ジニ不純度って何ですかぁ?
補足すると、あるノードでクラスがどれだけ混じっているかを表す指標ね。 1クラスだけなら0で、混じるほど大きくなる。 だから不純度の減少が一番大きい分割を選ぶの。
決定木って弱点もあるって聞いたんだけど?
そうなのよ、深い木にすると過学習しやすいの。 それに、訓練データのわずかな違いで木構造がガラッと変わる『不安定さ』もあるのよ。
そこで活躍するのがランダムフォレスト。 多数の決定木を作って多数決(分類)/平均(回帰)で予測するアンサンブル学習よ。
森に木を集めるイメージですねぇ♪
ランダムフォレストの工夫は大きく2つあって、(1)バギング=訓練データをランダムサンプリングすること、(2)各分割で使う特徴量もランダムに選ぶこと、なのよ。 こうすると木同士の相関が下がって、安定した強いモデルになるのね。
実務でもよく使われてるって聞くよ!
ええ、解釈性は単一の決定木より劣るけど、デフォルト設定でもよく動く実用的な手法ね。 {kw('特徴量重要度')}が出せるのも便利よ。
DS検定では『決定木の不純度』『ランダムフォレストはバギング+特徴量サンプリング』が頻出よ。
確認クイズ
ランダムフォレストの工夫として正しいのはどれか。
- 全ての訓練データで全ての特徴量を使い、深い木を1つだけ作る
- 訓練データをランダムサンプリングし、各分割で使う特徴量もランダム選択する
- 決定木の代わりにロジスティック回帰を多数組み合わせる
- 特徴量を全て削除して学習する
こたえを見る
正解: 2. 訓練データをランダムサンプリングし、各分割で使う特徴量もランダム選択する
訓練データをランダムサンプリング(バギング)し、各分割で使う特徴量もランダム選択するのがランダムフォレストの2大工夫です。 これで木同士の相関が低下し、過学習しにくく安定したモデルになります。