multiclasse en xgboost (python)
Je ne peux pas comprendre comment passer le nombre de classes ou eval métrique de xgb.XGBClassifier avec le but de la fonction "multi:softmax'.
J'ai regardé beaucoup de documentation, mais les ne parle que de sklearn wrapper qui accepte n_class/num_class.
Mon installation actuelle ressemble
kf = cross_validation.KFold(y_data.shape[0], \
n_folds=10, shuffle=True, random_state=30)
err = [] # to hold cross val errors
# xgb instance
xgb_model = xgb.XGBClassifier(n_estimators=_params['n_estimators'], \
max_depth=params['max_depth'], learning_rate=_params['learning_rate'], \
min_child_weight=_params['min_child_weight'], \
subsample=_params['subsample'], \
colsample_bytree=_params['colsample_bytree'], \
objective='multi:softmax', nthread=4)
# cv
for train_index, test_index in kf:
xgb_model.fit(x_data[train_index], y_data[train_index], eval_metric='mlogloss')
predictions = xgb_model.predict(x_data[test_index])
actuals = y_data[test_index]
err.append(metrics.accuracy_score(actuals, predictions))
OriginalL'auteur user3804483 | 2016-09-08
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de
num_class
dans le scikit-learn API pour XGBoost de classification. C'est fait automatiquement lors de lafit
est appelé. Regardez xgboost/sklearn.py au début de lafit
méthode deXGBClassifier
:OriginalL'auteur Adrien Renaud