Qu'est-ce que la validation croisée ? Comparaison des modèles d'apprentissage automatique
Publié: 2021-07-21La validation croisée est un outil inestimable pour les data scientists.
C'est utile pour construire plus précis apprentissage automatique modèles et évaluer leur efficacité sur un ensemble de données de test indépendant.
La validation croisée est facile à comprendre et à mettre en œuvre, ce qui en fait une méthode incontournable pour comparer les capacités (ou compétences) prédictives de différents modèles et choisir le meilleur. C'est avantageux lorsque la quantité de données disponibles est limitée et c'est un excellent moyen de vérifier comment un modèle prédictif fonctionne dans la pratique.
Qu'est-ce que la validation croisée ?
La validation croisée (CV) est une technique utilisée pour évaluer un modèle d'apprentissage automatique et tester ses performances (ou sa précision). Cela implique de réserver un échantillon spécifique d'un jeu de données sur lequel le modèle n'est pas formé. Plus tard, le modèle est testé sur cet échantillon pour l'évaluer.
La validation croisée est utilisée pour protéger un modèle contre le surajustement , en particulier si la quantité de données disponibles est limitée. Il est également connu sous le nom d'estimation de rotation ou de test hors échantillon et est principalement utilisé dans les contextes où la cible du modèle est la prédiction.
Le saviez-vous? Un modèle est considéré comme "sur-ajusté" s'il modélise si bien les données d'apprentissage qu'il affecte négativement ses performances sur les nouvelles données.
Cette procédure de rééchantillonnage est également utilisée pour comparer différents modèles d'apprentissage automatique et déterminer dans quelle mesure ils fonctionnent pour résoudre un problème particulier. En d'autres termes, la validation croisée est une méthode utilisée pour évaluer la compétence des modèles d'apprentissage automatique.
En termes simples, dans le processus de validation croisée, l'échantillon de données d'origine est divisé au hasard en plusieurs sous-ensembles. Le modèle d'apprentissage automatique s'entraîne sur tous les sous-ensembles, sauf un. Après l'entraînement, le modèle est testé en faisant des prédictions sur le sous-ensemble restant.
Dans de nombreux cas, plusieurs cycles de validation croisée sont effectués à l'aide de différents sous-ensembles, et leurs résultats sont moyennés pour déterminer quel modèle est un bon prédicteur.
Pourquoi la validation croisée est-elle importante ?
La validation croisée est cruciale lorsque la quantité de données disponibles est limitée.
Supposons que vous deviez prédire la probabilité qu'un pneu de vélo soit crevé. Pour cela, vous avez collecté des données sur les pneus existants : l'âge du pneu, le nombre de kilomètres parcourus, le poids du cycliste, et s'il a été crevé auparavant.
Pour créer un modèle prédictif, vous utiliserez ces données (historiques). Il y a deux choses que vous devez faire avec ces données : former l'algorithme et tester le modèle.
Le saviez-vous? En machine learning, un algorithme et un modèle ne sont pas identiques. Un modèle est ce qui est appris par l'algorithme d'apprentissage automatique.
Étant donné que vous ne disposez que d'une quantité limitée de données disponibles, il serait naïf d'utiliser toutes les données sur la formation de l'algorithme. Si vous le faites, vous n'auriez plus aucune donnée pour tester ou évaluer le modèle.
Réutiliser l'ensemble d'entraînement comme ensemble de test n'est pas une bonne idée car nous devons évaluer la précision du modèle sur des données sur lesquelles il n'a pas été formé. C'est parce que l'objectif principal de la formation est de préparer le modèle à travailler sur des données du monde réel. Et il est peu probable que votre ensemble de données d'entraînement contienne tous les points de données possibles que le modèle rencontrera un jour.
Une meilleure idée serait d'utiliser les 75 premiers pour cent (trois blocs) des données comme ensemble de données d'apprentissage et les 25 derniers pour cent (un bloc) comme ensemble de données de test . Cela vous permettra de comparer la façon dont différents algorithmes ont catégorisé les données de test.
Mais bien sûr, comment sauriez-vous que l'utilisation des 75 premiers % des données comme ensemble d'apprentissage et des 25 % restants comme ensemble de test est la meilleure solution ?
Au lieu de cela, vous pouvez utiliser les 25 premiers pour cent des données pour les tests ; ou, vous pouvez utiliser le troisième bloc de données comme ensemble de données de test et le reste comme ensemble de données d'apprentissage.
Astuce : Utilisez un logiciel de machine learning pour automatiser les tâches et faire des prédictions précises.
En conséquence, un type de validation croisée appelé validation croisée k-fold utilise toutes les (quatre) parties de l'ensemble de données comme données de test, une à la fois, puis résume les résultats.
Par exemple, la validation croisée utilisera les trois premiers blocs de données pour former l'algorithme et utilisera le dernier bloc pour tester le modèle. Il enregistre ensuite les performances du modèle avec les données de test.
Après avoir enregistré les performances ou la précision, il utilisera les 1er, 2e et 4e blocs de données pour s'entraîner et le 3e bloc pour tester. Le processus se poursuit jusqu'à ce que tous les blocs soient utilisés une fois comme données de test. La moyenne de tous les résultats est calculée pour évaluer les performances du modèle.
Dans l'exemple ci-dessus, les données ont été divisées en quatre blocs. Par conséquent, cette validation croisée est appelée validation croisée quadruple . S'il était divisé en dix blocs, ce serait une validation croisée de 10 fois .
En bref, la validation croisée est utile pour la sélection de modèles et permet d'examiner sans effort dans quelle mesure un modèle se généralise à de nouvelles données.
En d'autres termes, il est utile de déterminer l'erreur de prédiction d'un modèle. Il est également utilisé pour comparer les performances ou la précision de différentes méthodes d'apprentissage automatique telles que la machine à vecteurs de support (SVM), le K-plus proche voisin (KNN), la régression linéaire ou la régression logistique.
Voici quelques autres raisons pour lesquelles les data scientists adorent la validation croisée :
- Leur permet d'utiliser toutes les données sans sacrifier aucun sous-ensemble (non valide pour la méthode holdout)
- Révèle la cohérence des données et de l'algorithme
- Aide à éviter le surajustement et le sous-ajustement
La validation croisée est également utilisée pour régler le hyperparamètres d'un modèle d'apprentissage automatique grâce à une technique appelée validation croisée de recherche sur grille aléatoire .
Types de validation croisée
Les méthodes de validation croisée peuvent être classées en deux grandes catégories : les méthodes exhaustives et non exhaustives .
Comme leur nom l'indique, les méthodes de validation croisée exhaustives s'efforcent de tester toutes les manières possibles de diviser l'échantillon de données d'origine en un ensemble d'apprentissage et un ensemble de test. D'autre part, les méthodes non exhaustives ne calculent pas toutes les manières de partitionner les données d'origine en ensembles d'apprentissage et d'évaluation.
Vous trouverez ci-dessous les cinq types courants de validation croisée.
1. Méthode d'exclusion
La méthode d'exclusion est l'une des approches de validation croisée de base dans laquelle l'ensemble de données d'origine est divisé en deux parties : les données d'apprentissage et les données de test. Il s'agit d'une méthode non exhaustive et, comme prévu, le modèle est entraîné sur l'ensemble de données d'entraînement et évalué sur l'ensemble de données de test.
Dans la plupart des cas, la taille de l'ensemble de données d'apprentissage est deux fois supérieure à celle de l'ensemble de données de test, ce qui signifie que l'ensemble de données d'origine est divisé selon un rapport de 80:20 ou 70:30. De plus, les données sont mélangées de manière aléatoire avant de les diviser en ensembles d'apprentissage et de validation.
Cependant, cette méthode de validation croisée présente certains inconvénients. Étant donné que le modèle est formé sur une combinaison différente de points de données, il peut présenter des résultats variables à chaque fois qu'il est formé. De plus, nous ne pouvons jamais être entièrement sûrs que l'ensemble de données d'apprentissage choisi représente l'ensemble de données complet.

