Comment puis-je m'assurer que les données de test ne fuient pas dans les données d'entraînement?

60

Supposons que quelqu'un construise un modèle prédictif, mais que quelqu'un ne connaisse pas nécessairement les principes appropriés des statistiques ou de l'apprentissage automatique. Peut-être aidons-nous cette personne dans son apprentissage, ou peut-être utilise-t-elle une sorte de progiciel dont l'utilisation requiert un minimum de connaissances.

Maintenant, cette personne pourrait très bien reconnaître que le véritable test provient de l'exactitude (ou de toute autre métrique) sur des données hors échantillon . Cependant, ce qui me préoccupe, c’est qu’il ya beaucoup de subtilités à craindre. Dans le cas le plus simple, ils construisent leur modèle et l'évaluent sur des données de formation, puis sur des données de test conservées. Malheureusement, il peut parfois être trop facile à ce stade de modifier certains paramètres de modélisation et de vérifier les résultats sur les mêmes données "de test". À ce stade, les données ne sont plus de véritables données hors échantillon, et le surajustement peut devenir un problème.

Une solution possible à ce problème serait de suggérer de créer de nombreux jeux de données hors échantillon de sorte que chaque jeu de données de test puisse être supprimé après utilisation et ne pas être réutilisé du tout. Cela nécessite cependant beaucoup de gestion des données, en particulier le fait que la scission doit être effectuée avant l'analyse (vous devez donc savoir combien de scissions au préalable).

Une approche plus conventionnelle est peut-être la validation croisée par k-fold. Cependant, dans un certain sens, cela fait perdre la distinction entre un ensemble de données "formation" et "test" que je pense pouvoir être utile, en particulier pour ceux qui sont encore en train d'apprendre. De plus, je ne suis pas convaincu que cela soit logique pour tous les types de modèles prédictifs.

Y a-t-il un moyen que j'ai négligé pour aider à surmonter le problème de la suralimentation et du test des fuites tout en restant assez clair pour un utilisateur inexpérimenté?

Michael McGowan
la source
Michael, j'ai fermé un fil en double du site ML et fusionné les réponses ici. N'hésitez pas à éditer cette question pour refléter tous les changements que vous vouliez apporter - je ne veux pas m'engager dans cette voie, de peur de changer votre sens par inadvertance.
whuber
Cette question est ancienne et a une réponse acceptée, mais je ne peux pas m'empêcher de penser que la prémisse initiale semble être en conflit. S'il s'agit d'exercices d'apprentissage, la meilleure façon de l'aborder est de les laisser échouer et de créer un modèle d'overfit qui, par la suite, ne permet pas de bien prédire. (Gardez peut-être un ensemble de données secret secret indiquant que vous leur montrez l'erreur de leur manière.) Mais il semble également que vous avez des personnes non qualifiées qui créent des modèles que quelqu'un va prendre au sérieux et sur lesquels agir, et que vous essayez de minimiser les dommages. à bout de bras. Il y a BEAUCOUP de subtilités, comme vous dites.
Wayne

Réponses:

50

Vous avez raison, il s'agit d'un problème important en apprentissage machine / modélisation statistique. Le seul moyen de résoudre réellement ce problème consiste essentiellement à conserver un ensemble de tests indépendant jusqu'à la fin de l'étude et à l'utiliser pour la validation finale.

Cependant, inévitablement, les gens examineront les résultats de l'ensemble de tests et modifieront ensuite leur modèle en conséquence; Toutefois, cela n'entraînera pas nécessairement une amélioration des performances de généralisation, car la différence de performances de différents modèles peut être largement due à l'échantillon particulier de données de test dont nous disposons. Dans ce cas, en faisant un choix, nous corrigeons effectivement l’erreur de test.

La façon de limiter cela est de réduire autant que possible la variance de l'erreur de test (c'est-à-dire que la variabilité de l'erreur de test serait vérifiée si nous utilisions différents échantillons de données comme ensemble de test, issus de la même distribution sous-jacente). Ceci est plus facilement réalisable en utilisant un grand ensemble de tests si cela est possible, ou par exemple en procédant à l’amorçage ou à la validation croisée s’il n’ya pas beaucoup de données disponibles.

J'ai constaté que ce type de sur-ajustement dans la sélection du modèle est beaucoup plus gênant qu'on ne le pense généralement, en particulier en ce qui concerne l'estimation de la performance, voir

