Python xgboost cvを理解する 質問する

Python xgboost cvを理解する 質問する

xgboost cv 関数を使用して、トレーニング データ セットに最適なパラメーターを見つけたいと思います。API についてよくわかりません。最適なパラメーターを見つけるにはどうすればよいですか? これは、sklearn クロス検証関数に似ていますか?パラメーター ([2,4,6])grid_searchのどのオプションが最適であると判断されたかをどのように見つけることができますか?max_depth

from sklearn.datasets import load_iris
import xgboost as xgb
iris = load_iris()
DTrain = xgb.DMatrix(iris.data, iris.target)
x_parameters = {"max_depth":[2,4,6]}
xgb.cv(x_parameters, DTrain)
...
Out[6]: 
   test-rmse-mean  test-rmse-std  train-rmse-mean  train-rmse-std
0        0.888435       0.059403         0.888052        0.022942
1        0.854170       0.053118         0.851958        0.017982
2        0.837200       0.046986         0.833532        0.015613
3        0.829001       0.041960         0.824270        0.014501
4        0.825132       0.038176         0.819654        0.013975
5        0.823357       0.035454         0.817363        0.013722
6        0.822580       0.033540         0.816229        0.013598
7        0.822265       0.032209         0.815667        0.013538
8        0.822158       0.031287         0.815390        0.013508
9        0.822140       0.030647         0.815252        0.013494

ベストアンサー1

xgboost sklearn APIを介してGridSearchCVをxgboostで使用できます。

分類子を次のように定義します。

from xgboost.sklearn import XGBClassifier
from sklearn.grid_search import GridSearchCV 

xgb_model = XGBClassifier(other_params)

test_params = {
 'max_depth':[4,8,12]
}

model = GridSearchCV(estimator = xgb_model,param_grid = test_params)
model.fit(train,target)
print model.best_params_

おすすめ記事