Si l'échantillon de données d'origine n'est pas trop volumineux, il est également possible que les données de test contiennent des informations cruciales, que le modèle ne reconnaîtra pas car elles ne sont pas incluses dans les données d'apprentissage.
Cependant, la technique de validation croisée est idéale si vous êtes pressé de former et de tester un modèle et que vous disposez d'un grand ensemble de données.
2. Validation croisée K-fold
La méthode de validation croisée k-fold est une version améliorée de la méthode holdout. Cela apporte plus de cohérence au score du modèle car il ne dépend pas de la façon dont nous choisissons l'ensemble de données d'entraînement et de test.
Il s'agit d'une méthode de validation croisée non exhaustive et, comme son nom l'indique, l'ensemble de données est divisé en un nombre k de fractionnements et la méthode d'exclusion est exécutée k fois.
Par exemple, si la valeur de k est égale à deux, il y aura deux sous-ensembles de tailles égales. Dans la première itération, le modèle est entraîné sur un sous-échantillon et validé sur l'autre. Dans la deuxième itération, le modèle est formé sur le sous-ensemble qui a été utilisé pour valider dans l'itération précédente et testé sur l'autre sous-ensemble. Cette approche est appelée double validation croisée .
De même, si la valeur de k est égale à cinq, l'approche est appelée méthode de validation croisée quintuple et impliquera cinq sous-ensembles et cinq itérations. De plus, la valeur de k est arbitraire. Généralement, la valeur de k est définie sur 10. Si vous ne savez pas comment choisir une valeur, la même chose est recommandée.
La procédure de validation croisée k-fold commence par diviser de manière aléatoire l'ensemble de données d'origine en k nombre de plis ou sous-ensembles. À chaque itération, le modèle est entraîné sur les k-1 sous-ensembles de l'ensemble de données. Après cela, le modèle est testé sur le ke sous-ensemble pour vérifier ses performances.
Ce processus est répété jusqu'à ce que tous les plis k aient servi d'ensemble d'évaluation. Les résultats de chaque itération sont moyennés, et cela s'appelle la précision de la validation croisée . La précision de la validation croisée est utilisée comme mesure de performance pour comparer l'efficacité de différents modèles.
La technique de validation croisée k-fold produit généralement des modèles moins biaisés, car chaque point de données de l'ensemble de données d'origine apparaîtra à la fois dans l'ensemble d'apprentissage et de test. Cette méthode est optimale si vous avez une quantité limitée de données.
Cependant, comme prévu, ce processus peut prendre du temps car l'algorithme doit réexécuter k fois à partir de zéro. Cela signifie également qu'il faut k-1 fois plus de calculs que la méthode holdout.
3. Validation croisée stratifiée k-fold
Étant donné que nous mélangeons les données de manière aléatoire et que nous les divisons en plis dans la validation croisée k-fold, il est possible que nous nous retrouvions avec des sous-ensembles déséquilibrés. Cela peut entraîner une formation biaisée, ce qui se traduit par un modèle inexact.
Par exemple, considérons le cas d'un problème de classification binaire dans lequel chacun des deux types d'étiquettes de classe comprend 50 % des données d'origine. Cela signifie que les deux classes sont présentes dans l'échantillon original en proportions égales. Par souci de simplicité, nommons les deux classes A et B.
En mélangeant les données et en les divisant en plis, il y a de fortes chances que nous nous retrouvions avec un pli dans lequel la majorité des points de données appartiennent à la classe A et seulement quelques-uns à la classe B. Un tel sous-ensemble est considéré comme un sous-ensemble déséquilibré et peut conduire à la création d'un classificateur inexact.
Pour éviter de telles situations, les plis sont stratifiés à l'aide d'un processus appelé stratification . Dans la stratification, les données sont réorganisées pour garantir que chaque sous-ensemble est une bonne représentation de l'ensemble de données.
Dans l'exemple ci-dessus de classification binaire, cela signifierait qu'il est préférable de diviser l'échantillon d'origine de sorte que la moitié des points de données dans un pli appartiennent à la classe A et le reste à la classe B.
4. Validation croisée Leave-P-Out
La validation croisée Leave-p-out (LpOCV) est une méthode exhaustive dans laquelle p nombre de points de données sont extraits du nombre total d'échantillons de données représentés par n.
Le modèle est formé sur np points de données et ensuite testé sur p points de données. Le même processus est répété pour toutes les combinaisons possibles de p de l'échantillon original. Enfin, les résultats de chaque itération sont moyennés pour atteindre la précision de la validation croisée.
5. Validation croisée Leave-one-out
L'approche de validation croisée leave-one-out (LOOCV) est une version simplifiée du LpOCV. Dans cette technique de validation croisée, la valeur de p est fixée à un. Cette méthode est donc beaucoup moins exhaustive. Cependant, l'exécution de cette méthode est coûteuse et prend du temps car le modèle doit être ajusté un certain nombre de fois.
Il existe d'autres techniques de validation croisée, notamment la validation de sous-échantillonnage aléatoire répété, la validation croisée imbriquée et la validation croisée de séries chronologiques.
Applications de la validation croisée
L'application principale de la validation croisée est d'évaluer les performances des modèles d'apprentissage automatique. Cela permet de comparer les méthodes d'apprentissage automatique et de déterminer celle qui est idéale pour résoudre un problème spécifique.
Par exemple, supposons que vous considériez les k plus proches voisins (KNN) ou l'analyse en composantes principales (PCA) pour effectuer la reconnaissance optique des caractères. Dans ce cas, vous pouvez utiliser la validation croisée pour comparer les deux en fonction du nombre de caractères mal classés par chaque méthode.
La validation croisée peut également être utilisée dans la sélection des fonctionnalités pour sélectionner les fonctionnalités qui contribuent le plus à la sortie de prédiction.
Limites de la validation croisée
Le principal défi de la validation croisée est le besoin de ressources de calcul excessives, en particulier dans des méthodes telles que le CV k-fold. Étant donné que l'algorithme doit être réexécuté à partir de zéro pendant k fois, il nécessite k fois plus de calculs pour être évalué.
Une autre limitation est celle qui entoure les données invisibles. Dans la validation croisée, l'ensemble de données de test est l'ensemble de données invisible utilisé pour évaluer les performances du modèle. En théorie, c'est un excellent moyen de vérifier le fonctionnement du modèle lorsqu'il est utilisé pour des applications réelles.
Mais, il ne peut jamais y avoir un ensemble complet de données invisibles dans la pratique, et on ne peut jamais prédire le type de données que le modèle pourrait rencontrer à l'avenir.
Supposons qu'un modèle soit construit pour prédire le risque d'un individu de contracter une maladie infectieuse spécifique. Si le modèle est formé sur les données d'une étude de recherche impliquant uniquement un groupe de population particulier (par exemple, les femmes dans la mi-vingtaine), lorsqu'il est appliqué à la population générale, la performance prédictive peut différer considérablement par rapport à la précision de la validation croisée .
De plus, la validation croisée ne produira des résultats significatifs que si les biais humains sont contrôlés dans l'ensemble d'échantillons d'origine.
La validation croisée à la rescousse
La création de modèles à validation croisée est une excellente méthode pour créer des applications d'apprentissage automatique avec une précision ou des performances accrues. Les techniques de validation croisée comme la validation croisée k-fold permettent d'estimer les performances d'un modèle sans sacrifier la répartition du test.
Ils éliminent également les problèmes causés par une division des données de déséquilibre ; en bref, ils peuvent permettre aux scientifiques des données de compter moins sur la chance et plus sur les itérations.
Il existe un sous-ensemble d'apprentissage automatique qui tente d'imiter le fonctionnement du cerveau humain. C'est ce qu'on appelle l'apprentissage en profondeur, et l'intelligence artificielle générale, si jamais possible, nécessiterait ses capacités de prise de décision.