Comment décririez-vous la validation croisée à une personne sans formation en analyse de données?
Comment décririez-vous la validation croisée à une personne sans formation en analyse de données?
Réponses:
Considérez la situation suivante:
Je veux prendre le métro pour aller à mon bureau. Mon plan est de prendre ma voiture, de me garer dans le métro, puis de prendre le train pour me rendre à mon bureau. Mon objectif est de prendre le train tous les jours à 8h15 pour pouvoir me rendre à mon bureau à l'heure. Je dois décider ce qui suit: (a) l'heure à laquelle je dois partir de chez moi et (b) l'itinéraire que je prendrai pour me rendre à la gare.
Dans l'exemple ci-dessus, j'ai deux paramètres (c'est-à-dire l'heure de départ de la maison et l'itinéraire à prendre pour aller à la gare) et je dois choisir ces paramètres de manière à atteindre la station à 8h15.
Afin de résoudre le problème ci-dessus, je peux essayer différents ensembles de «paramètres» (c'est-à-dire une combinaison différente d'heures de départ et d'itinéraire) les lundis, mercredis et vendredis, pour voir quelle combinaison est la «meilleure». L'idée est qu'une fois que j'ai identifié la meilleure combinaison, je peux l'utiliser quotidiennement pour atteindre mon objectif.
Problème de suralimentation
Le problème avec l'approche ci-dessus est que je peux sur-adapter, ce qui signifie essentiellement que la meilleure combinaison que j'identifie peut en un sens être propre à Lun, Mer et Vendredi et que cette combinaison peut ne pas fonctionner pour Tue et Jeu. Un sur-équipement peut survenir si, dans ma recherche de la meilleure combinaison d'horaires et de routes, j'exploite certains aspects de la situation de la circulation le lundi, le mercredi et le vendredi, ce qui n'est pas le cas le mardi et le jeudi.
Une solution à la surévaluation: la validation croisée
La validation croisée est une solution au surajustement. L'idée est qu'une fois que nous avons identifié notre meilleure combinaison de paramètres (dans notre cas, le temps et la route), nous testons les performances de cet ensemble de paramètres dans un contexte différent. Par conséquent, nous voudrons peut-être tester le mardi et le jeudi afin de nous assurer que nos choix fonctionnent également pour ces jours.
Étendre l'analogie aux statistiques
En statistique, nous avons un problème similaire. Nous utilisons souvent un ensemble limité de données pour estimer les paramètres inconnus que nous ne connaissons pas. Si nous surajustons nos estimations de paramètres fonctionneront très bien pour les données existantes, mais pas aussi bien pour les utiliser dans un autre contexte. Ainsi, la validation croisée permet d’éviter le problème de surajustement qui précède en nous assurant que les estimations de paramètres ne sont pas uniques aux données que nous avons utilisées pour les estimer.
Bien sûr, la validation croisée n'est pas parfaite. Pour revenir à notre exemple de métro, il peut arriver que même après la validation croisée, notre meilleur choix de paramètres ne fonctionne pas un mois plus tard en raison de divers problèmes (construction, évolution du volume de trafic, etc.).
Je pense que ceci est mieux décrit avec l'image suivante (dans ce cas, la validation croisée par k-fold):
La validation croisée est une technique utilisée pour se protéger contre les surajustements dans un modèle prédictif, en particulier dans les cas où la quantité de données peut être limitée. En validation croisée, vous créez un nombre fixe de plis (ou de partitions) des données, effectuez l'analyse sur chaque pli, puis vous faites la moyenne de l'estimation d'erreur globale.
"Évitez d'apprendre par cœur vos données d'entraînement en vous assurant que le modèle formé fonctionne bien avec des données indépendantes."
Disons que vous étudiez un processus; vous avez rassemblé des données qui le décrivent et vous avez construit un modèle (statistique ou ML, peu importe). Mais maintenant, comment juger si ça va? Probablement, cela correspond étrangement bien aux données sur lesquelles il a été construit, donc personne ne croira que votre modèle est si magnifique que vous en pensez.
La première idée est de séparer un sous-ensemble de vos données et de l’utiliser pour tester la construction du modèle par votre méthode sur le reste des données. Maintenant, le résultat est définitivement sans sur-ajustement, néanmoins (surtout pour les petits ensembles), vous auriez pu être (mal) chanceux et dessiner (moins) des cas plus simples à tester, ce qui le rend (plus difficile) plus facile à prévoir ... Aussi votre précision / L'estimation erreur / bonté est inutile pour la comparaison / l'optimisation de modèle, car vous ne savez probablement rien de sa distribution.
En cas de doute, utilisez la force brute. Il vous suffit donc de reproduire le processus ci-dessus, de rassembler quelques estimations d'exactitude / d'erreur / de qualité et de les calculer en moyenne - afin d'obtenir une validation croisée. Parmi les meilleures estimations, vous obtiendrez également un histogramme, ce qui vous permettra d'approximer la distribution ou d'effectuer des tests non paramétriques.
Et c'est ça; les détails de la division du train d’essai sont la raison de différents types de CV, sauf dans de rares cas et de faibles différences de résistance, ils sont plutôt équivalents. En effet, c’est un avantage énorme, car cela en fait une méthode pare-balles; il est très difficile de le tromper.
Puisque vous n’avez pas accès aux données de test au moment de la formation et que vous voulez que votre modèle fonctionne bien avec les données de test invisibles, vous "prétendez" que vous avez accès à certaines données de test en sous-échantillonnant de manière répétée une petite partie de vos données d’entraînement, tenez cet ensemble pendant l’apprentissage du modèle, puis traitez-le comme un proxy aux données de test (et choisissez les paramètres du modèle qui donnent les meilleures performances pour les données conservées). Vous espérez qu'en échantillonnant de manière aléatoire divers sous-ensembles à partir des données d'apprentissage, vous les ferez ressembler aux données de test (dans le sens du comportement moyen), de sorte que les paramètres de modèle appris seront également bons pour les données de test (c.-à-d. généralise bien pour les données invisibles).