GC Cawley et NLC Talbot, sur-adaptation dans la sélection du modèle et biais de sélection subséquent dans l'évaluation de la performance, Journal of Machine Learning Research, 2010. Research, vol. 11, pp. 2079-2107, juillet 2010 (www)

Ce type de problème affecte particulièrement l'utilisation des ensembles de données de référence, qui ont été utilisés dans de nombreuses études, et chaque nouvelle étude étant implicitement affectée par les résultats des études précédentes, la performance observée sera probablement une estimation trop optimiste de la réalité. performance de la méthode. J'essaie de contourner ce problème en examinant de nombreux jeux de données (pour que la méthode ne soit pas adaptée à un jeu de données spécifique) et en utilisant plusieurs fractionnements de test / formation aléatoires pour l'estimation de la performance (afin de réduire la variance de l'estimation). Cependant, les résultats doivent encore être avertis que ces critères ont été surajustés.

Un autre exemple dans lequel cela se produit concerne les compétitions d’apprentissage automatique avec un tableau de bord basé sur un jeu de validation. Inévitablement, certains concurrents continuent à bricoler leur modèle pour monter plus haut dans le classement, mais finissent par se retrouver en bas du classement final. La raison en est que leurs choix multiples ont sur-ajusté l'ensemble de validation (apprentissage effectif des variations aléatoires dans le petit ensemble de validation).

Si vous ne pouvez pas conserver un ensemble de tests statistiquement pur, alors je crains que les deux meilleures options ne soient (i) collecter de nouvelles données pour créer un nouvel ensemble de tests statistiquement purs ou (ii) faire la mise en garde sur laquelle le nouveau modèle a été fondé sur un choix effectué après avoir observé l'erreur de l'ensemble de tests, l'estimation de performance risque donc d'avoir un biais optimiste.

