Nombre optimal de plis en -fold validation croisée: est leave-one-out CV toujours le meilleur choix?

47

Mis à part les considérations relatives à la puissance de calcul, y a-t-il des raisons de penser que l' augmentation du nombre de plis lors de la validation croisée conduit à une meilleure sélection / validation du modèle (en d'autres termes, plus le nombre de plis est élevé, mieux c'est).

En poussant l'argument à l'extrême, la validation croisée «laisser-un-out» conduit-elle nécessairement à de meilleurs modèles que la validation croisée « fold»?K

Quelques informations sur cette question: je travaille sur un problème avec très peu d'instances (par exemple 10 positifs et 10 négatifs), et j'ai bien peur que mes modèles ne se généralisent pas bien / sur-équipent avec si peu de données.

Amelio Vazquez-Reina
la source
1
Un fil lié plus ancien: Choix de K dans la validation croisée des plis .
amibe dit de réintégrer Monica
Cette question n'est pas un doublon car elle se limite aux petits ensembles de données et aux "considérations de puissance de calcul mises à part". Il s’agit là d’une grave limitation, rendant la question inapplicable à ceux disposant de grands ensembles de données et à l’algorithme d’apprentissage avec une complexité de calcul au moins linéaire en nombre d’instances (ou de prédiction au moins à la racine carrée du nombre d’instances).
Serge Rogatch

Réponses:

46

En règle générale, la validation croisée "laissez-passer" ne conduit pas à de meilleures performances que le pli-K, elle risque davantage d'être pire , car la variance est relativement élevée (c'est-à-dire que sa valeur change davantage pour différents échantillons de données que la valeur pour validation croisée k-fold). Ceci est mauvais pour un critère de sélection de modèle car cela signifie que le critère de sélection de modèle peut être optimisé d'une manière qui exploite simplement la variation aléatoire de l'échantillon de données particulier, plutôt que d'améliorer réellement les performances, ce qui signifie que vous êtes plus susceptible de sur-adapter le critère de sélection du modèle. La raison pour laquelle la validation croisée let-one-out est utilisée dans la pratique est que, pour de nombreux modèles, elle peut être évaluée à très bon marché en tant que sous-produit de l'ajustement du modèle.

Si les dépenses de calcul ne sont pas principalement un problème, une meilleure approche consiste à effectuer une validation croisée multipliée par k, où la procédure de validation croisée à pli k est répétée avec différentes partitions aléatoires en k sous-ensembles disjoints à chaque fois. Cela réduit la variance.

Si vous n’avez que 20 modèles, il est très probable que vous éprouviez des difficultés à surpasser le critère de sélection du modèle, un piège très négligé dans les statistiques et l’apprentissage automatique (fiche éhontée: voir mon article à ce sujet). Vous feriez peut-être mieux de choisir un modèle relativement simple et de ne pas l’optimiser de manière très agressive, ou d’adopter une approche bayésienne et une moyenne de tous les choix de modèles, pondérés par leur plausibilité. L'optimisation IMHO est la racine de tous les maux dans les statistiques, il est donc préférable de ne pas optimiser si vous n'avez pas à le faire, et d'optimiser avec prudence chaque fois que vous le faites.

Notez également que si vous allez effectuer une sélection de modèle, vous devez utiliser quelque chose comme une validation croisée imbriquée si vous avez également besoin d'une estimation des performances (vous devez par exemple considérer la sélection de modèle comme une partie intégrante de la procédure d'ajustement du modèle et valider cette validation croisée). ainsi que).

Dikran Marsupial
la source
8
+1 J'aime votre message "l'optimisation est la racine de tout le mal dans les statistiques" ...
S. Kolassa - Réintégrer Monica
5
Merci @DikranMarsupial. Je ne suis pas tout à fait. Pourquoi les modèles appris avec let-one-out ont-ils une variance plus élevée que celle obtenue avec une validation croisée par pli normal ? Mon intuition me dit que, puisque dans les plis, nous ne déplaçons qu'un point de données, les ensembles de formation entre les plis se chevauchent fortement. Je m'attendrais donc à peu de variance entre les modèles. Ou aller dans l’autre direction, dans le pli K, si K est faible, les ensembles d’entraînement pour chaque pli seraient très différents et les modèles résultants seraient plus vraisemblablement différents. Ai-je tort?
Amelio Vazquez-Reina
C'est une très bonne question en soi, alors je vous suggère de la poser comme une nouvelle question, et je réfléchirai à la manière d'y répondre!
Dikran Marsupial
Merci @DikranMarsupial, j'ai suivi votre conseil et posé une question distincte ici .
Amelio Vazquez-Reina
1
@DikranMarsupial J'ai pensé mentionner ici que j'ai déjà lancé un fil de discussion inspiré de votre commentaire "Optimisation statistique" dans cette réponse. Votre commentaire m'a incité à envisager l'overfitting dans une perspective plus large que celle à laquelle je suis habitué.
Amelio Vazquez-Reina
8

