参考サイト:
- Python: LightGBM を使ってみる
- Trying to do k-fold CV on LightGBM
- Python: XGBoost を使ってみる
- Regression Example with XGBRegressor in Python
- How to Evaluate Gradient Boosting Models with XGBoost in Python
lightGBMの交差検証
lightGBMのcvメソッドで交差検証が可能。n_foldで分割数を指定する。
結果は、ブートラウンドごとのスコアを出力し、最大スコアが出たラウンドで終了するので、全出力数を数えると、汎化性能を最大にするブートラウンド数がわかる。
コード例)kaggle Hose Price predict : lightgbmを用いて、RMSEで交差検証
結果:
ブートラウンド数が100を過ぎた当たりから、RMSEスコアがあまり減少しなくなり、400過ぎたあたりで、全く下がらなくなっている。計算コストを上げたいなら、ブートラウンド数を100ちょっとにしても、耐えられるかもしれない・・・。
XGBoostの交差検証
lightGBMと同じように、cvメソッドで交差検証が可能だが、使い勝手が悪いとのことで、sklearnのKFoldやcross_val_scoreを使う方法を進めるサイトが多い。
例)kaggle Hose Price predict : sklearnのKFoldとcross_val_scoreで交差検証
0コメント