Dikran Marsupial
la source
1
+1 Je suis impressionné de voir à quel point cette réponse est basée sur l'expérience et à quel point elle répond efficacement à la question.
whuber
3
Bravo whuber, c’est mon principal sujet de recherche depuis deux ans et j’ai constaté que de nombreuses procédures de sélection de modèles largement utilisées dans l’apprentissage automatique sont très fragiles et que plus elles sont évaluées de manière approfondie, moins elles semblent bien fonctionner. Cela ne m'étonnerait pas que de nombreuses méthodes utilisées dans l'apprentissage automatique ne fonctionnent pas mieux que les méthodes plus anciennes et plus simples, tout simplement en raison des procédures de sélection de modèle biaisées utilisées lors de l'évaluation des performances. La question est vraiment bonne, il est important de ne pas faire partie de la procédure de sélection du modèle en bricolant!
Dikran Marsupial
Très intéressant. (J'ai également voté sur la question elle-même parce que votre réponse m'a permis de l'apprécier davantage.)
whuber
2
(+1) Bonne réponse. L'utilisation de plusieurs classificateurs sur le même jeu de données qui donne une mesure trop optimiste de la précision des tests a été discutée dans Sélection d'un classificateur optimal et biais négatif dans l'estimation du taux d'erreur: étude empirique sur la prédiction de grande dimension , BMC MRM 2009, 9:85 (avec quelques diapositives PDF ici ), avec une autre discussion dans Biais de règles multiples dans la comparaison des règles de classification (Yousefi et al., Bioinformatics 2011, 27 (12): 1675).
chl
Merci pour les liens vers les journaux, ils ont l'air intéressants.
Dikran Marsupial
15

Une façon de vous en assurer est de vous assurer que vous avez bien codé tout ce que vous faites pour correspondre au modèle, même le "rafistolage". Ainsi, lorsque vous exécutez le processus à plusieurs reprises, par exemple via une validation croisée, vous gardez la cohérence entre les exécutions. Cela garantit que toutes les sources potentielles de variation sont capturées par le processus de validation croisée.

L’autre élément essentiel est de vous assurer que vous disposez d’un échantillon représentatif dans les deux ensembles de données. Si votre jeu de données n'est pas représentatif du type de données que vous prévoyez utiliser pour prédire, vous ne pouvez pas faire grand chose. Toute modélisation repose sur l'hypothèse que "l'induction" fonctionne: les choses que nous n'avons pas observées se comportent comme celles observées.

En règle générale, éloignez-vous des procédures complexes d'ajustement de modèle, sauf si (i) vous savez ce que vous faites, et (ii) que vous avez essayé les méthodes les plus simples et que vous vous êtes rendu compte qu'elles ne fonctionnaient pas, et que la méthode complexe corrige le problème. problèmes avec la méthode simple. "Simple" et "complexe" s'entendent au sens de "simple" ou "complexe" pour celui qui effectue l'ajustement. La raison pour laquelle cela est si important est que cela vous permet d'appliquer ce que j'aime appeler un "test de détection" aux résultats. Le résultat est-il correct? Vous ne pouvez pas "sentir" les résultats d'une procédure que vous ne comprenez pas.

N>>p p Np N<p

1Nieitest=(1hii)1eitraineitrainhiiiihii=ppN>>phiip=21N×pX

hii=xiT(XTX)1xi=1Nsx2(1xi)(x2¯x¯x¯1)(1xi)=1+x~i2N

x¯=N1ixix2¯=N1ixi2sx2=x2¯x¯2x~i=xix¯sxxi1N100x~i=5hii=26100126100=7410010000126100001%10000x~=5025%

N>>p2hii=xiTEET(XTX)1EETxiEXTXΛhii=ziTΛ1zi=j=1pzji2Λjjzi=ETxixi

ke{k}test=(IkH{k})1e{k}trainH{k}=X{k}(XTX)1X{k}TX{k}N>>p

Fondamentalement, tout cela revient à utiliser un terme de pénalité pour tenir compte de la différence entre les erreurs d'apprentissage et de test, telles que BIC ou AIC. Cela produit effectivement le même résultat que l'utilisation d'un ensemble de tests, mais vous n'êtes pas obligé de jeter des informations potentiellement utiles. Avec le code BIC, vous approximez les preuves du modèle, qui ressemble mathématiquement à:

p(D|MiI)=p(y1y2yN|MiI)

Mi

p(D|MiI)=p(y1|MiI)p(y2yN|y1MiI)
=p(y1|MiI)p(y2|y1MiI)p(y3yN|y1y2MiI)
==i=1Np(yi|y1yi1MiI)
log[p(D|MiI)]=i=1Nlog[p(yi|y1yi1MiI)]

Cela suggère une forme de validation croisée, mais lorsque l'ensemble d'apprentissage est mis à jour en permanence, une observation à la fois de l'ensemble d'essai - similaire au filtre de Kalman. Nous prédisons l'observation suivante à partir de l'ensemble de tests en utilisant l'ensemble d'apprentissage actuel, mesurons l'écart par rapport à la valeur observée à l'aide du log-vraisemblance conditionnel, puis mettons à jour l'ensemble d'apprentissage en incluant la nouvelle observation. Cependant, notez que cette procédure digère complètement toutes les données disponibles, tout en veillant à ce que chaque observation soit testée comme un cas "hors échantillon". Il est également invariant, en ce sens que ce que vous appelez "observation 1" ou "observation 10" n'a pas d'importance; le résultat est identique (les calculs peuvent être plus faciles pour certaines permutations que d'autres). La fonction de perte est aussi "adaptative"Li=log[p(yi|y1yi1MiI)]Lii

Je suggérerais que l'évaluation des modèles prédictifs de cette façon fonctionnerait assez bien.

probabilislogic
la source
4
+1 - bons conseils et discussion intéressante sur l'effet de levier (pour les grands ensembles de données). J'ai tendance à utiliser des ensembles de données de petite taille, où un sur-ajustement est probable, et dans de telles situations, il est souvent très facile de sur-adapter la vraisemblance marginale ("évidence") et de se retrouver avec un modèle pire que celui par lequel vous commencez. Je soupçonne que AIC et BIC sont pareillement "fragiles". L’optimisation est essentiellement la racine de tous les maux dans les statistiques, car tout choix que vous faites ou paramètre que vous réglez sur la base d’un échantillon fini introduit la possibilité d’une sur-adaptation. La marginalisation est beaucoup plus sûre, mais généralement onéreuse en terme de calcul.
Dikran Marsupial
2
+1 - en particulier sur le troisième paragraphe (utilisez d'abord des méthodes simples). Rappelle le bon vieux règlement de Pareto. Si les apprenants de la machine garderaient cela à l'esprit avant de publier leur tentative insuffisante de prouver la supériorité de leur nouvel algorithme de race ...
steffen
8

Je suppose que le seul moyen de garantir cela est que quelqu'un d'autre dispose des données de test . Dans une relation client-consultant, cela peut être géré assez facilement: le client donne au consultant la formation sur laquelle construire les modèles et, à l'intérieur de cette formation, le consultant peut fractionner les données de la manière nécessaire pour éviter la sur-adaptation. se produire; ensuite, les modèles sont redonnés au client pour être utilisés dans leurs données de test.

Pour un chercheur individuel, il va de soi que la meilleure pratique consisterait donc à imiter cette configuration. Cela impliquerait de récupérer certaines des données à tester, une fois que toutes les sélections de modèles ont été effectuées. Malheureusement, comme vous le dites, beaucoup de gens ne le pratiquent pas, et cela arrive même à des gens qui devraient savoir mieux!

Cependant, cela dépend en fin de compte de l'utilisation du modèle. Si la prédiction sur un seul jeu de données ne vous intéresse jamais, alors peut-être pouvez-vous surévaluer tout ce que vous aimez? Toutefois, si vous essayez de promouvoir votre modèle en tant que modèle généralisable ou de l'utiliser dans certaines applications du monde réel, il est évident que cela revêt une grande importance.

Il y a un problème secondaire que je pensais devoir mentionner: même si vous suivez toutes les procédures correctement, vous pouvez toujours vous retrouver avec des modèles sur-équipés, car les données ne sont pas vraiment iid . Par exemple, s'il existe des corrélations temporelles dans les données, si vous prenez toutes vos données d'entraînement de 1 à 3 fois et testez à 4, vous constaterez peut-être que l'erreur de prédiction est plus grande que prévu. Alternativement, il peut exister des artefacts spécifiques à l'expérience, tels que le dispositif de mesure utilisé ou le pool de sujets expérimentés sur l'homme, qui rendent la généralisation des modèles pire que prévu.

tdc
la source
Oui, je suis conscient du fait qu'il est étonnamment difficile de créer un jeu de données vraiment hors échantillon car il est facile de se retrouver accidentellement avec des corrélations temporelles ou non.
Michael McGowan
1
Certaines entreprises le font en tant que stratégie, mise en œuvre, par exemple en viewdéfinissant les autorisations de base de données en conséquence, certaines équipes étant test-data-privy et d'autres en test-data-blind.
ijoseph
6

C'est une très bonne question et un problème très subtil. Bien sûr, il y a les erreurs de mauvaise intention, qui proviennent de quelqu'un qui essaie de vous tromper. Mais il y a une question plus profonde de savoir comment éviter les fuites accidentelles et éviter les erreurs honnêtes.

Laissez-moi énumérer quelques bonnes pratiques opérationnelles. Elles découlent toutes d'erreurs honnêtes que j'ai commises à un moment donné:

  • Séparez vos données en trois groupes: formez, validez et testez.
  • Comprendre la configuration du problème pour pouvoir argumenter ce qui est raisonnable et ce qui ne l’est pas. Comprendre le problème, plusieurs fois, une incompréhension subtile de ce que représentent les données peut entraîner des fuites. Par exemple, alors que personne ne s'entraînerait et ne testerait sur la même image d'une vidéo, il est plus subtil lorsque deux images d'une même vidéo tombent dans des plis différents, deux images d'une même vidéo partagent probablement les mêmes personnes avec le même éclairage, etc. .
  • Soyez extrêmement prudent avec les procédures de validation croisée précédemment écrites. Plus encore avec ceux qui ne sont pas écrits par vous (LIBSVM est un grand délinquant ici).
  • Répétez chaque expérience au moins deux fois avant de rapporter quoi que ce soit, même si vous le signalez à votre collègue de bureau. Le contrôle de version est votre ami, avant d'exécuter un test de validation et notez la version du code que vous exécutez.
  • Soyez très prudent lorsque vous normalisez vos données. Souvent, cela donne à penser que vous aurez le jeu de données complet sur lequel vous souhaitez tester en même temps, ce qui n'est souvent pas réaliste.
Carlos
la source
Il y avait une question sur les ensembles de formation / évaluation et j'ai donné un aperçu théorique de cela à machinelearning.stackexchange.com/a/196/114 - en expliquant la rétention stratifiée, la validation croisée des k-fold et les expériences répétées. À mon esprit non éduqué, ces méthodes répondent complètement à la question ci-dessus, et le reste n'est que "le problème de l'enseignant". En outre, toutes les pratiques de votre liste semblent corriger les "erreurs négligentes et inacceptables" et je n'y vois aucune subtilité. Je suis très désireux de comprendre ce qui me manque - pouvez-vous commenter?
andreister
Je suis d'accord qu'ils viennent tous de négligence. J'ai également mentionné qu'ils ne sont pas du tout théoriques (cela dit, ils sont opérationnels). J'ai édité un peu mon post.
Carlosdc
5

Les excellentes réponses déjà données ont couvert de nombreux points importants.

Dernièrement, j'ai développé cette liste de contrôle personnelle pour l'indépendance statistique des données de test:

  • Fractionner les données au plus haut niveau de la hiérarchie des données (par exemple, fractionnement par patient)
  • Séparez également indépendamment les facteurs de confusion connus ou soupçonnés, tels que la variation quotidienne des instruments, etc.
  • (DoE doit s’occuper de la séquence aléatoire de mesures **)
  • Toutes les étapes de calcul commençant par la première étape (généralement pré-traitement) impliquant plusieurs patients * doivent être refaites pour chaque modèle de substitution lors de la validation du rééchantillonnage. Pour la valdiation en attente / indépendante, il faut séparer les patients avant cette étape.
    • Que le calcul soit appelé prétraitement ou considéré comme faisant partie du modèle réel.
    • Coupables typiques: centrage moyen, mise à l'échelle de la variance (généralement une influence minime), réduction de la dimensionnalité telle que la PCA ou la PLS (peut causer un biais important, par exemple sous-estimer le nombre d'erreurs par un ordre de grandeur)
  • Tout type d'optimisation pilotée par les données ou de sélection de modèle nécessite un autre test (externe) pour valider indépendamment le modèle final.
  • Certains types de performances de généralisation ne peuvent être mesurés que par des ensembles de tests indépendants, par exemple, comment les performances prédictives se détériorent pour les cas mesurés à l'avenir (je ne traite pas de la prévision de séries chronologiques, mais simplement de la dérive des instruments). Mais cela nécessite une étude de validation bien conçue.
  • Il existe un autre type particulier de fuite de données dans mon domaine: nous effectuons une spectroscopie à résolution spatiale de tissus biologiques. L'étiquetage de référence des spectres de test doit être aveuglé par rapport aux informations spectroscopiques, même s'il est tentant d'utiliser une analyse de cluster et de rechercher la classe à laquelle appartient chaque cluster (il s'agirait de données de test semi-supervisées qui ne sont pas pertinentes). indépendant du tout).

  • Dernier point, mais non le moindre: lors du codage de la validation du rééchantillonnage, je vérifie réellement si les indices calculés dans l'ensemble de données ne conduisent pas à la saisie de lignes de test de patients en formation, de jours, etc.

