Pourquoi diviser les données dans l'ensemble de formation et de test ne suffit pas


18

Je sais que pour accéder aux performances du classificateur, je dois diviser les données en ensemble de formation / test. Mais en lisant ceci :

Lors de l'évaluation de différents paramètres («hyperparamètres») pour les estimateurs, tels que le paramètre C qui doit être défini manuellement pour un SVM, il existe toujours un risque de sur-ajustement sur l'ensemble de test car les paramètres peuvent être modifiés jusqu'à ce que l'estimateur fonctionne de manière optimale. De cette façon, les connaissances sur l'ensemble de tests peuvent «s'infiltrer» dans le modèle et les mesures d'évaluation ne rendent plus compte des performances de généralisation. Pour résoudre ce problème, une autre partie de l'ensemble de données peut être présentée comme un soi-disant «ensemble de validation»: la formation se poursuit sur l'ensemble d'apprentissage, après quoi l'évaluation est effectuée sur l'ensemble de validation, et lorsque l'expérience semble réussir , l'évaluation finale peut être effectuée sur l'ensemble de test.

Je vois qu'un autre (troisième) ensemble de validation est introduit, ce qui est justifié par un sur-ajustement de l'ensemble de test lors du réglage des hyperparamètres.

Le problème est que je ne peux pas comprendre comment ce sur-ajustement peut apparaître et ne peut donc pas comprendre la justification du troisième set.


2
Je pense que beaucoup de confusion vient de 2 ou 3 sens plutôt différents du terme "validation". La validation en validation croisée n'est généralement qu'un nom pour une procédure de fractionnement sans remplacement. L'ensemble de "validation" dans le texte cité serait à mon humble avis mieux compris comme "réglage" ou "ensemble d'optimisation". Alors que la «validation», par exemple en ingénierie ou également en chimie analytique, signifie prouver qu'une méthode finale donnée est adaptée à son objectif - ce qui est fait (simulé, approximé) par l'ensemble «test». (Pour moi, les tests semblent beaucoup moins finaux que la validation ...)
cbeleites prend en charge Monica

Réponses:


17

Même si vous entraînez des modèles exclusivement sur les données d'entraînement, vous optimisez les hyperparamètres (par exemple pour un SVM) sur la base de l'ensemble de test. En tant que tel, votre estimation des performances peut être optimiste, car vous signalez essentiellement les meilleurs résultats. Comme certains l'ont déjà mentionné sur ce site, l' optimisation est la racine de tout mal dans les statistiques .C

Les estimations de performances doivent toujours être effectuées sur des données totalement indépendantes. Si vous optimisez un aspect basé sur des données de test, vos données de test ne sont plus indépendantes et vous auriez besoin d'un ensemble de validation.

