ryotan blog

興味の対象はPython、Django、Angular、Ionic、機械学習、ディープラーニング、UX、UI、CX、デザインシンキング、ティール組織、など。

【機械学習】Random Forestのハイパーパラメータチューニング

Random Forestのハイパーパラメータチューニングについて、下記記事が参考になったので概要抜粋します。 www.analyticsvidhya.com

モデルの予測パワーを上げるためのパラメータは3つ

1. max_features

  • 各ツリーで使われる特徴量の数。デフォルト値はsqrt。
  • max_featuresを増やすと各ツリーの精度は向上するが、ツリーごとの多様性が小さくなるため、必ずしも全体の性能を向上させるとは限らない。
  • max_featuresを増やすと計算時間がかかるようになる。
  • 上記より、最適なmax_featuresの値はバランスをとって考慮する必要がある。

2. n_estimators

  • ツリーの数。
  • 一般的に、ツリーの数を大きくするとパフォーマンスは向上するが、計算時間はかかる。
  • コンピュータが計算可能な可能な限りこの値を大きくすることで、予測の精度と安定性が向上する。

3. min_sample_leaf

  • "leaf"の最小値。leafとは、決定木の先端のノードのこと。
  • leafのサイズを小さくすると、トレーニングデータのノイズに敏感になる傾向がある。
  • 著者は「50以上」にすることを推奨している。また、色々なサイズで試してみるのが良いだろうとのこと。

Gradient Boostingと比較して

Gradient Boostingと比較して、Random Forestの方がチューニングするパラメータの数は少なくすみそう。 参考にした記事の内容もRandom Forestの方があっさりしていた。

チューニングなしで使うならRandom Forestもありかもしれない。 (ただし、チューニングなしでもGradient Boostingの方が性能が出ることも多そうだが。。)

参考までにGradient Boostingのパラメータチューニングに関する記事↓ rn17.hatenablog.com