【機械学習】Gradient Boostingのハイパーパラメータチューニング
以下サイトにて、GradientBoostingのハイパーパラメータのチューニング方法が掲載されていましたので、下記に整理しました。 www.analyticsvidhya.com
ハイパーパラメータは3種類
- 木固有のパラメータ(Tree-Specific Parameters)
- モデルの各々の木に影響を与えるパラメータ
- ブースティングパラメータ(Boosting Parameters)
- モデルのブースティングオペレーションい影響を与えるパラメータ
- その他のパラメータ(Miscellaneous Parameters)
- その他のパラメータ
木固有のパラメータ
ブースティングパラメータ
- learning_rate
- n_estimators
- subsample
その他のパラメータ
- loss
- init
- random_state
- verbose
- warm_start
- presort
ハイパーパラメータのチューニング方法
まずは大きめのlearning_rate(0.05-0.2)と小さめのn_estimators(40-70)で始め、木固有のパラメータを調整し、learning_rateを小さく(n_estimatorsを比例的に大きく)する、という流れ。
- 比較的大きなlearning_rateを設定。デフォルトは0.1だが、0.05から0.2でも上手くいくことがある。
- 木の数を最適化する。高速に保つために40〜70程度にしておく。
- 木固有パラメータを調整する。
- 比例的にlearning rateを小さく、木の数を大きくして、ロバストなモデルを得る。(learning_rateを2分の1にしたら、木の数を2倍にする)
本文の例では、まず1でlearning_rate=0.1、2でn_estimators=60に設定してから3で木固有パラメータを調整。 4でlearning_rateを20分の1の0.005n_estimatorsを20倍の1,200(パフォーマンスの問題で、最終的には1,500)にしている。n_estimatorsの調整など、最終的に良いパフォーマンスが出るまで試行錯誤するというイメージなのだろう。