Je me sers de la quelques fois la validation croisée de d'évaluer la performance de certains algorithmes d'apprentissage, mais je l' ai toujours été perplexe quant à la façon dont je choisir la valeur de .
J'ai souvent vu et utilisé une valeur de , mais cela me semble totalement arbitraire et je viens maintenant d'utiliser par habitude au lieu de réfléchir. Il me semble que vous obtenez une meilleure granularité à mesure que vous améliorez la valeur de Idéalement, vous devriez donc donner à votre très grande valeur, mais il existe également un risque de partialité.
J'aimerais savoir sur quoi la valeur de devrait dépendre et comment je devrais réfléchir à cela lorsque j'évalue mon algorithme. Cela change-t-il quelque chose si j'utilise la version stratifiée de la validation croisée ou non?
la source
Réponses:
Le choix de est quelque peu arbitraire. Voici comment je décide :k=10 k
Tout d'abord, afin de réduire la variance du résultat du CV, vous pouvez et devez répéter / itérer le CV avec de nouvelles divisions aléatoires.k
Cela rend l'argument de élevé => plus de temps de calcul largement dépourvu de pertinence, car vous voulez quand même calculer de nombreux modèles. J'ai tendance à penser principalement au nombre total de modèles calculés (par analogie avec l'initialisation). Je peux donc choisir un CV de 100 x 10 ou de 200 x 5.
@ogrisel a déjà expliqué que généralement grand signifie moins de biais (pessimiste). (Certaines exceptions sont connues en particulier pour , c'est-à-dire en laissant-un).k k=n
Si possible, j'utilise un qui est un diviseur de la taille de l'échantillon ou de la taille des groupes de l'échantillon à stratifier.k
Trop grand signifie que seul un faible nombre de combinaisons d'échantillons est possible, limitant ainsi le nombre d'itérations différentes.k
Ces pensées ont plus de poids avec des échantillons de petite taille. Avec plus d'échantillons disponibles, importe peu. Le nombre possible de combinaisons devient rapidement assez important pour que (par exemple) 100 itérations de 10 fois le CV ne courent pas un risque important d'être des doublons. En outre, plus d'échantillons d'apprentissage signifie généralement que vous vous trouvez dans une partie plus plate de la courbe d'apprentissage, de sorte que la différence entre les modèles de substitution et le modèle "réel" formé sur tous les échantillons devient négligeable.k n
la source
Plus grand K signifie moins de parti pris pour surestimer l'erreur réelle attendue (car les plis de formation seront plus proches de l'ensemble de données total), mais plus grande variance et plus longue durée d'exécution (plus vous vous rapprocherez du cas limite: CV sans omission).
Si la pente de la courbe d'apprentissage est suffisamment plate à training_size = 90% du jeu de données total, le biais peut être ignoré et K = 10 est raisonnable.
De plus, plus K vous donne plus d’échantillons pour estimer un intervalle de confiance plus précis (en utilisant l’erreur-type paramétrique supposant une normalité de la distribution des erreurs du test de CV ou un IC bootstrap non paramétrique qui ne fait que fonder l’hypothèse qui n’est pas vraiment vraie CV ne sont pas indépendants les uns des autres).
Edit: sous-estimer => surestimer la vraie erreur attendue
Edit: la partie de cette réponse concernant les variances plus élevées pour K ou LOOCV est probablement fausse (pas toujours vraie). Plus de détails avec les simulations dans cette réponse: Biais et variance dans la validation croisée non-un-out vs K-fold (merci à Xavier Bourret Sicotte pour ce travail).
la source
Je ne sais pas comment cela
K
affecte la précision et la généralisation, et cela dépend peut-être de l'algorithme d'apprentissage, mais cela affecte certainement la complexité de calcul presque linéairement (asymptotiquement, linéairement) pour les algorithmes d'apprentissage avec une complexité algorithmique linéaire dans le nombre d'instances d'apprentissage. Le temps de calcul nécessaire à la formation augmenteK-1
si le temps de formation est linéaire dans le nombre d'instances de formation. Donc, pour les petits ensembles de formation, j’examinerai les aspects de précision et de généralisation, en particulier étant donné que nous devons tirer le meilleur parti d’un nombre limité d’instances de formation.Cependant, pour les grands ensembles d’entraînement et les algorithmes d’apprentissage à forte croissance de complexité informatique asymptotique du nombre d’instances d’entraînement (au moins linéaire), je sélectionne simplement
K=2
qu’il n’ya pas d’augmentation du temps de calcul d’un algorithme d’entraînement à complexité asymptotique linéaire dans le nombre. d'instances de formation.la source
Solution:
Commentaire: Nous pouvons également choisir 20% au lieu de 30%, selon la taille que vous souhaitez choisir comme ensemble de test.
Exemple:
Si taille du jeu de données: N = 1500; K = 1500/1500 * 0,30 = 3,33; On peut choisir K comme 3 ou 4
Remarque:
Une valeur K élevée en omettant une validation croisée entraînerait un sur-ajustement. Une valeur K faible en omettant une validation croisée entraînerait un sous-ajustement.
L’approche pourrait être naïve, mais serait toujours préférable que de choisir k = 10 pour un ensemble de données de différentes tailles.
la source