Différences entre validation croisée et amorçage pour estimer l'erreur de prédiction

103

J'aimerais connaître votre avis sur les différences entre la validation croisée et l’amorçage pour estimer l’erreur de prédiction.

Est-ce qu'on travaille mieux pour de petites tailles de données ou de grands ensembles de données?

subvention
la source

Réponses:

88

Cela revient à la variance et au biais (comme d'habitude). Le CV tend à être moins biaisé, mais le CV au pli K a une variance assez grande. Par ailleurs, l’amorçage a tendance à réduire considérablement la variance mais donne des résultats plus biaisés (ils ont tendance à être pessimistes). D'autres méthodes d'amorçage ont été adaptées pour traiter le biais d'amorçage (telles que les règles 632 et 632+).

Deux autres approches sont "CV Monte Carlo" ou "CV départ groupe" qui effectue de nombreuses fractionnements aléatoires des données (un peu comme des fractionnements de mini-formation et de test). La variance est très faible pour cette méthode et le biais n'est pas trop grave si le pourcentage de données dans la conservation est faible. En outre, le CV répété fait plusieurs fois le pli K et donne une moyenne des résultats similaire à celle du pli K normal. Je suis très partisan de cela, car cela maintient le faible biais et réduit la variance.

Modifier

Pour les grands échantillons, les problèmes de variance deviennent moins importants et la partie informatique est davantage un problème. Je voudrais encore coller par CV répété pour les échantillons de petite et grande taille.

Quelques recherches pertinentes sont ci-dessous (en particulier Kim et Molinaro).

Références

Bengio, Y. et Grandvalet, Y. (2005). Biais dans l'estimation de la variance de la validation croisée par k-fold. Modélisation et analyse statistiques de problèmes de données complexes, 75–95.

Braga-Neto, UM (2004). La validation croisée est-elle valable pour la classification par micropuce de petits échantillons Bioinformatics, 20 (3), 374–380. doi: 10.1093 / bioinformatique / btg419

Efron, B. (1983). Estimation du taux d'erreur d'une règle de prédiction: amélioration de la validation croisée. Journal de l'American Statistical Association, 316–331.

Efron, B. et Tibshirani, R. (1997). Améliorations sur la validation croisée: Le. Méthode 632+ bootstrap. Journal de l'American Statistical Association, 548–560.

Furlanello, C., Merler, S., Chemini, C. et Rizzoli, A. (1997). Application de la règle bootstrap 632+ aux données écologiques. WIRN 97.

Jiang, W. et Simon, R. (2007). Une comparaison des méthodes bootstrap et une approche bootstrap ajustée pour estimer l'erreur de prédiction dans la classification des puces. Statistics in Medicine, 26 (29), 5320-5334.

Jonathan, P., Krzanowski, W. et McCarthy, W. (2000). Utilisation de la validation croisée pour évaluer les performances en prévision multivariée. Statistics and Computing, 10 (3), 209-222.

Kim, J.-H. (2009). Estimation du taux d'erreur de classification: validation croisée répétée, rétention et amorçage répétés. Statistiques de calcul et d'analyse de données, 53 (11), 3735–3745. doi: 10.1016 / j.csda.2009.04.009

Kohavi, R. (1995). Une étude de la validation croisée et du bootstrap pour l'estimation de la précision et la sélection du modèle. Conférence commune internationale sur l'intelligence artificielle, 14, 1137-1145.

Martin, J. et Hirschberg, D. (1996). Petits échantillons de statistiques pour les taux d'erreur de classification I: Mesures du taux d'erreur.

Molinaro, AM (2005). Estimation d'erreur de prévision: comparaison de méthodes de rééchantillonnage. Bioinformatics, 21 (15), 3301-3307. doi: 10.1093 / bioinformatique / bti499

Sauerbrei, W., & Schumacher1, M. (2000). Bootstrap et validation croisée pour évaluer la complexité des modèles de régression pilotée par les données. Analyse des données médicales, 26–28.

Tibshirani, RJ, et Tibshirani, R. (2009). Une correction de biais pour le taux d'erreur minimum dans la validation croisée. Pré-impression Arxiv arXiv: 0908.2904.

topepo
la source
2
Le parti pris Bootstrap n’est pas pesimiste, il est optimiste (Simple Bootstrap pas .0632). En effet, Bootstrap utilise beaucoup d’éléments d’entraînement pour tester le modèle, ce qui donne beaucoup de poids à l’échantillon.
D1X
33

@ Frank Harrell a beaucoup travaillé sur cette question. Je ne connais pas de références spécifiques.

Mais je considère plutôt que les deux techniques ont des finalités différentes. La validation croisée est un bon outil pour choisir un modèle. Elle vous permet d’éviter de vous tromper en vous faisant croire que vous avez un bon modèle alors que vous surappliquez trop.

Lorsque votre modèle est corrigé, l'utilisation du bootstrap est plus logique (du moins pour moi).

Il existe une introduction à ces concepts (plus les tests de permutation) utilisant R à l' adresse http://www.burns-stat.com/pages/Tutor/bootstrap_resampling.html

Patrick Burns
la source
2
Est-il judicieux d’utiliser d’abord CV pour sélectionner un modèle, puis d’amorcer le processus sur les mêmes données pour évaluer les erreurs de vos estimations? Plus précisément, je souhaite effectuer une régression linéaire à l'aide de ML sur des données avec un bruit non gaussien inconnu.
sebhofer
9

Je crois comprendre que l’amorçage est un moyen de quantifier l’incertitude de votre modèle, tandis que la validation croisée est utilisée pour la sélection du modèle et la mesure de la précision prédictive.

Glen
la source
merci beaucoup pour les réponses. Je pensais que l’amorçage était préférable lorsque vous avez un petit ensemble de données (<30 obs). Non?
accorder
Je pense que oui. La validation croisée peut ne pas être raisonnable si votre échantillon est petit. Vous pouvez laisser une validation croisée absente, mais cela a tendance à être trop optimiste.
Glen
Notez également que le fait d’amorcer avec un petit échantillon entraînera des estimations biaisées, comme indiqué dans le document original d’Efron.
Glen
Mesurer l’exactitude prédictive n’est-il pas un moyen de quantifier l’incertitude? Je comprends que le CV est plus courant pour la sélection du modèle, mais supposons que je veuille estimer l'ASC d'un LASSO. Le CV ou l'amorçage sont-ils meilleurs?
Max Ghenis
9

Une différence est que la validation croisée, comme jackknife, utilise l’ensemble de vos points de données, alors que l’amorçage, qui ré-échantillonne vos données de manière aléatoire, peut ne pas atteindre tous les points.

Vous pouvez démarrer aussi longtemps que vous le souhaitez, ce qui signifie un rééchantillonnage plus important, ce qui devrait vous aider avec des échantillons plus petits.

La moyenne de validation croisée ou jackknife sera la même que la moyenne de l'échantillon, alors qu'il est très peu probable que la moyenne de bootstrap soit identique à la moyenne de l'échantillon.

Étant donné que la validation croisée et le poids du jackknife sont identiques, ils doivent avoir un intervalle de confiance plus petit (bien que éventuellement incorrect) par rapport au bootstrap.

Neil McGuigan
la source
2
Neil, il semble qu'au moins 2 de vos déclarations soient fausses. 1. Même si chaque échantillon boostrap couvre environ 63% des points de données d'origine, si nous échantillonnons de nombreux échantillons bootstrap (par exemple 10 000) comme nous le faisons habituellement, la probabilité que chaque point soit couvert par au moins l'un d'eux est essentiellement de 100%. 2. Je viens de faire une vérification numérique rapide - la moyenne des échantillons bootstrap et out-of-bootstrap est très proche de la moyenne des données complètes. Vous pouvez vérifier vous
Kochede
Voici un code (cliquez sur "Modifier" pour le voir formaté): import numpy en tant que np, pandas en tant que pd n = 1000 B = 1000 y = np.random.randn (n) signifieb, meansoob = [], [] pour b in plage (B): ib = np.random.choice (n, n, remplacer = vrai) meanb = y [ib] .mean () signifieb.append (meanb) indoob = np.ones (n, dtype = bool) indoob [ib] = False meanoob = y [indoob] .mean () meansoob.append (meanoob) pd.Series (meansb) .hist (histtype = 'step') pd.Series (meansoob) .hist (histtype = 'step' ) print np.mean (signifieb), np.mean (meansoob), pd.Series (y) .mean ()
Kochede
@Kochede "essentiellement 100%" n'est pas 100%. "Très proche de la moyenne" n'est pas la même chose que la même chose. Vous utilisez des mots familiers. Je ne me trompe pas
Neil McGuigan
Donc, non seulement vous donnez de mauvaises réponses, mais vous insistez également sur elles avec démagogie, d'accord. La couverture attendue des données par les échantillons bootstrap converge rapidement à 100% avec un nombre croissant d'échantillons. Dans l'expérience ci-dessus, après moins de 10 échantillons d'amorçage, tous les points de données sont touchés par l'amorçage. De même, les attentes concernant la moyenne des échantillons bootstrap sont égales à la moyenne de l'échantillon. Et dans l'expérience ci-dessus après 1000 échantillons bootstrap, la différence est inférieure à 0,1% (utilisez np.random.rand au lieu de randn, car pour randn, la moyenne est 0)
Kochede
Voici le code mis à jour pour votre référence: import numpy as np, pandas as pd; n = 1000; B = 1000; y = np.random.rand (n); signifieb = []; covered = np.zeros (n, dtype = bool); couverture = []; Boucle de début pour b dans la plage (B): ib = np.random.choice (n, n, replace = True); couvert [ib] = vrai; couverture.append (covered.sum () * 1.0 / n); meanb = y [ib] .mean (); signifieb.append (meanb); # couverture d'impression en boucle finale [: 10]; print np.mean (meansb), pd.Series (y) .mean (); print (np.mean (meansb) - pd.Series (y) .mean ()) / pd.Series (y) .mean ();
Kochede
2

Ce sont deux techniques de ré-échantillonnage:

Dans la validation croisée, nous divisons les données de manière aléatoire en kfold et cela aide à sur-adapter, mais cette approche a son inconvénient. Comme il utilise des échantillons aléatoires, certains échantillons produisent une erreur majeure. Afin de minimiser le CV, il existe des techniques, mais il n’est pas aussi puissant avec des problèmes de classification. Bootstrap aide en cela, il améliore l'erreur de sa propre vérification d'échantillon .. pour plus de détails s'il vous plaît se référer ..

https://lagunita.stanford.edu/c4x/HumanitiesScience/StatLearning/asset/cv_boot.pdf

Reeves
la source