Validation en attente et validation croisée

54

À mes yeux, il semble que la validation en attente est inutile. En d’autres termes, scinder le jeu de données original en deux parties (formation et test) et utiliser le score de test comme mesure de généralisation est quelque peu inutile.

La validation croisée des plis en K semble donner de meilleures approximations de la généralisation (comme elle s'entraîne et teste sur chaque point). Alors, pourquoi utiliserions-nous la validation standard de la réserve? Ou même en parler?

l'amibe dit de réintégrer Monica
la source
10
pourquoi pensez-vous que c'est inutile? Vous pouvez lire la section 7 de la théorie de la théorie de l'apprentissage statistique Éléments de statistique pour une analyse formelle de ses avantages et de ses inconvénients. Statistiquement, k-fold est mieux, mais utiliser un ensemble de test n’est pas forcément mauvais. Intuitivement, vous devez considérer qu'un ensemble de test (lorsqu'il est utilisé correctement) est en fait un ensemble de données qui n'a pas du tout été utilisé lors de la formation. Il est donc utile d’évaluer un modèle. De plus, le k-fold est super cher, donc c’est une sorte d ’" approximation "de ce que fait le k-fold (mais pour quelqu'un avec une faible puissance de calcul).
Charlie Parker
Sûr. D'un point de vue théorique, le pli K est plus précis mais légèrement plus coûteux en calcul. La question était: pourquoi ne pas TOUJOURS faire la validation croisée des plis en K?
2
Je vois. Je dirais que la raison est généralement toujours informatique. K-fold se rapproche mieux de l'erreur de généralisation, donc d'un point de vue statistique, K-fold est la méthode de choix, je crois. La mise en place est beaucoup plus simple à mettre en œuvre ET ne nécessite pas de formation, autant de modèles. En pratique, la formation d'un modèle peut être assez coûteuse.
Charlie Parker
1
Oui, mais je pense que l'argument "trop ​​coûteux en calcul" est assez fragile. Presque tout le temps, nous visons à développer les modèles les plus précis. Pourtant, il existe un paradoxe dans lequel bon nombre des expériences menées dans la littérature ne disposent que d’un seul ensemble de validation provisoire.
1
Question - Éléments de la théorie 7.10.1 de la théorie de l'apprentissage statistique intitulé "Validation croisée du pli K" semble indiquer qu'il est idéal de garder les données de test entièrement séparées des données de formation (comme dans la validation par attente), et la validation du pli K n'est qu'un compromis car les données sont souvent rares. Je suis encore assez novice en statistiques. Pouvez-vous préciser en quoi la validation croisée est plus précise?
numX

Réponses:

21

Ma seule hypothèse est que vous pouvez rester avec trois heures d'expérience en programmation; l'autre prend en principe une semaine et six mois en pratique.

En principe, c'est simple, mais écrire du code est fastidieux et prend du temps. Comme le dit si bien Linus Torvalds: "Les mauvais programmeurs s'inquiètent du code. Les bons programmeurs s'inquiètent des structures de données et de leurs relations." Beaucoup de personnes qui font des statistiques sont de mauvais programmeurs, sans que ce soit leur faute. Effectuer une validation croisée des plis multiples efficacement (et par là, je veux dire, d’une manière qui ne soit pas terriblement frustrante à déboguer et à utiliser plus d’une fois) dans R nécessite une compréhension vague des structures de données, mais ces structures sont généralement ignorées dans "intro". à la programmation statistique ". C'est comme la personne âgée qui utilise Internet pour la première fois. Ce n'est vraiment pas difficile, il faut juste une demi-heure supplémentaire pour comprendre la première fois, mais c'est tout nouveau et ça le rend confus, donc c'est facile à ignorer.

Vous avez des questions comme celle - ci: Comment mettre en œuvre une validation de maintien en R . Aucune infraction destinée, que ce soit, au demandeur. Mais beaucoup de gens ne savent tout simplement pas lire le code. Le fait que les gens fassent de la validation croisée est suffisant pour me rendre heureux.

Cela semble ridicule et trivial, mais cela vient de mon expérience personnelle, d’avoir été ce type et d’avoir travaillé avec de nombreuses personnes qui étaient ce type.