Notez que le "fractionnement non effectué pour assurer l'indépendance" et le "fractionnement avant tout calcul impliquant plus d'un cas" peuvent également se produire avec des tests prétendant utiliser un jeu de tests indépendant, et ce même si l'analyste de données est aveuglé à la référence des cas de test. Ces erreurs ne peuvent pas se produire si les données de test sont retenues jusqu'à ce que le modèle final soit présenté.

* J'utilise les patients comme la plus haute hiérarchie des données, rien que pour la facilité de description.
** Je suis chimiste analytique: la dérive d'instruments est un problème connu. En fait, une partie de la validation des méthodes d'analyse chimique consiste à déterminer la fréquence à laquelle les étalonnages doivent être vérifiés par rapport aux échantillons de validation et à quelle fréquence l'étalonnage doit être refait.


FWIW: En pratique, je traite des applications où

  • p102103
  • nrowsp
  • nbiol.replicatesnpatientsp100101102
  • En fonction de la méthode de mesure spectroscopique, toutes les lignes d'un patient, par exemple, peuvent être très similaires ou assez différentes, car différents types de spectres ont un rapport signal sur bruit (erreur d'instrument) variant également d'un ordre de grandeur

Personnellement, je n'ai pas encore rencontré l'application où, pour le développement du classificateur, j'ai suffisamment de cas indépendants pour permettre de mettre de côté un ensemble de tests indépendant approprié. Ainsi, je suis parvenu à la conclusion que la validation du rééchantillonnage correctement effectuée est la meilleure alternative tant que la méthode est en cours de développement. Des études de validation appropriées devront éventuellement être réalisées, mais il s’agit d’un énorme gaspillage de ressources (ou les résultats ne fourniront aucune information utile en raison de divergences), alors que le développement de la méthode est dans une phase où les choses changent encore.

