Estimations de la variance dans la validation croisée multipliée par k

27

La validation croisée K-fold peut être utilisée pour estimer la capacité de généralisation d'un classificateur donné. Puis-je (ou devrais-je) également calculer une variance regroupée à partir de tous les cycles de validation afin d'obtenir une meilleure estimation de sa variance?

Sinon, pourquoi?

J'ai trouvé des articles qui utilisent l'écart-type groupé sur des cycles de validation croisée . J'ai également trouvé des articles indiquant explicitement qu'il n'y a pas d'estimateur universel pour la variance de validation . Cependant, j'ai également trouvé des articles montrant des estimateurs de variance pour l'erreur de généralisation (je suis toujours en train de lire et d'essayer de comprendre celle-ci). Qu'est-ce que les gens font (ou rapportent) réellement dans la pratique?

EDIT: Lorsque CV est utilisé pour mesurer l'erreur de classification brute (c.-à-d. Qu'un échantillon a été correctement étiqueté ou non, par exemple vrai ou faux), il peut ne pas être logique de parler d'une variance groupée. Cependant, je parle du cas où la statistique que nous estimons a une variance définie. Ainsi, pour un repli donné, nous pouvons nous retrouver avec une valeur pour la statistique et une estimation de la variance. Il ne semble pas juste de rejeter ces informations et de ne considérer que la statistique moyenne. Et même si je suis conscient que je pourrais construire une estimation de la variance en utilisant des méthodes de bootstrap, (si je ne me trompe pas), cela ignorerait toujours les variances de pli et ne prendrait en compte que les estimations statistiques (plus nécessiterait beaucoup plus de puissance de calcul).

César
la source
Avez-vous calculé la variance en considérant les deux façons possibles de voir si elles diffèrent considérablement l'une de l'autre?
zeferino
Oui je l'ai fait. Dans certaines expériences, il y a eu un changement d'environ un ordre de grandeur entre la variance et la variance groupée pour les échantillons d'apprentissage. Il n'y avait pas beaucoup de différence pour les échantillons de validation. Les changements les plus importants semblaient être associés à des modèles moins précis.
Cesar
1
@Cesar: belle observation: vos modèles sont très instables (forte variance entre les itérations). En classification (sauf si le classificateur est pire que de deviner), des prédictions instables conduiront à de fausses prédictions. Une pensée illustrative pour cela est qu'une déviation par rapport à une prédiction correcte sera toujours dans la direction "fausse", il n'y a pas trop haut qui s'annulerait avec trop bas.
cbeleites prend en charge Monica
1
@cbeleites: cela ne serait-il pas quelque peu attendu alors, car les changements de variance importants se produisent principalement avec des modèles affichant des taux d'erreur plus élevés? Au fait, bonne mise à jour de votre réponse. Je dois encore le lire plus attentivement, mais je suis déjà très reconnaissant. Merci.
Cesar
1
@Cesar: Thx. Bien sûr, il est prévu, une façon moins illustrative de dire que c'est la formule de variance pour les proportions (voir ma réponse): plus le vrai taux d'erreur est extrême, plus la variance est faible, la variance maximale est au taux d'erreur = 50%.
cbeleites prend en charge Monica

Réponses:

13

Question très intéressante, je vais devoir lire les articles que vous donnez ... Mais peut-être que cela nous amènera dans le sens d'une réponse:

J'aborde habituellement ce problème de manière très pragmatique: j'itère la validation croisée k-fold avec de nouvelles divisions aléatoires et calcule les performances comme d'habitude pour chaque itération. Les échantillons de test globaux sont alors les mêmes pour chaque itération, et les différences proviennent de différentes divisions des données.

C'est ce que je signale, par exemple, comme le 5e au 95e centile des performances observées par rapport au poids. échange jusqu'à échantillons pour de nouveaux échantillons et en discuter comme mesure de l'instabilité du modèle.nk1