shadowtalker
la source
18
C’est peut-être en tant que spécialiste des CS que j’ai une vision légèrement biaisée à ce sujet, mais si vous pouvez implémenter correctement la validation conservée (ce qui implique déjà de scinder le jeu de données en 2 parties et d’en utiliser une pour la formation et l’autre pour les tests), la seule chose que vous devez changer est le ratio de la scission et de tout mettre en boucle. Il semble difficile de croire que ce serait un gros problème.
Voo le
3
@Voo: De plus, savoir programmer ne suffit pas: vous devez comprendre suffisamment le problème pour pouvoir déterminer les facteurs de confusion à prendre en compte lors de la procédure de scission. Voir par exemple stats.stackexchange.com/questions/20010/… . Je pense que je vois ce genre de problèmes plus souvent que des problèmes "purs" de codage (même si on ne le sait jamais: quelqu'un qui est à peine capable de coder une simple division des lignes de la matrice de données commettra aussi l'erreur de niveau supérieur consistant à ne pas séparer par exemple au niveau du patient)
cbeleites soutient Monica
Notez également que vous pouvez effectuer le fractionnement correct (par exemple patient / jour de mesure / ...) sans aucune programmation en séparant les fichiers produits par l'instrument de mesure ...
cbeleites prend en charge Monica
5
Aux électeurs: notez que j'ai posé une question distincte qui remet en question ma logique. stats.stackexchange.com/q/108345/36229
shadowtalker
1
Je ne pense pas que la réponse expliquant la différence entre deux méthodes de validation croisée ne devrait jamais être du temps humain à apprendre, absurdement partial et peu utile
rgalbo
40

La conservation est souvent utilisée comme synonyme de validation avec un ensemble de tests indépendant, bien qu'il existe des différences cruciales entre la division aléatoire des données et la conception d'une expérience de validation pour des tests indépendants.

Des ensembles de tests indépendants peuvent être utilisés pour mesurer les performances de généralisation qui ne peuvent pas être mesurées par ré-échantillonnage ou validation par attente, par exemple les performances pour des cas futurs inconnus (= cas mesurés ultérieurement, une fois la formation terminée). Ceci est important pour savoir combien de temps un modèle existant peut être utilisé pour de nouvelles données (pensez par exemple à la dérive d’instrument). Plus généralement, cela peut être décrit comme une mesure de la performance d'extrapolation afin de définir les limites d'applicabilité.

Un autre scénario dans lequel la conservation peut être réellement bénéfique est le suivant: il est très facile de s'assurer que les données de formation et de test sont correctement séparées - beaucoup plus facile que pour la validation du rééchantillonnage:

  1. décider de la scission (p. ex. faire une répartition aléatoire des cas)
  2. mesure
  3. données de mesure et de référence des cas de formation => modélisation \ ni les mesures ni la référence des cas de test ne sont transmises à la personne qui modélise.
  4. modèle final + mesures des cas sortis => prédiction
  5. comparer les prévisions avec la référence pour les cas traités.

Selon le niveau de séparation dont vous avez besoin, chaque étape peut être réalisée par quelqu'un d'autre. En premier lieu, ne pas transmettre de données (pas même les mesures) des cas de test au modélisateur permet de s'assurer que rien ne fuit dans le processus de modélisation. À un deuxième niveau, les mesures finales du modèle et du test élémentaire pourraient être transmises à quelqu'un d'autre, et ainsi de suite.

Oui, vous payez pour cela par la moindre efficacité des estimations en attente par rapport à la validation du ré-échantillonnage. Mais j'ai vu de nombreux articles dans lesquels je soupçonne que la validation du rééchantillonnage ne sépare pas correctement les cas (dans mon domaine, nous avons beaucoup de données en cluster / hiérarchiques / groupées).

J'ai appris ma leçon sur les fuites de données pour le rééchantillonnage en retirant un manuscrit une semaine après la soumission, quand j'ai découvert que j'avais eu une fuite non détectée (en exécutant des tests de permutation parallèlement) dans ma procédure de fractionnement (erreur de frappe dans le calcul d'index).

Parfois, conserver est plus efficace que de trouver une personne disposée à prendre le temps de vérifier le code de rééchantillonnage (par exemple, pour les données en cluster) afin d'obtenir le même niveau de certitude quant aux résultats. Cependant, à mon humble avis, il n’est généralement pas efficace de le faire avant d’être au stade où vous devez quand même mesurer, par exemple, les performances futures (premier point) - autrement dit, lorsque vous devez malgré tout configurer une expérience de validation pour le modèle existant.

OTOH, dans des situations de taille réduite, le maintien n'est pas une option: vous devez disposer de suffisamment de tests élémentaires pour que les résultats soient suffisamment précis pour permettre la conclusion nécessaire (rappelez-vous: 3 corrects sur 3 tests de classification signifient une intervalle de confiance binomial de 95% qui va bien au-dessous de 50:50 deviner!) Frank Harrell indiquerait la règle de base qui au moins ca. 100 cas (tests) sont nécessaires pour mesurer correctement une proportion [telle que la fraction des cas correctement prédits] avec une précision utile.