Une autre façon de résoudre ce problème est via la validation croisée imbriquée , qui consiste en deux procédures de validation croisée enroulées l'une autour de l'autre. La validation croisée interne est utilisée dans le réglage (pour estimer les performances d'un ensemble donné d'hyperparamètres, qui est optimisé) et la validation croisée externe estime les performances de généralisation de l'ensemble du pipeline d'apprentissage automatique (c'est-à-dire, optimisation des hyperparamètres + formation du modèle final). ).


Je peux me tromper, mais l'ensemble de test ne sert pas seulement à régler les hyperparamètres, mais aussi à comparer différents types de techniques comme, par exemple, les performances de SVM par rapport à LDA ou à la forêt aléatoire, comme je l'ai indiqué dans ma réponse.

@fcoppens Oui, certainement. Je ne l'ai pas explicitement mentionné, mais cela s'inscrit certainement dans cette étape.
Marc Claesen

1
plus généralement, le réglage ou l'optimisation est ici tout type de processus piloté par les données (par la validation croisée interne).
cbeleites prend en charge Monica

@MarcClaesen J'ai une question. Si j'ai 2 valeurs différentes de l'hyperparamètre et que j'adapte ces 2 modèles sur l'ensemble d'apprentissage, puis les applique sur l'ensemble de test, alors le taux d'erreur que j'ai obtenu sur l'ensemble de test est-il un estimateur non biaisé du véritable taux d'erreur de prédiction de ces 2 modèles? Parce que si vous me donnez maintenant un autre jeu de données de test indépendant, ce nouveau jeu de données de test est essentiellement le même que le jeu de test précédent. Donc, si un modèle a un meilleur score de test, il devrait également surpasser l'autre modèle sur un nouvel ensemble de données de test. Pourquoi avons-nous besoin d'un ensemble de validation?
KevinKim

"Si vous optimisez certains aspects sur la base des données de test, vos données de test ne sont plus indépendantes et vous aurez besoin d'un ensemble de validation." c'est perspicace
Sudip Bhandari

11

Je pense qu'il est plus facile de penser aux choses de cette façon. Il y a deux choses pour lesquelles la validation croisée est utilisée, le réglage des hyper-paramètres d'un modèle / algorithme et l' évaluation des performances d'un modèle / algorithme.

Considérez la première utilisation dans le cadre de la formation réelle de l'algorithme. Par exemple, la validation croisée pour déterminer la force de régularisation d'un GLM fait partie de l'établissement du résultat final du GLM. Cette utilisation est généralement appelée validation croisée interne . Étant donné que les (hyper) paramètres sont toujours définis, la perte de l'ensemble de réglages n'est pas une bonne mesure des performances réelles des algorithmes.

La deuxième utilisation de la validation croisée consiste à utiliser des données qui ont été exclues de l'ensemble du processus qui a produit le modèle, pour tester son pouvoir prédictif. Ce processus est appelé validation croisée externe .

Notez que la validation interne peut avoir fait partie du processus qui a produit le modèle, de sorte que dans de nombreux cas, une validation croisée interne et externe est nécessaire.


Personnellement, je n'utiliserais pas l'expression "validation croisée externe", car je verrais la validation croisée comme la séparation répétée de différents ensembles de validation de l'ensemble de formation à des fins de sélection et de réglage de modèle. Vous ne pouvez pas le faire de manière significative à plusieurs reprises avec l'ensemble de test, car il s'agit d'un proxy unique pour les données futures encore inconnues utilisées pour évaluer les performances du modèle final.
Henry

3
Henry, je ne pense pas que vous compreniez la validation croisée externe. Vous pouvez «faire cela à plusieurs reprises avec l'ensemble de test», en affichant à plusieurs reprises une partie de vos données complètes à des fins de test tout en exécutant votre procédure de formation complète sur le reste (ce qui peut inclure une validation croisée interne). La validation croisée externe est toujours généralement effectuée en plis et permet à toutes les données d'origine d'être à un moment donné dans l'ensemble de test.
jlimahaverford

αα

2

Pendant la construction de modèles, vous entraînez vos modèles sur un échantillon de formation . Notez que vous pouvez entraîner différents modèles (c'est-à-dire différentes techniques comme SVM, LDA, Random Forest, ... ou la même technique avec différentes valeurs des paramètres de réglage, ou un mélange).

Parmi tous les différents modèles que vous avez formés, vous devez en choisir un et vous utilisez donc l' échantillon de validation pour trouver celui avec la plus petite erreur sur l'échantillon de test.

Pour ce modèle «final», nous devons encore estimer l'erreur et nous utilisons donc l' échantillon de test .


1
J'inverserais le libellé de vos deuxième et troisième paragraphes: j'utiliserais le jeu de validation pour trouver le meilleur modèle et régler ses hyperparamètres (en faisant cela avec plusieurs jeux de validation qui partitionnent le jeu d'apprentissage rend cette validation croisée ) et, une fois que le modèle a finalisé, puis appliquez-le à l'ensemble de test pour voir un exemple des performances hors échantillon du modèle.
Henry

@Henry: OK Henry, je pense que les étiquettes des phases sont moins importantes que leur séquence / contenu, mais votre remarque a du sens pour moi, je vais éditer le texte, merci (+1),

1

La validation croisée ne résout pas complètement le problème de sur-ajustement dans la sélection des modèles, elle le réduit simplement. L'erreur de validation croisée dépend de l'ensemble de données que vous utilisez. Plus l'ensemble de données est petit, plus l'erreur de validation croisée est élevée.

De plus, si vous disposez de degrés de liberté élevés dans la sélection du modèle, le modèle risque de mal fonctionner, car le critère de validation croisée est sur-ajusté.

Ainsi, lorsque les données sont divisées en 2 ensembles, alias les ensembles de formation et de test, le fractionnement est effectué de manière statique. Il y a donc une chance de sur-équiper l'ensemble d'entraînement. Cependant, les ensembles de validation croisée sont créés par différentes méthodes , comme la validation croisée k-fold, la validation de sortie croisée (LOOCV), etc., ce qui permet de garantir l'élimination de la récompense d'ajustement exacte de la division en 2 ensembles et ainsi le risque de sur-ajustement est réduit.

Voici quelques ressources qui vous aideraient à mieux comprendre.

Ainsi, la validation croisée vous aiderait lorsque vous avez un ensemble de données plus grand, plutôt qu'un plus petit.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.