Note latérale: je ne peux de toute façon pas utiliser des formules qui nécessitent la taille de l'échantillon. Comme mes données sont structurées en grappes ou hiérarchiques (de nombreuses mesures similaires mais non répétées du même cas, généralement plusieurs [centaines] emplacements différents du même échantillon), je ne connais pas la taille effective de l'échantillon.

comparaison avec le bootstrap:

  • les itérations utilisent de nouvelles divisions aléatoires.

  • la principale différence est le rééchantillonnage avec (bootstrap) ou sans (cv) remplacement.

  • bootstrap a des avantages par rapport à cv en termes de certaines propriétés statistiques (asymptotiquement correct, peut-être avez-vous besoin de moins d'itérations pour obtenir une bonne estimation)

  • cependant, avec le cv, vous avez l’avantage de vous garantir que

    • le nombre d'échantillons d'apprentissage distincts est le même pour tous les modèles (important si vous souhaitez calculer des courbes d'apprentissage)
    • chaque échantillon est testé exactement une fois à chaque itération
  • certaines méthodes de classification élimineront les échantillons répétés, donc le bootstrap n'a pas de sens

Variance pour la performance

réponse courte: oui, il est logique de parler de variance dans une situation où seuls {0,1} résultats existent.

Jetez un œil à la distribution binomiale (k = succès, n = tests, p = probabilité réelle de succès = k / n moyen):

σ2(k)=np(1p)

pp^

  • Fleiss: Méthodes statistiques pour les taux et les proportions
  • Forthofer et Lee: La biostatistique a une belle introduction.

p^=kn

σ2(p^)=p(1p)n

Cela signifie que l'incertitude pour mesurer les performances du classificateur ne dépend que des performances réelles p du modèle testé et du nombre d'échantillons de test.

Dans la validation croisée, vous supposez

  1. que les k modèles "de substitution" ont les mêmes performances réelles que le "vrai" modèle que vous construisez habituellement à partir de tous les échantillons. (La ventilation de cette hypothèse est le biais pessimiste bien connu).

  2. que les k modèles «de substitution» ont les mêmes performances réelles (sont équivalents, ont des prédictions stables), vous êtes donc autorisé à regrouper les résultats des k tests.
    Bien entendu, non seulement les k modèles "de substitution" d'une itération de cv peuvent être regroupés, mais les modèles ki d'i itérations de k-fold cv.

Pourquoi répéter?

La principale chose que les itérations vous disent est l'instabilité du modèle (prédiction), c'est-à-dire la variance des prédictions de différents modèles pour le même échantillon.

p^

Et oui, ce sont des informations importantes.

nbootstrapkniter. cvn1nσ2(p^)=p(1p)n

pknp^n

Si vous observez l'instabilité du modèle, la moyenne regroupée est une meilleure estimation de la performance réelle. La variance entre les itérations est une information importante, et vous pouvez la comparer à la variance minimale attendue pour un ensemble de test de taille n avec des performances moyennes réelles sur toutes les itérations.

cbeleites soutient Monica
la source
Vous itérez avec de nouvelles divisions aléatoires, avec remplacement, comme dans le bootstrap? Ou vous répétez la validation croisée k-fold plusieurs fois? C'est intéressant, car cela ne ressemble pas à du bootstrap mais peut fonctionner ainsi. Mais combien de réplications effectuez-vous? Cela pourrait devenir très coûteux facilement.
Cesar
@Cesar: il est très similaire au bootstrap, voir la réponse développée.
cbeleites prend en charge Monica
Comment CV laisse-t-il le "même nombre d'échantillons de formation distincts" pour chaque modèle, mais pas le bootstrapping? Je ne suis pas, car les CV "ensembles de données répliqués" sont une combinaison différente d'observations - comment peuvent-ils éventuellement fournir le même nombre d'observations distinctes? Peut-être supposez-vous que chaque enregistrement est distinct dans l'ensemble de formation d'origine?
Probabilogic
@probabilityislogic: les ensembles de données de réplication CV sont plus petits que l'ensemble de données d'origine. Ainsi, différentes répliques de ce type peuvent être produites même avec un rééchantillonnage sans remplacement. Le rééchantillonnage avec remplacement vous permet de tirer plusieurs fois le même enregistrement. Ainsi, le nombre d' enregistrements uniques peut varier. Oui, je suppose que les enregistrements originaux sont distincts. Afin de conserver l'indépendance statistique qui est cruciale pour de nombreuses applications, le rééchantillonnage doit être effectué au plus haut niveau de la hiérarchie des données. (Par exemple, je travaille avec des données patient avec des centaines de lignes pour chaque patient => rééchantillonner les patients)
cbeleites prend en charge Monica
1
n
1

N'oubliez pas que le CV n'est qu'une estimation et ne peut jamais représenter la «vraie» erreur de généralisation. En fonction de la taille de votre échantillon (qui aura un impact sur votre nombre de plis ou la taille des plis), vous pouvez être gravement limité dans votre capacité à calculer des estimations de paramètres de la distribution de l'erreur de généralisation. À mon avis (et je l'ai vu prétendu dans divers manuels, `` Discovery Discovery with Support Vector Machines'-Lutz Hamel), vous pouvez faire une variante d'amorçage de CV pour estimer la distribution de l'erreur de généralisation, mais une norme 10- 1 (par exemple) une fois désactivé, le CV ne vous donnera pas suffisamment de points de données pour faire des inférences sur la véritable erreur de génération. Le Bootstrapping vous oblige à prendre plusieurs échantillons avec remplacement de votre formation / test / val en effectuant efficacement plusieurs (par exemple 1000 ou plus) 10-1 (ou autre) tests de CV. Vous prenez ensuite votre distribution d'échantillon de moyennes pour chaque test CV comme une estimation de la distribution d'échantillonnage de la moyenne pour la population d'erreurs CV et à partir de cela, vous pouvez estimer les paramètres de distribution, c'est-à-dire la moyenne, la médiane, la std min max Q1 Q3, etc. C'est un peu de travail, et à mon avis, ce n'est vraiment nécessaire que si votre application est suffisamment importante / risquée pour justifier le travail supplémentaire. c'est-à-dire peut-être dans un environnement marketing où l'entreprise est simplement heureuse d'être meilleure que aléatoire alors peut-être pas nécessaire. MAIS si vous essayez d'évaluer les réactions des patients aux médicaments à haut risque ou de prédire les attentes de revenus pour de gros investissements, vous pouvez être prudent de le faire.

clancy
la source
Il s'agit d'une estimation, mais on pourrait en dire autant de pratiquement toute utilisation d'une statistique. Cependant, lorsque chaque repli a déjà une estimation de variance, il ne semble pas correct de rejeter ces informations. J'ai mis à jour la question avec des clarifications.
Cesar
Peut-être que je ne comprends pas. Je ne comprends pas vraiment pourquoi vous agonisez sur la variance d'un seul pli?
clancy
Exécuter un seul CV de 10 fois n'est pas vraiment bon marché pour le problème particulier que j'essaie de résoudre. Vous avez raison, je pourrais estimer la variance en prenant plusieurs échantillons avec remplacement comme dans le bootstrap. Mais prendre un grand nombre de CV, même quelques centaines, pourrait être très peu pratique dans mon cas. Je cherche un moyen (s'il y en a) de combiner des estimations de variance de pli individuelles afin que je puisse au moins réduire le nombre d'échantillons bootstrap nécessaires. Et d'ailleurs, la curiosité.
Cesar
Ah ok. Peut-être que la variance de chacun des 10 plis moyens par rapport à la moyenne globale des plis sera une variable aléatoire choisie dans la distribution d'échantillonnage pour les variances ... (qui je pense est un chi carré ou un F dist)
clancy
@clancy: avec 10-1, voulez-vous dire un cv de sortie pour n = 10 échantillons? Notez que pour les itérations de non-sortie, cela n'a pas de sens.
cbeleites prend en charge Monica