Validation croisée
La validation croisée[1] (« cross-validation ») est, en apprentissage automatique, une méthode d’estimation de fiabilité d’un modèle fondée sur une technique d’échantillonnage.
Pour les articles homonymes, voir Validation (homonymie).
Utilité de la validation croisée
Supposons posséder un modèle statistique avec 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 de surapprentissage. 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ême base de données et ainsi d'obtenir une estimation plus robuste, avec biais et variance, de la performance de validation du modèle.
Techniques de validation
Il existe de nombreuses variantes de validation mais on peut distinguer dans un premier temps :
- La validation non-croisée, « testset validation » ou « holdout method » : on divise l'échantillon de taille en 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 l'échantillon d'apprentissage et validé sur l'échantillon de test avec un score de performance de notre choix.
- 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 comme ensemble de validation pendant que les autres é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 ainsi scores de performances, un par bloc. La moyenne et l'écart type des scores 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 |
- La validation croisée d'un contre tous, « leave-one-out cross-validation » (LOOCV) : il s'agit d'un cas particulier de la validation croisée à blocs où . C'est-à-dire qu'à chaque itération d'apprentissage-validation, l'apprentissage se fait sur observations 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
Dans les tâches de classification, 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énote le nombre d'observations de la -ème classe, alors il existe tel 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
Liens internes
Références
- 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
- Portail de l’informatique
- Portail des probabilités et de la statistique
- Portail de l'informatique théorique