En quoi la validation croisée est-elle différente de l'espionnage des données?

13

Je viens de terminer "Une introduction à l'apprentissage statistique" . Je me demandais si l'utilisation de la validation croisée pour trouver les meilleurs paramètres de réglage pour diverses techniques d'apprentissage automatique était différente de l'espionnage des données?

Nous vérifions à plusieurs reprises quelle valeur du paramètre de réglage donne un meilleur résultat prédictif dans l'ensemble de test. Que se passe-t-il si le paramètre de réglage auquel nous arrivons arrive juste à s'adapter à cet ensemble de test particulier par hasard et ne fonctionne pas bien sur un futur ensemble de test?

Veuillez excuser ma compréhension novice de l'apprentissage automatique, et j'ai hâte d'être éduquée.

EDIT: Veuillez voir la réponse de @AdamO sur la définition de «surveillance de données». J'ai utilisé le terme de façon très imprécise dans ma question.

Heisenberg
la source
Je suis tellement heureux de trouver ça ... avoir un TC demain avec des chercheurs qui ont publié quelque chose ... malheureusement souffrant de ce problème. Grande question!
pallevillesen

Réponses:

12

Je me demandais si l'utilisation de la validation croisée pour trouver les meilleurs paramètres de réglage pour diverses techniques d'apprentissage automatique était différente de l'espionnage des données?

Votre préoccupation est au bon endroit et il y a beaucoup de littérature sur ce sujet, par exemple

Le problème est que le réglage hyperparamétrique avec validation croisée est un processus d'optimisation basé sur les données, et aura toujours tendance à s'adapter à votre ensemble de données (moins que le réglage par erreur de resubstitution, mais quand même). Essayer d'utiliser les résultats de la validation croisée de réglage comme mesure de performance "indépendante" revient à manger le gâteau (= réglage) et à le conserver (= mesurer les performances finales du modèle).

Cela ne signifie pas que vous ne devez pas utiliser la validation croisée pour le réglage des hyperparamètres. Cela signifie simplement que vous ne pouvez l'utiliser que dans un seul but. Optimisez ou mesurez les performances du modèle à des fins de validation.

La solution est que vous devez effectuer une validation indépendante pour mesurer la qualité du modèle obtenu avec les hyperparamètres accordés. C'est ce qu'on appelle la validation imbriquée ou double. Vous trouverez ici un certain nombre de questions et réponses sur ces sujets

Conceptuellement, j'aime dire que la formation comprend toutes sortes d'étapes fantaisistes pour s'adapter non seulement aux paramètres du modèle "habituels" mais aussi pour ajuster (auto-réglage) les hyperparamètres. L'optimisation de λ basée sur les données fait clairement partie de la formation du modèle.

En règle générale, vous pouvez également dire que la formation du modèle est tout ce qui doit être fait avant d'avoir une fonction de boîte noire finale prête à l'emploi qui est capable de produire des prévisions pour de nouveaux cas.


PS: Je trouve la terminologie test vs validation très déroutante car dans mon domaine "validation" signifie prouver que le modèle final est adapté à l'usage, et est donc ce que les autres appellent test plutôt que validation. Je préfère appeler l'ensemble de test intérieur "ensemble de test de réglage" et "ensemble de test de validation final" ou similaire.


Mise à jour:

Donc, si mon modèle (c'est-à-dire mon paramètre de réglage dans ce cas) échoue à la validation externe, que dois-je faire alors?

En règle générale, cela ne se produit pas: il existe des situations typiques qui peuvent provoquer une telle défaillance. Et toutes ces situations que je connais sont des situations de sur-ajustement. Vous devez être conscient que si la régularisation aide à réduire le nombre nécessaire de cas de formation, l'optimisation basée sur les données nécessite de grandes quantités de données.

Mes recommandations:

  • En règle générale, vous (devriez) déjà avoir des attentes approximatives, par exemple, quelles performances devraient être réalisables, quelles performances vous considéreriez suspectes. Ou avez des spécifications sur les performances dont vous avez besoin et sur les performances de base. À partir de cela et du nombre de cas de formation disponibles (pour le schéma de fractionnement que vous avez choisi), calculez l'incertitude attendue pour les tests internes (réglage). Si cette incertitude indique que vous ne pourrez pas obtenir de comparaisons significatives, ne faites pas d'optimisation basée sur les données.

  • Vous devez vérifier la stabilité des prédictions obtenues avec le λ choisi et le λ optimal trouvé par la procédure d'auto-réglage. Si λ n'est pas raisonnablement stable par rapport aux différentes divisions de vos données, l'optimisation n'a pas fonctionné.

  • Si vous constatez que vous ne serez pas en mesure de faire l'optimisation basée sur les données ou que cela n'a pas fonctionné après tout, vous pouvez choisir le λ par vos connaissances d'experts, par exemple à partir de l'expérience avec des données similaires. Ou en sachant que si vous découvrez que l'optimisation a échoué, vous aurez besoin d'une régularisation plus forte: le sur-ajustement qui conduit à l'échec fonctionne vers des modèles trop complexes.

cbeleites soutient Monica
la source
1
Je suis d'accord, la terminologie train / test / validation n'est pas très intuitive
M. Berk
3

k

λλ

«L'espionnage des données» ou, comme je pourrais l'appeler, «l'analyse exploratoire des données» ne traite pas d'une question prédéfinie. Vous énumérez en quelque sorte un certain nombre de résultats possibles et plausiblement intéressants et les évaluez individuellement. Vous pouvez effectuer un nombre illimité d'analyses exploratoires et, généralement, vous n'avez pas à vous soucier des tests multiples. Vous pouvez évaluer chaque analyse exploratoire individuellement à l'aide de la validation croisée, mais elle ne tient pas intrinsèquement compte de plusieurs tests lorsque vous disposez de plus d'une analyse exploratoire. Les hypothèses dans ce contexte peuvent être assez larges et de grande portée, "quels sont les facteurs associés au cancer de la prostate?" (à partir de laquelle la consommation de café, la vasectomie, etc., etc. ont été mesurés dans une cohorte). Les résultats significatifs sont considérés comme «générateurs d'hypothèses» et ne fournissent aucune preuve confirmative.

k

AdamO
la source
λλ
1
@Anh: le réglage de λ par validation croisée n'est pas mauvais en soi. Mais ce faisant, vous avez "utilisé" cette validation croisée pour le réglage de λ et vous avez besoin d'une autre validation indépendante de la modélisation, y compris le processus de réglage de λ. Ne pas faire cette validation externe est MAUVAIS. Si ce λ particulier ne fonctionne pas "à nouveau" (par exemple sur une autre division des données), votre optimisation n'a pas fonctionné. Dans cette situation, vous verrez généralement également une grande différence entre les résultats de validation externe et les "meilleures" performances observées pendant le réglage.
cbeleites prend en charge Monica
@cbeleites Donc, si mon modèle (c'est-à-dire mon paramètre de réglage dans ce cas) échoue à la validation externe, que dois-je faire alors? Je ne peux pas revenir en arrière et trouver un autre paramètre de réglage, car cela reviendrait essentiellement à transformer la validation externe en un ensemble de tests de réglage. Alors que faire?
Heisenberg
λ
λk
1

En fait, pendant le CV, vous essayez de trouver les meilleurs paramètres sur un ensemble de validation , qui est distinct de l'ensemble de test. Vous divisez l'ensemble de vos données en trois ensembles: ensemble de formation, ensemble de validation et ensemble de test. Lorsque vous effectuez une validation croisée correctement, vous ne regardez jamais la fin du test jusqu'à la fin, il n'y a donc pas du tout d'espionnage. La validation croisée sur l'ensemble de test est une grave erreur méthodologique (mais fréquente).

Jerorx
la source
Si l'ensemble de validation et l'ensemble de test sont différents, cela a du sens pour moi. Cependant, dans le livre que j'ai lu (par Hastie et al. Pas moins), ils soutiennent que l'utilisation du test de maintien est coûteuse (nous n'utilisons pas beaucoup de données pour s'entraîner), ils recommandent donc une validation croisée k-fold, dans lequel je ne pense pas qu'il y ait un ensemble de test séparé.
Heisenberg
1
@Anh: les deux divisions peuvent être effectuées par rééchantillonnage (par exemple, une validation croisée répétée) au lieu de mettre de côté un seul petit ensemble de données.
cbeleites prend en charge Monica
@Anh: dans la validation croisée k-fold, vous divisez k fois l'ensemble de formation d'origine en un ensemble de formation plus petit et un ensemble de validation. L'ensemble de test d'origine n'est pas impliqué et n'est utilisé qu'à la fin.
Jerorx
0

Si vous regardez par exemple à la page 225 de "Une introduction à l'apprentissage statistique" avec l'exemple Lasso, vous voyez qu'ils font en fait une validation croisée imbriquée. C'est-à-dire que la sélection du modèle se fait cv.glmnetsur un trainensemble, qui est divisé par le cv.glmnetpaquet en paires train-test. La validation du modèle est effectuée sur l'ensemble de validation (" test"), il s'agit donc d'une validation indépendante.

Dima Lituiev
la source