À 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?
machine-learning
cross-validation
validation
l'amibe dit de réintégrer Monica
la source
la source
Réponses:
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.
la source
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:
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.
la source
Donc, pour répondre aux questions:
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.
la source
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.)
la source
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.
la source
Réponse courte:
Vous pourriez vous détendre ceci pour:
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.
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.
la source
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!
la source
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.
la source
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.
la source
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.
la source