xgboostとgbmのパラメータ対応一覧をつくる
GBM(GBDT)は便利だ。randomforestに比べると速いし、性能も高い。
で、たまたまこちらの記事を読んでいたら、どうも自分が知っているgbmパッケージとパラメータ名が違う。
とりあえず移植にあたって調べたけど絶対に忘れるので、xgboostパッケージとgbmパッケージのパラメータ対応を以下にメモしておく。
なお、初期値が違ったりするので注意。
n.minobsinnodeについては、おそらく、といったレベルなのでこれも注意。
gbm | xgboost |
---|---|
n.trees | nrounds |
interaction.depth | max.depth |
bag.fraction | subsample |
distribution | objective |
n.cores | nthread |
n.minobsinnode | min_child_weight? |
xgboostパッケージのパラメータ一覧はここから。
https://github.com/tqchen/xgboost/wiki/Parameters
gbmとxgboostの比較コード
https://github.com/tqchen/xgboost/issues/104
xgboostについて
xgboostはkaggleで最近流行ったらしい。
kaggleで使われるモデルも流行り廃りがあり、自分が把握している範囲ではGBM→blending→深層学習という流れがあったように思う。
kaggleは膝に矢を受けてから完全に引退していたので全く流行を確認できていなかったのだが、xgboostについてはHiggs-Bosonコンテストで成功を収めてから流行っているぽい。
なお、xgboostはC++で書かれており、PythonとJuliaとRから使える。
参考情報を以下にまとめておく。ご参考まで。
kaggleのフォーラムでは、xgboostの実装がgbmパッケージやscikit-learnのsklearn.ensemble.GradientBoostingClassifierとずいぶん違うんじゃないかという点について議論されている。
https://www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-survey
Juliaのxgboost
https://github.com/antinucleon/XGBoost.jl
Rからの使用例
https://github.com/tqchen/xgboost/blob/master/demo/kaggle-higgs/higgs-train.R#L17
graphlabからの使用例
http://blog.dato.com/using-gradient-boosted-trees-to-predict-bike-sharing-demand