Mise à jour: il existe des situations dans lesquelles une division correcte est particulièrement difficile à réaliser et où la validation croisée devient irréalisable. Considérons un problème avec un certain nombre de facteurs de confusion. La scission est facile si ces facteurs de confusion sont strictement imbriqués (par exemple, une étude portant sur plusieurs patients comporte plusieurs échantillons de chaque patient et analyse plusieurs cellules de chaque échantillon): vous effectuez une scission au niveau le plus élevé de la hiérarchie d'échantillonnage (selon le patient). . Mais vous pouvez avoir des facteurs de confusion indépendants qui ne sont pas imbriqués, par exemple une variation quotidienne ou une variance provoquée par différents expérimentateurs exécutant le test. Vous devez ensuite vous assurer que le partage est indépendant pour tousconfondeurs au plus haut niveau (les confondeurs imbriqués seront automatiquement indépendants). Il est très difficile d'y remédier, car certains facteurs de confusion ne sont identifiés qu'au cours de l'étude. Il peut être plus efficace de concevoir et de réaliser une expérience de validation que de traiter des scissions qui ne laissent pratiquement aucune donnée, ni pour la formation, ni pour le test des modèles de substitution.

cbeleites soutient Monica
la source
6
J'aimerais pouvoir donner plus que +1 pour cette réponse très complète. J'ai particulièrement aimé que vous mentionniez votre problème avec une fuite de données, car cela montre bien qu'il peut être loin d'être trivial d'éliminer de tels problèmes, même pour les experts. C'est un bon test de réalité!
Marc Claesen
Tu ne supplie pas la question? Oui, le fractionnement est difficile, à cause des facteurs confondants, mais peu importe que vous fassiez une validation à la suite ou une validation croisée à plis multiples, n'est-ce pas? (Merci pour une réponse perspicace malgré tout!)
Nils von Barth
1
@NilsvonBarth: Je ne vois pas en quoi mes arguments sont circulaires: le PO demande "pourquoi [du tout] utilise la validation de conservation", et je donne beaucoup de raisons pratiques. L’utilisation statistique la plus efficace d’un nombre limité de cas n’est pas toujours la propriété la plus importante du plan d’étude. (Bien que, dans mon expérience, ce soit souvent le cas, en raison du nombre extrêmement limité de cas: je conseille beaucoup plus souvent un CV à plis multiples répété / itéré au lieu d'être conservé). Pour certains facteurs de confusion, le fractionnement physique est possible et facile - et un moyen très efficace d’empêcher les aperçus furtifs. Qui sait si nous trouverons cela doublement ...
cbeleites soutient Monica
Une analyse en aveugle des données statistiques peut être nécessaire contre un trop grand nombre de faux positifs à un moment donné?
cbeleites soutient Monica le
2
@NilsvonBarth: Faites attention à ne pas vous blesser pour garantir votre indépendance: il est facile de mettre en place un tel hold-up (par des cas de retenue physiques , c.-à-d. Que les échantillons de test sont rangés et mesurés seulement après la formation du modèle) souvent, le terme conservation est utilisé pour désigner ce qui ressemble en réalité beaucoup à une scission aléatoire des données - et toutes les possibilités de commettre des erreurs lors de la scission peuvent également être réalisées avec cette opération!
cbeleites soutient Monica
8

knnkk

Donc, pour répondre aux questions:

  1. Pourquoi en parler? Pédagogiquement. Cela vaut la peine de penser à la validation par insertion comme un cas spécial - et seulement occasionnellement utile - d’une méthode par ailleurs très utile, comportant de très nombreuses variantes.

  2. nk

nknkn

Zoë Clark
la source
13
Je ne pense pas que cette stratégie soit identique à la validation 2 fois, car dans cette validation, vous ajusterez deux modèles, puis vous ferez la moyenne des erreurs sur les deux séries non utilisées.
Alex
8

Si votre procédure de sélection et d’ajustement de modèle ne peut pas être codée, c’est parce qu’elle est subjective, ou en partie, en examinant des graphiques et similaires, la validation en attente peut être ce que vous pouvez faire de mieux. (Je suppose que vous pourriez peut-être utiliser quelque chose comme Mechanical Turk dans chaque répertoire CV, même si je n'ai jamais entendu parler de sa réalisation.)

Scortchi - Rétablir Monica
la source
6

Je voulais juste ajouter quelques directives simples mentionnées par Andrew Ng dans notre cours CS 229 à Stanford concernant la validation croisée. Ce sont les pratiques qu'il suit dans son propre travail.

mm20

20<m100km

100<m1,000,000(k=5)m>10,000

m1,000,000(k=5)

Oscillation isopyrique
la source
5

Réponse courte:

k=5

  • modèles complexes
  • résultats finaux qui doivent respecter les contraintes de validité

Vous pourriez vous détendre ceci pour:

  • formation sur de très grands ensembles de données
  • formation de modèles simples
  • prototypage quand le temps est un problème

Certains d'entre vous ont mentionné que la programmation en R pourrait être un problème. Je vous recommande de jeter un coup d'œil au paquet "mlr" . Il encapsule différents packages dans une interface unifiée, offrant également des méthodes de ré-échantillonnage et d'évaluation des performances vraiment avancées.

Jetez un coup d'oeil: http://mlr-org.github.io/mlr-tutorial/release/html/resample/ et: http://mlr-org.github.io/mlr-tutorial/release/html/performance/ index.htm

Quelques explications supplémentaires - ce que fait réellement le CV, c'est casser le compromis de la variance du biais:

Maintenant, le problème que les deux approches tentent de résoudre consiste à estimer l'erreur de généralisation, conditionnée par les données utilisées pour former un modèle.

Holdout a un problème de biais et de variance:

En réduisant la quantité de données que nous testons sur, nous introduisons une variance dans notre erreur de généralisation estimée, car les données de test ne représentent peut-être plus très bien la distribution sous-jacente. Cela en soi n'introduit pas de biais, car, dans l'attente, la performance estimée sera correcte.

Rendre la formation plus petite introduit toutefois un biais pessimiste, car là encore, la distribution sous-jacente n’est pas bien représentée dans les données et le modèle ne peut pas s’ajuster aussi bien aux données. Rendre le jeu de formation très petit introduit également de la variance.

Comme la taille de la formation et de l'ensemble de tests se déterminent, cela nous laisse un compromis: biais pessimiste vs forte variance.

kk1k

La validation croisée est particulièrement importante pour les apprenants plus complexes (variance élevée). Celles-ci coûtent généralement plus cher en calcul, ce qui peut rendre le processus fastidieux.

gcsk
la source
3

Tous ces commentaires sont utiles. Il suffit de prendre un autre en compte. Lorsque vous avez suffisamment de données, Hold-Out est un moyen d'évaluer un modèle spécifique (un modèle SVM spécifique, un modèle CART spécifique, etc.), tandis que si vous utilisez d'autres procédures de validation croisée, vous évaluez des méthodologies (en fonction des conditions de votre problème). ) plutôt que des modèles (méthodologie SVM, méthodologie CART, etc.).

J'espère que c'est utile!

Indo
la source
3

La modélisation avec le temps des données sérieuses est une exception pour moi. K fois ne peut pas fonctionner dans certains cas lorsque vous devez prédire l'avenir sur la base des données précédentes. Les ensembles de tests doivent être les données futures et vous ne pouvez jamais les toucher en phase d’entraînement. ex prédire vendre ou le marché boursier. Tenir est utile dans ces cas.

Qian Liu
la source
Temps de données graves?
nbro
3

Tout simplement; temps. La validation croisée vous lancez la routine d’entraînement k fois (c’est-à-dire une fois pour chaque série non utilisée). Si vous avez des données volumineuses, il vous faudra peut-être plusieurs heures, voire plusieurs jours, pour former le modèle pour un seul jeu de données. Vous devez donc multiplier ce nombre par k lorsque vous utilisez la validation croisée.

Ainsi, bien que la validation croisée soit la meilleure méthode, dans certaines circonstances, ce n'est pas faisable et il aurait peut-être mieux fallu passer du temps à modéliser les données, ou à expérimenter différentes fonctions de perte pour obtenir un meilleur modèle.

Ma préférence personnelle est de prendre des données de validation dans l’ensemble du jeu de données. Par conséquent, plutôt que de prendre un seul bloc de 10% de la tête ou de la queue des données, je prélève 2% sur 5 points dans l’ensemble de données. Cela rend les données de validation un peu plus représentatives de l'ensemble des données.

BigBadMe
la source
Même si c’est une vieille question et une nouvelle réponse, je vote en faveur de cette affirmation, qui remet en question l’affirmation sans fondement selon laquelle "le pli-K est plus précis mais légèrement plus coûteux en calcul", que les autres réponses ignoraient ou passaient trop rapidement.
Le laconique
0

Il convient de noter qu'il n'est pas toujours possible d'appliquer la validation croisée. Considérez les ensembles de données dépendant du temps de sorte que vous souhaitiez utiliser les données historiques pour former un modèle prédictif pour le comportement futur. Dans ce cas, vous devez appliquer la validation de conservation.

Elahe Naserian
la source
2
Dans ce cas, vous devez effectuer une validation en aval.
Neil G