J'ai un jeu de données cible que je divise en 5 plis qui ne se chevauchent pas. A chaque itération (itérations totales == 5) j'utilise 1 fois (appelons-le fold_for_tuning
) pour faire le réglage des paramètres, et j'utilise 4 fois pour tester.Les paramètres de GridSearchCV n'améliorent pas la classification
La raison de ceci est que je veux faire l'adaptation de domaine, et avant l'accord, j'ajuste les données de source au classificateur, et j'accorde en utilisant le petit sous-ensemble de données de cible).
J'appelle GridSearchCV et en forme fold_for_tuning
, et aussi je passe un tas de paramètres que je veux régler:
param_test1 = {
'max_depth': [5, 7],
'min_child_weight': [0.5, 1, 2],
'gamma': [0.1, 1],
'subsample': [0.6, 0.7],
'colsample_bytree': [0.6, 0.7],
'reg_alpha': [0.01, 0.1]
}
gsearch = GridSearchCV(estimator=classifierXGB,
param_grid=param_test1,
scoring='accuracy',
n_jobs=4, iid=False, cv=2)
gsearch.fit(fold_for_tuning_data, fold_for_tuning_labels)
Après chaque itération, je reçois gsearch.best_params_
, et je les ai mis en classifierXGB
(parce qu'ils devraient donner une meilleure prédiction, à ma connaissance). Puis, quand je l'appelle test_y_predicted = classifierXGB.predict(4_unseen_folds)
je reçois pas d'amélioration:
prediction before tuning:
acc: 0.690658872245
auc: 0.700764301397
f1: 0.679211922203
prediction after tuning:
acc: 0.691382460414
auc: 0.701595887248
f1: 0.680132554837
Mais si je l'appellegsearch.predict(4_unseen_folds)
Je reçois bien meilleure performance:
prediction grid search :
acc: 0.933313032887
auc: 0.930058979926
f1: 0.920623414281
Je suis confus: que se passe-t-il dans la recherche de grille? Ne devrait-il pas optimiser seulement les paramètres que je passe en param_grid
? Si oui, alors pourquoi définir les mêmes paramètres dans classifierXGB
ne se traduit pas par de meilleures performances?
Comment appelez-vous 'itération'? Ce n'est pas clair – MMF
Pouvez-vous montrer un [MWE] (http://stackoverflow.com/help/mcve) incluant ce que vous faites après 'gsearch.fit' s'il vous plait? – ncfirth