最近、流行のxgboost
kaggle で
Description - Otto Group Product Classification Challenge | Kaggle
に参加していますが、こちらのフォーラムで
というタイトルのものがありました。xgboost についてはこちらが参考になると思います。
ブースティング決定木の概念:
http://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf
概念と使い方: Gradient Boosting Decision Treeでの特徴選択 in R | 分析のおはなし。
変数のこと: xgboostとgbmのパラメータ対応一覧をつくる - 盆栽日記
実際の使い方は本家の
を見るのが良いかなと思います。
xgboost は CRAN のサイトから消えてしまったため、 windowsでは (自分がwindows 環境なので)、Rtools よりRtools31をインストールしてから、R のコンソールから
devtools::install_github('dmlc/xgboost',subdir='R-package')
をすれば、xgboost のパッケージをインストールできました。
(2015/08/07 追記) 2015/08/02 の更新で、CRAN に復帰したため、
install.packages("xgboost")
で、インストールできます。
変数の説明は
Parameters · dmlc/xgboost Wiki · GitHub
が参考になります。gbm と xgboost の変数対応表を先ほどのサイトなどを参考にしてもう少し書き足してみます。[=default値] としています。
gbm | xgboost | 備考(使用用途など) |
---|---|---|
n.trees[=100] | nrounds | |
interaction.depth[=1] | max_depth[=6] | |
bag.fraction[=0.5] | subsample[=1] | 過学習の抑制 |
distribution | objective | rmse など |
n.cores | nthread | どちらも使用可能なスレッドの最大数がデフォルト |
n.minobsinnode[=10] | min_child_weight[=1] |
gamma も関与? |
shrinkage[=0.001] | eta[=0.3] |
再現性を確保したい場合には、固定シード値推奨です。(set.seed(0) など)
変数の調整は、gbm と似たような感じになると思いながら奮闘しています。
追記:ハイパーパラメータの調整には、グリッドサーチや手動での探索よりも、ランダムサーチの方が良いらしいです。
http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf
ちなみに、scikit-learn ではこれが実装されています。
sklearn.grid_search.RandomizedSearchCV — scikit-learn 0.16.0 documentation
RandomForest でグリッドサーチとランダムサーチを比較したものがありました。
自分は最近 python を勉強し始めたところなのでまだ試していませんが、どこかで1 度試してみたいと思います。
追記(7/11):python でのインストール方法
自分はWindows user のため、python はWinPython (32bit)を使用しています。そのためWinPython 上での環境構築を紹介します。
git clone https://github.com/dmlc/xgboost/
とします。
(2) ビルド
windows でなければ、bash build.sh (もしくは make build.sh) で環境構築できるみたいです。WinPython では、
xgboost/windows/ にあるxgboost. sln をVisualStudio Express 2010 でRelease モードでリビルドします。このとき、openmp を有効化すると並列処理に対応します。
(WinPython (64bit) では、Visual Studio Community 2013 でRelease モード、x64 でビルドすればOK です。)
(3) インストール
xgboost/wrapper (追記2015/08/07:最新版(ver 0.4)では xgboost/python-package )にディレクトリを移動して、
python setup.py install
とすれば、インストール完了です。
import xgboost
としてインポートの確認ができます。