Utilisation de la validation croisée imbriquée

14

La page de Scikit Learn sur la sélection de modèles mentionne l'utilisation de la validation croisée imbriquée:

>>> clf = GridSearchCV(estimator=svc, param_grid=dict(gamma=gammas),
  ...                    n_jobs=-1)  
>>> cross_validation.cross_val_score(clf, X_digits, y_digits)

Deux boucles de validation croisée sont effectuées en parallèle: l'une par l'estimateur GridSearchCV pour définir le gamma et l'autre par cross_val_score pour mesurer les performances de prédiction de l'estimateur. Les scores résultants sont des estimations non biaisées du score de prédiction sur les nouvelles données.

D'après ce que je comprends, clf.fit utilisera la validation croisée en mode natif pour déterminer le meilleur gamma. Dans ce cas, pourquoi aurions-nous besoin d'utiliser un cv imbriqué comme indiqué ci-dessus? La note mentionne que le cv imbriqué produit des "estimations non biaisées" du score de prédiction. N'est-ce pas aussi le cas avec clf.fit?

De plus, je n'ai pas pu obtenir les meilleures estimations de la clf à partir de la cross_validation.cross_val_score(clf, X_digits, y_digits)procédure. Pourriez-vous nous dire comment cela peut être fait?

xbsd
la source

Réponses:

18

La validation croisée imbriquée est utilisée pour éviter des estimations de performance biaisées de manière optimiste qui résultent de l'utilisation de la même validation croisée pour définir les valeurs des hyper-paramètres du modèle (par exemple, le paramètre de régularisation, Cet paramètres du noyau d'un SVM) et estimation des performances. J'ai écrit un article sur ce sujet après avoir été plutôt alarmé par l'ampleur du biais introduit par un raccourci apparemment bénin souvent utilisé dans l'évaluation des machines à noyau. J'ai étudié ce sujet afin de découvrir pourquoi mes résultats étaient pires que ceux d'autres groupes de recherche utilisant des méthodes similaires sur les mêmes ensembles de données, la raison en est que j'utilisais la validation croisée imbriquée et que je n'ai donc pas bénéficié du biais optimiste.

GC Cawley et NLC Talbot, Sur-ajustement dans la sélection des modèles et biais de sélection subséquent dans l'évaluation des performances, Journal of Machine Learning Research, 2010. Research, vol. 11, pp. 2079-2107, juillet 2010. ( http://jmlr.org/papers/volume11/cawley10a/cawley10a.pdf )

Les raisons du biais avec des exemples illustratifs et une évaluation expérimentale peuvent être trouvées dans l'article, mais l'essentiel est que si le critère d'évaluation de la performance est utilisé de quelque manière que ce soit pour faire des choix concernant le modèle, ces choix sont basés sur (i) de véritables améliorations des performances de généralisation et (ii) des particularités statistiques de l'échantillon particulier de données sur lequel le critère d'évaluation des performances est évalué. En d'autres termes, le biais survient parce qu'il est possible (trop facile) de sur-ajuster l'erreur de validation croisée lors du réglage des hyper-paramètres.

Dikran Marsupial
la source
5

Avec un ensemble de tests retenu, clf.fitproduit une estimation sans biais tandis que la validation croisée imbriquée avec cross_val_scoreproduit plusieurs estimations sans biais. L'avantage de la validation croisée imbriquée est une meilleure évaluation des performances réelles à l'aide de données que l'algorithme n'a pas encore vues. Meilleure évaluation car vous obtenez, par exemple, trois scores de test avec un cv imbriqué au lieu d'un seul.

La réponse à votre deuxième question concernant les meilleures estimations est qu'il n'est actuellement pas possible (v0.14) d'obtenir les paramètres des modèles ajustés à l'aide de cv imbriqué cross_val_score. Voir ma réponse ici avec un exemple.

glisser
la source