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_