Combien de fois devons-nous répéter un CV multiplié par K?

18

Je suis tombé sur ce fil en regardant les différences entre le bootstrap et la validation croisée - une excellente réponse et des références d'ailleurs. Ce que je me demande maintenant, c'est si je devais répéter un CV multiplié par 10 pour calculer la précision d'un classificateur, combien de fois n devrais-je le répéter?

Est - n dépend du nombre de plis? Sur la taille de l'échantillon? Y a-t-il une règle pour cela?

(Dans mon cas, j'ai des échantillons aussi gros que 5000, et si je choisis quelque chose de plus grand que n = 20, mon ordinateur prend beaucoup trop de temps pour effectuer le calcul.)

Neodyme
la source

Réponses:

10

Le facteur d'influence est la stabilité de votre modèle - ou, plus précisément: les prédictions des substituts.

Si les modèles sont complètement stables, tous les modèles de substitution fourniront la même prédiction pour le même cas de test. Dans ce cas, les itérations / répétitions ne sont pas nécessaires et n'apportent aucune amélioration.

Comme vous pouvez mesurer la stabilité des prédictions, voici ce que je ferais:

  • Configurez l'ensemble de la procédure de manière à enregistrer les résultats de chaque répétition / itération de validation croisée, par exemple sur le disque dur
  • Commencez avec un grand nombre d'itérations
  • Après quelques itérations, récupérez les résultats préliminaires et examinez la stabilité / variation des résultats pour chaque analyse.
  • Décidez ensuite combien d'itérations supplémentaires vous souhaitez affiner les résultats.

  • Bien sûr, vous pouvez décider d'exécuter, disons, 5 itérations, puis décider du nombre final d'itérations que vous souhaitez effectuer.

(Remarque: j'utilise généralement> environ 1000 modèles de substitution, donc le nombre typique de répétitions / itérations ne serait pas compris entre 100 et 125).

cbeleites soutient Monica
la source
13

Posez n'importe quelle question à un statisticien et sa réponse sera une sorte de "ça dépend".

Ça dépend . Mis à part le type de modèle (bon point cbeleites!), Le nombre de points de consigne d'entraînement et le nombre de prédicteurs? Si le modèle est pour la classification, un grand déséquilibre de classe me ferait augmenter le nombre de répétitions. De plus, si je rééchantillonne une procédure de sélection de fonctionnalités, je me pencherais davantage sur le rééchantillonnage.

Pour toute méthode de rééchantillonnage utilisée dans ce contexte, n'oubliez pas que (contrairement au bootstrap classique), vous n'avez besoin que d'itérations suffisantes pour obtenir une estimation "suffisamment précise" de la moyenne de la distribution. C'est subjectif mais toute réponse le sera.

Pour en rester à la classification avec deux classes pendant une seconde, supposons que vous vous attendiez à ce que la précision du modèle soit d'environ 0,80. Étant donné que le processus de rééchantillonnage consiste à échantillonner l'estimation de précision (par exemple p), l'erreur standard serait sqrt[p*(1-p)]/sqrt(B)Best le nombre de rééchantillons. Pour B = 10, l'erreur standard de la précision est d'environ 0,13 et avec B = 100elle est d'environ 0,04. Vous pouvez utiliser cette formule comme guide approximatif pour ce cas particulier.

Considérez également que, dans cet exemple, la variance de la précision est maximisée au fur et à mesure que vous vous rapprochez de 0,50, de sorte qu'un modèle précis devrait nécessiter moins de répétitions car l'erreur standard devrait être inférieure aux modèles qui sont des apprenants faibles.

HTH,

Max

topepo
la source
2
Je serais extrêmement prudent ici pour appliquer tout type de calcul d'erreur standard dans ce contexte, car il y a 2 sources de variance ici (instabilité du modèle + ensemble fini de cas de test), et je pense que la validation du rééchantillonnage ne contournera pas le test fini définir la variance: envisager une validation croisée. À chaque exécution, tous les cas de test sont testés exactement une fois. Ainsi, la variance entre les cycles de CV itéré doit être due à l'instabilité. Vous n'observerez pas (ni ne réduirez!) La variance due au test fini défini de cette façon, mais bien sûr le résultat y est toujours soumis.
cbeleites prend en charge Monica le