Validation croisée
Enstatistiqueset enapprentissage automatique,lavalidation croisée[1](«cross-validation»en anglais) est une méthode d’estimation de fiabilité d’un modèle fondée sur une technique d’échantillonnage.
Motivation
[modifier|modifier le code]Considérons unmodèle statistiqueavec un ou plusieurs paramètres inconnus, et un ensemble de données d'apprentissage sur lequel on peut apprendre (ou « entraîner ») le modèle. Le processus d'apprentissage optimise les paramètres du modèle afin que celui-ci corresponde le mieux possible aux données d'apprentissage. Si on prend ensuite un échantillon de validation indépendant, supposément issu de la même population que l'échantillon d'apprentissage, il s'avérera en général que le modèle ne modélise pas aussi bien les données de validation que les données d'apprentissage: on parle desurapprentissage.Néanmoins, un échantillon de validation indépendant n'est pas toujours disponible. De plus, d'un échantillon de validation à un autre, la performance de validation du modèle peut varier. La validation croisée permet de tirer plusieurs ensembles de validation d'une mêmebase de donnéeset ainsi d'obtenir une estimation plus robuste, avec biais etvariance,de la performance de validation du modèle.
Techniques de validation
[modifier|modifier le code]Il existe de nombreuses variantes de validation mais on peut distinguer les trois suivantes dans un premier temps.
Validation non-croisée
[modifier|modifier le code]Pour la validation non-croisée,«test set validation»ou«holdout method»,on divise l'échantillon de tailleen deux sous-échantillons, le premier dit d'apprentissage (communément supérieur à 60 % de l'échantillon) et le second dit de validation ou de test. Le modèle est bâti sur le sous-échantillon d'apprentissage. Il est validé sur le sous-échantillon de test avec un score de performance de notre choix.
Validation croisée à k blocs
[modifier|modifier le code]![](https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/KfoldCV.gif/350px-KfoldCV.gif)
Pour la validation croisée àblocs,«k-fold cross-validation»,on divise l'échantillon original enéchantillons (ou « blocs »), puis on sélectionne un deséchantillons commeensemble de validationpendant que lesautres échantillons constituent l'ensemble d'apprentissage.Après apprentissage, on peut calculer une performance de validation. Puis on répète l'opération en sélectionnant un autre échantillon de validation parmi les blocs prédéfinis. À l'issue de la procédure nous obtenons ainsiscores de performances, un par bloc. La moyenne et l'écart type desscores de performances peuvent être calculés pour estimer le biais et la variance de la performance de validation.
k | bloc 1 | bloc 2 | bloc 3 |
---|---|---|---|
1 | validation | apprentissage | apprentissage |
2 | apprentissage | validation | apprentissage |
3 | apprentissage | apprentissage | validation |
Validation croisée d'un contre tous
[modifier|modifier le code]![](https://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/LOOCV.gif/300px-LOOCV.gif)
La validation croisée d'un contre tous,«leave-one-out cross-validation»(LOOCV) est le cas particulier de la validation croisée àblocs avec.C'est-à-dire qu'à chaqueitérationd'apprentissage-validation, l'apprentissage se fait surobservations et la validation sur l'unique observation restante[2].
Après avoir réalisé la validation du modèle, il faut alors passer au test avec le jeu de test précédemment mis de côté.
Gestion des bases de données non-équilibrées
[modifier|modifier le code]Dans les tâches declassification,la répartition des classes dans la base de données peut être déséquilibrée, c'est-à-dire que le nombre d'observations par classe peut ne pas être le même d'une classe à l'autre: si l'on dénotele nombre d'observations de la-ème classe, alors il existetel que.Dans ce cas, pour éviter que la performance de validation (et d'apprentissage) ne soit biaisée par une répartition changeante des classes d'un ensemble de validation (resp. d'apprentissage) à un autre, il est recommandé d'utiliser une validation croisée stratifiée(« stratified cross validation »).La stratification consiste à s'assurer que la répartition des classes soit la même dans tous les ensembles d'apprentissage et de validation utilisés. C'est-à-dire que si la base de données initiale présente, par exemple, 3 observations de la classe 1 pour 7 observations de la classe 2, alors chaque ensemble de validation (resp. d'apprentissage) devra présenter ce ratio de 3 pour 7.
Dans le cas de la validation croisée àblocs, il s'agit simplement de répartir les classes de la même manière d'un bloc à un autre. Les ensembles de validation et d'apprentissage qui en dériveront hériteront de cette répartition.
Voir aussi
[modifier|modifier le code]Liens internes
[modifier|modifier le code]Références
[modifier|modifier le code]- Payam Refaeilzadeh, Lei Tang, Huan Liu,«Cross-Validation»(Archive.org•Wikiwix•Archive.is•Google•Que faire?)(consulté le)
- Andrew W. Moore,Cross-validation for detecting and preventing overfitting