決定木アルゴリズムまとめ

これまで取り扱ってきた決定木アルゴリズムをまとめます。

決定木

木構造(樹形図)を用いて予測を行う手法です。

  • 単純な樹形図のため、モデルの解釈がしやすい。
  • 木の深さや最小サンプル数の調整で、ある程度は緩和できるものの過学習に陥るリスクが高い。

ランダムフォレスト

アンサンブル手法を用いた手法です。決定木を複数生成し学習を行います。

各決定木を並列に扱い、それぞれの結果の平均値をとります。

  • それぞれの決定木の結果の平均をとることで、予測精度は保ちつつ、過剰適合を抑制できる。
  • 決定木を複数使用するため、通常の決定木よりも計算コストが高く、またモデルが複雑になり解釈が難しくなる。

勾配ブースティング決定木(XgBoost)

アンサンブル法を用いた手法です。決定木を複数生成し学習を行います。

1つ前の決定木の誤りを修正して、次の決定木を生成します。。

  • 高い精度が出やすく、人気のある手法。
  • パラメータ設定の影響を受けやすいため、パラメータ調整には注意が必要。

パラメータチューニング手法に関してもまとめます。

グリッドサーチ

あらかじめ指定したパラメータの候補値の全通りの組み合わせを検証し、最も精度が高いパラメータの組み合わせを調べる手法です。

  • 指定したパラメータの範囲では、最もスコアが高い組み合わせを確実に得ることができる。
  • パラメータの全組み合わせ × 交差検証の分割数だけ学習・評価が行われるので、計算コストが高い。

ランダムサーチ

あらかじめ指定したパラメータの候補値のランダムな組み合わせ指定した回数だけ検証し、その中でも最も精度が高いパラメータの組み合わせを調べる手法です。

  • グリッドサーチよりも計算量が少なくて済む。
  • 最適な組み合わせが確実に得られるわけではない。

ベイズ最適化

グリッドサーチとランダムサーチの間をとったベイズ最適化という手法もあります。

ベイズ最適化はscikit-learnBayesSearchCVというクラスを使って実行できます。