cbeleites soutient Monica
la source
2

Si je me souviens bien, certains des concours de prévisions (tels que Netflix ou ceux sur Kaggle) utilisent ce schéma:

Il y a un ensemble de formation, avec les "réponses". Il existe un ensemble de tests n ° 1, pour lequel le chercheur fournit des réponses. Le chercheur découvre leur score. Il existe un ensemble de tests n ° 2, pour lequel le chercheur fournit des réponses, MAIS le chercheur ne découvre pas leur score. Le chercheur ne sait pas quels cas de prédiction sont en # 1 et # 2.

À un moment donné, le jeu n ° 2 doit devenir visible, mais vous avez au moins limité la contamination.

cycliste
la source
2

Dans certains cas, tels que les prédicteurs basés sur une séquence biologique, il ne suffit pas de garantir que les cas n'apparaissent pas dans plus d'un ensemble. Vous devez toujours vous inquiéter de la dépendance entre les ensembles.

Par exemple, pour les prédicteurs basés sur les séquences, il est nécessaire de supprimer la redondance en veillant à ce que les séquences de différents ensembles (y compris les différents ensembles de validation croisée) ne partagent pas un niveau élevé de similarité de séquence.

Itamar
la source
2

Je dirais que la "validation croisée au pli" est la bonne réponse du point de vue théorique, mais votre question semble porter davantage sur l'organisation et l'enseignement, donc je vais vous répondre différemment.


