Validation croisée (généralisation des erreurs) après la sélection du modèle

21

Remarque: le cas est n >> p

Je lis Éléments d'apprentissage statistique et il y a diverses mentions sur la «bonne» façon de faire la validation croisée (par exemple page 60, page 245). Plus précisément, ma question est de savoir comment évaluer le modèle final (sans ensemble de test séparé) en utilisant k-fold CV ou bootstrapping lorsqu'il y a eu une recherche de modèle? Il semble que dans la plupart des cas (algorithmes ML sans sélection de fonction intégrée), il y aura

  1. Une étape de sélection des fonctionnalités
  2. Une étape de sélection de méta-paramètres (par exemple le paramètre de coût dans SVM).

Mes questions:

  1. J'ai vu que l'étape de sélection des fonctionnalités peut être effectuée là où la sélection des fonctionnalités est effectuée sur l'ensemble de la formation et maintenue de côté. Ensuite, en utilisant k-fold CV, l'algorithme de sélection des caractéristiques est utilisé dans chaque pli (obtention de différentes caractéristiques éventuellement choisies à chaque fois) et l'erreur est moyennée. Ensuite, vous utiliseriez les fonctionnalités choisies en utilisant toutes les données (qui ont été mises de côté) pour entraîner le mode final, mais vous utiliseriez l'erreur de la validation croisée comme estimation des performances futures du modèle. EST-CE CORRECT?
  2. Lorsque vous utilisez la validation croisée pour sélectionner les paramètres du modèle, comment estimer ensuite les performances du modèle? S'AGIT-IL DU MÊME PROCESSUS QUE LE N ° 1 CI-DESSUS OU DEVRIEZ-VOUS UTILISER UN CV IMPRIMÉ COMME INDIQUÉ À LA PAGE 54 ( pdf ) OU QUELQUE CHOSE DE PLUS ?
  3. Lorsque vous effectuez les deux étapes (réglage des fonctionnalités et des paramètres) ..... alors que faites-vous? boucles imbriquées complexes?
  4. Si vous avez un échantillon de rétention séparé, le problème disparaît-il et vous pouvez utiliser la validation croisée pour sélectionner les caractéristiques et les paramètres (sans souci puisque votre estimation de performance proviendra d'un ensemble de rétention)?
B_Miner
la source
@ user2040 (+1) Ces questions sont vraiment très bonnes! Une question quelque peu connexe peut être trouvée ici: Sélection des fonctionnalités pour le modèle «final» lors de l'exécution de la validation croisée dans l'apprentissage automatique .
chl
@chi Merci, j'avais vu ce post. Pensez-vous que je suis sur la bonne voie avec mon processus de réflexion au moins? Il semble qu'un jeu de test indépendant nous permette d'être plus libéral dans notre utilisation du CV pour la sélection des fonctionnalités et le réglage / sélection du modèle. Sinon, les boucles imbriquées semblent nécessaires pour former, régler et estimer la généralisation des erreurs en utilisant toutes les mêmes données d'entraînement.
B_Miner

Réponses:

18

L'essentiel à retenir est que pour que la validation croisée donne une estimation de performance (presque) impartiale, chaque étape impliquée dans l'ajustement du modèle doit également être effectuée indépendamment dans chaque volet de la procédure de validation croisée. La meilleure chose à faire est de visualiser la sélection des fonctionnalités, le réglage des méta / hyper-paramètres et l'optimisation des paramètres en tant que parties intégrantes de l'ajustement du modèle et de ne jamais effectuer l'une de ces étapes sans effectuer les deux autres.

Le biais optimiste qui peut être introduit en s'écartant de cette recette peut être étonnamment important, comme l'ont démontré Cawley et Talbot , où le biais introduit par un départ apparemment bénin était plus important que la différence de performance entre les classificateurs concurrents. Pire encore, les protocoles biaisés favorisent plus fortement les mauvais modèles, car ils sont plus sensibles au réglage des hyper-paramètres et sont donc plus enclins à sur-ajuster le critère de sélection du modèle!

Réponses à des questions spécifiques:

La procédure de l'étape 1 est valide car la sélection des fonctions est effectuée séparément dans chaque pli, donc ce que vous effectuez une validation croisée est toute la procédure utilisée pour ajuster le modèle final. L'estimation de validation croisée aura un léger biais pessimiste car l'ensemble de données pour chaque pli est légèrement plus petit que l'ensemble de données utilisé pour le modèle final.

Pour 2, comme la validation croisée est utilisée pour sélectionner les paramètres du modèle, vous devez répéter cette procédure indépendamment dans chaque pli de la validation croisée utilisée pour l'estimation des performances, vous vous retrouvez avec une validation croisée imbriquée.

Pour 3, essentiellement, oui, vous devez effectuer une validation croisée imbriquée. Essentiellement, vous devez répéter dans chaque pli de la validation croisée la plus externe (utilisée pour l'estimation des performances) tout ce que vous avez l'intention de faire pour s'adapter au modèle final.

Pour 4 - oui, si vous avez un ensemble d'exclusion distinct, cela donnera une estimation impartiale des performances sans avoir besoin d'une validation croisée supplémentaire.

Dikran Marsupial
la source
re votre réponse à Q1. C'est ça le problème n'est-ce pas? Très souvent, nous pensons que nous validons de manière croisée le modèle, alors qu'en fait nous validons de manière croisée la procédure de modélisation. La différence peut être philosophique, car lorsque vous écrivez les mathématiques, le f peut représenter le modèle ou la procédure de modélisation. Mais alors on pourrait se demander, est la validation croisée de la procédure ce que nous voulons, ou la validation croisée du modèle. Quelle est ta pensée?
qoheleth
Vous ne pouvez pas valider de manière croisée un modèle car le modèle dépend de l'échantillon de données sur lequel il a été formé, dès que vous l'ajustez à un autre échantillon de données, c'est un modèle différent. Ce que je voulais vraiment dire, c'est que si vous ajustez le modèle de quelque manière que ce soit sur l'ensemble de l'échantillon de données (par exemple en effectuant la sélection des fonctionnalités), la validation croisée donnera une estimation optimiste de la généralisation car les partitions de test ont été utilisées pour ajuster aspects du modèle (c'est-à-dire l'ensemble de fonctionnalités utilisé). HTH.
Dikran Marsupial
Je ne sais pas s'il est acceptable de poursuivre notre discussion dans la section des commentaires, mais jusqu'à ce que quelqu'un dise le contraire ... Oui, je comprends que votre point sur le CV doit être fait au niveau le plus externe et je ne m'y oppose pas. En fait, je viens de donner le même conseil à mon collègue hier. Je souligne simplement que nous ne sommes souvent pas sûrs de ce que nous validons. En même temps, je me demande si obtenir une évaluation sur le modèle, plutôt que sur la procédure de modélisation, est ce que nous voulons réellement. Un remède pourrait être que l'on peut penser qu'il utilise l'erreur de procédure pour estimer l'erreur de modèle. Peut-être que cela fonctionne.
qoheleth
Nous ne pouvons pas obtenir une estimation directe des performances d'un modèle particulier sans disposer d'un ensemble de test externe. La performance de la méthode de production d'un modèle est cependant un indicateur raisonnable de la performance du modèle lui-même, à condition que ce soit toute la méthode qui soit validée de manière croisée. En d'autres termes, je suis d'accord avec le résumé de votre dernière phrase!
Dikran Marsupial
5

J'ai effectué une analyse de validation croisée approfondie sur un ensemble de données qui a coûté des millions à acquérir, et aucun ensemble de validation externe n'est disponible. Dans ce cas, j'ai effectué une validation croisée imbriquée approfondie pour garantir la validité. J'ai sélectionné des fonctionnalités et des paramètres optimisés uniquement dans les ensembles d'entraînement respectifs. C'est coûteux en calcul pour les grands ensembles de données, mais c'est ce que je devais faire pour maintenir la validité. Cependant, il y a des complications qui vont avec ... par exemple, différentes fonctionnalités sont sélectionnées dans chaque ensemble d'entraînement.

Donc, ma réponse est que dans les cas où vous n'avez pas accès possible à un ensemble de données externes, c'est une façon raisonnable de procéder. Lorsque vous disposez d'un ensemble de données externes, vous pouvez à peu près aller en ville comme vous le souhaitez sur l'ensemble de données principal, puis tester une fois sur l'ensemble de données externes.

user2643
la source
@ user2643: Avez-vous des références à partager sur la façon dont vous avez créé le CV imbriqué? Était-ce dans le même sens que le pdf auquel j'ai lié dans ma question? Aussi ..... ces données marketing de données sont-elles par hasard?
B_Miner
@ user2643 Le problème avec cette approche (qui est correcte) est qu'elle ne donne qu'un seul critère de précision (classification) ou de précision (régression); vous ne pourrez pas dire "ce sont les fonctionnalités qui sont les plus intéressantes" car elles varient d'un pli à l'autre, comme vous l'avez dit. J'ai travaillé avec des données génétiques (600k variables) où nous avons utilisé un CV 10 fois avec sélection de caractéristiques intégrée, sous un schéma de permutation (k = 1000, pour être à l'aise à un niveau de 5%) pour évaluer la fiabilité des résultats. De cette façon, nous pouvons dire: "notre modèle se généralise bien ou pas", rien de plus.
chl
2
Si les fonctionnalités varient d'un pli à l'autre, cela signifie qu'il n'y a pas suffisamment d'informations pour identifier en toute confiance les fonctionnalités utiles, donc je considérerais cela comme un avantage de la validation croisée (comme le simple fait de regarder les résultats d'un modèle unique est susceptible de sont trop adaptés au critère de sélection des caractéristiques et donc trompeurs). Pour les problèmes avec de nombreuses fonctionnalités et peu d'observations, la régression de crête donne souvent de meilleures performances, donc à moins que l'identification des fonctionnalités ne soit un objectif clé, il est souvent préférable de ne faire aucune sélection de fonctionnalités.
Dikran Marsupial
@Dikran J'aurais dû donner plus de précision sur mon étude: Oui, l'objectif était la sélection des caractéristiques (dans un contexte , comme on le trouve couramment dans les études d'association à l'échelle du génome ). Lorsque le résultat est univarié, je préfère toujours le critère de l'élasticité, mais de toute façon ce n'est pas le but de la question. J'aime ta réponse (+1). np
chl
@ user2040: Désolé pour la réponse tardive. J'ai créé ma propre implémentation logicielle de l'approche CV imbriquée. Parce que mes recherches sont liées à la bioinformatique, je prévois de soumettre une description du logiciel bientôt à une revue de bioinformatique. Mais il peut être utilisé dans n'importe quel domaine de recherche. Si vous êtes intéressé à l'essayer, faites-le moi savoir. goldfish1434 à yahoo dot com
user2643