Choisir le nombre K se plie en tenant compte de la courbe d'apprentissage

Je voudrais dire que le choix du nombre approprié de plis dépend beaucoup de la forme et de la position de la courbe d'apprentissage, principalement en raison de son impact sur le biais . Cet argument, qui s'étend au CV sans omission, est largement repris de l'ouvrage "Éléments d'apprentissage statistique", chapitre 7.10, page 243.K

Pour des discussions sur l'impact de sur la variance, voir iciK

En résumé, si la courbe d'apprentissage présente une pente considérable à la taille du jeu d'apprentissage donnée, une validation croisée sur cinq ou dix fois surestimera la véritable erreur de prédiction. Si ce biais est un inconvénient dans la pratique, cela dépend de l'objectif. D'autre part, la validation croisée «laissez passer un test» a un biais faible, mais peut avoir une variance élevée.

Une visualisation intuitive utilisant un exemple de jouet

Pour comprendre visuellement cet argument, considérons l'exemple de jouet suivant dans lequel nous ajustons un polynôme de degré 4 à une courbe sinusoïdale bruyante:

entrez la description de l'image ici

Intuitivement et visuellement, nous nous attendons à ce que ce modèle présente des résultats médiocres pour les petits ensembles de données en raison de la suralimentation. Ce comportement est reflété dans la courbe d'apprentissage où nous traçons Erreur quadratique moyenne vs taille de l'entraînement avec 1 écart type. Notez que j'ai choisi de tracer 1 - MSE ici pour reproduire l'illustration utilisée dans ESL page 243±1±

entrez la description de l'image ici

Discuter de l'argument

Les performances du modèle s'améliorent considérablement lorsque la taille de l'entraînement augmente jusqu'à 50 observations. Augmenter ce nombre à 200 par exemple n'apporte que de petits avantages. Considérons les deux cas suivants:

  1. Si notre ensemble d’entraînement comportait 200 observations, une validation croisée sur fois estimerait la performance sur une taille d’entraînement de 160, ce qui est pratiquement la même que celle pour un ensemble d’entraînement de 200. Ainsi, la validation croisée ne souffrirait pas de beaucoup de biais et augmenterait de à des valeurs plus grandes n'apporteront pas beaucoup d'avantages ( intrigue de gauche )K5K

  2. Cependant, si l'ensemble d'apprentissage comportait observations, une validation croisée sur fois estimait la performance du modèle par rapport à des ensembles d'apprentissage de taille 40, ce qui conduirait à un résultat biaisé de la courbe d'apprentissage. Par conséquent, l'augmentation de dans ce cas aura tendance à réduire le biais. ( intrigue de droite ).5 K505K

entrez la description de l'image ici

[Mise à jour] - Commentaires sur la méthodologie

Vous pouvez trouver le code pour cette simulation ici . L'approche était la suivante:

  1. Génère 50 000 points à partir de la distribution où la variance réelle de est connueesin(x)+ϵϵ
  2. Itérer fois (par exemple 100 ou 200 fois). À chaque itération, modifiez le jeu de données en rééchantillonnant points de la distribution d'origine.NiN
  3. Pour chaque ensemble de données : i
    • Effectuer une validation croisée des plis K pour une valeur deK
    • Stocker l'erreur quadratique moyenne (MSE) moyenne sur les plis K
  4. Une fois que la boucle sur est terminée, calculez la moyenne et l'écart type de la MSE sur les jeux de données pour la même valeur dei KiiK
  5. Répétez les étapes ci-dessus pour tous les de la plage jusqu’à LOOCV.{ 5 , . . . , N }K{5,...,N}

Une autre approche consiste à ne pas rééchantillonner un nouvel ensemble de données à chaque itération, mais à remanier à chaque fois le même ensemble de données. Cela semble donner des résultats similaires.

Xavier Bourret Sicotte
la source
Continuons cette discussion sur le chat .
Xavier Bourret Sicotte
@ Merci pour le code! J'ai exécuté le code mais je ne comprends pas comment connaissez-vous le vrai (le de votre code). Je pense aussi que votre code sera plus compact si vous définissez deux fonctions, une pour les échantillons bootstrap (Shuffle = False), une pour KFold (Shuffle = True) :)1 - 11MSE1112
meTchaikovsky le
@me_Tchaikovsky Rappelons que la MSE du prédicteur peut être décomposée de la manière suivante: et en supposant qu'il n'y a pas de biais lorsque le modèle correspond à la vraie fonction sous-jacente, nous nous retrouvons avec la variance du terme d'erreur . La variance de la va uniforme est de donc dans ce cas ε ~ U ( - 0,5 , 0,5 ) une / 12 ( b - a ) 2 une / 12MSE=Var+Bias2ϵU(.5,.5)1/12(ba)21/12
Xavier Bourret Sicotte le