Quand les gens "apprennent encore", on pense souvent qu'ils apprennent à appliquer "rapidement et souilleusement" les algorithmes et toutes les connaissances "supplémentaires" (motivation du problème, préparation du jeu de données, validation, analyse des erreurs, pièges pratiques, etc.). ) seront appris "plus tard" quand ils seront "mieux préparés".

C'est totalement faux.

  1. Si nous voulons qu'un étudiant ou quiconque comprenne la différence entre un ensemble de test et un ensemble de formation, le pire est de donner les deux ensembles à deux types différents, comme si nous pensions "à ce stade" la "connaissance supplémentaire" est nocif. C’est comme une approche en cascade dans le développement logiciel - quelques mois de conception pure, puis quelques mois de codage pur, puis quelques mois de tests purs et un résultat pitoyable à la fin.

  2. Apprendre ne devrait pas aller comme cascade. Toutes les parties de l'apprentissage - motivation du problème, algorithme, pièges pratiques, évaluation des résultats - doivent être réunies, par petites étapes. (Approche agile dans le développement de logiciels).

Tout le monde ici a peut-être parcouru le site ml-class.org d'Andrew Ng - je mettrais son cours comme exemple d'un style "robuste", si vous voulez, d'apprentissage - celui qui ne poserait jamais la question "comment s'assurer que les données de test ne fuient pas dans les données d'entraînement ".


Notez que j'ai peut-être complètement mal compris votre question, alors excuses-moi! :)

andreister
la source
Apprendre pour l’ être humain (c’est-à-dire apprendre à modéliser en général) ne devrait pas aller comme une cascade, mais l’apprentissage pour le modèle devrait. Sinon, des bits des données de test se glisseront dans les données d'apprentissage et votre modèle sera plus enclin à la sur-adaptation.
Michael McGowan
Et je pensais plus au logiciel. Un utilisateur construit un modèle qui obtient une précision de 90% sur la formation et de 75% sur les tests. Ils ajustent ensuite certains boutons et paramètres du logiciel et obtiennent une précision de 80% sur les "tests". Ils reviennent encore et font plus de réglages et obtiennent une précision de 85% sur les «tests». Mais cet ensemble de données "de test" n'est plus en dehors de l'échantillon, et le modèle lui a été suradapté.
Michael McGowan
Exactement. C'est un problème d' apprentissage humain (problème de l'enseignant, si vous voulez). Il devrait être révélé le plus tôt possible, plutôt que caché par des moyens artificiels de "faire en sorte que X ne fuie pas dans Y"
andreister
Les gens qui devraient savoir mieux feront encore cette erreur. Vous pouvez atténuer cet effet dans une certaine mesure dans un progiciel avec un flux de travail qui encourage implicitement ou explicitement les bonnes pratiques et décourage les mauvaises pratiques. Que l’homme sache mieux n’est pas une raison pour ignorer le problème.
Michael McGowan
@MichaelMcGowan - vous ignorez également les avantages des fuites - votre algorithme a potentiellement été amélioré en utilisant l'ensemble de tests (c'est-à-dire que train + test contient plus de données que seulement le train). Il ne s'agit en réalité que d'un compromis différent, d'une précision améliorée par rapport à une mesure améliorée de la précision. Pour le mien, le premier est plus important.
probabilityislogic