Comment choisir un modèle à partir de cette sortie [validation croisée externe]?
Réponse courte: vous ne le faites pas.
Traitez la validation croisée interne dans le cadre de la procédure d’ajustement du modèle. Cela signifie que l’ajustement, y compris l’ajustement des hyper-paramètres (c’est là que se cache la validation croisée interne), est semblable à n’importe quelle autre routine d’esitmation de modèle.
La validation croisée externe estime la performance de cette approche d'ajustement du modèle. Pour cela, vous utilisez les hypothèses habituelles
- k
model.fitting.procedure
- k
k
Alors, comment puis-je utiliser un CV imbriqué pour la sélection de modèle?
Le CV interne fait la sélection.
Il me semble que la sélection du meilleur modèle parmi ces K modèles gagnants ne serait pas une comparaison équitable puisque chaque modèle a été formé et testé sur différentes parties du jeu de données.
k
- Ne pas avoir les mêmes données de test: comme vous voulez affirmer par la suite que les résultats du test se généralisent pour ne jamais voir des données, cela ne peut pas changer les choses.
- Ne pas avoir les mêmes données d'entraînement:
- si les modèles sont stables, cela ne fait aucune différence: Stable signifie ici que le modèle ne change pas (beaucoup) si les données d'apprentissage sont "perturbées" en remplaçant quelques cas par d'autres.
- si les modèles ne sont pas stables, trois considérations sont importantes:
- k
- k
- Si l'instabilité est un problème réel, vous ne pouvez pas bien extrapoler les performances du modèle "réel".
Ce qui m'amène à votre dernière question:
Quels types d'analyses / contrôles puis-je faire avec les scores que je reçois à partir des plis K extérieurs?
- vérifier la stabilité des prévisions (utiliser la validation croisée itérée / répétée)
vérifier la stabilité / variation des hyper-paramètres optimisés.
D'une part, les hyper-paramètres très dispersés peuvent indiquer que l'optimisation interne n'a pas fonctionné. D'autre part, cela peut vous permettre de choisir les hyperparamètres sans l'étape d'optimisation coûteuse dans des situations similaires à l'avenir. Avec coûteuse, je ne parle pas de ressources de calcul, mais du fait que cette information "coûte" peut être mieux utilisée pour estimer les paramètres de modèle "normaux".
vérifiez la différence entre l'estimation interne et externe du modèle choisi. S'il y a une grande différence (l'intérieur est très suroptimiste), il y a un risque que l'optimisation interne ne fonctionne pas bien en raison de la sur-adaptation.
update @ user99889: Que faire si le CV externe détecte une instabilité?
Tout d'abord, détecter dans la boucle CV externe que les modèles ne donnent pas de prédictions stables à cet égard ne diffère pas vraiment de la détection du fait que l'erreur de prédiction est trop élevée pour l'application. C'est l'un des résultats possibles de la validation (ou de la vérification) du modèle, ce qui implique que le modèle que nous avons n'est pas adapté à son objectif.
Dans le commentaire répondant à @davips, je pensais aborder l'instabilité du CV interne - c'est-à-dire dans le cadre du processus d'optimisation du modèle.
Mais vous avez certainement raison: si nous modifions notre modèle en fonction des conclusions du CV externe, un autre cycle de tests indépendants du modèle modifié est nécessaire.
Cependant, l’instabilité dans le CV externe signifierait également que l’optimisation n’a pas été correctement configurée - donc, trouver l’instabilité dans le CV externe implique que le CV interne ne pénalise pas l’instabilité de la manière nécessaire - ce serait là mon principal objectif. critique dans une telle situation. En d'autres termes, pourquoi l'optimisation permet-elle / conduit-elle à des modèles fortement sur-équipés?
Cependant, il y a une particularité ici que IMHO peut excuser le changement ultérieur du modèle "final" après un examen attentif des circonstances exactes : comme nous avons détecté un surajustement, tout changement proposé (moins de df / plus restrictif ou agrégé) au modèle être dans le sens de la sur- adaptation moins (ou au moins des hyperparamètres qui sont moins enclins à sur-adapter). Le point de test indépendant est de détecter le surajustement - le sous-ajustement peut être détecté par les données déjà utilisées dans le processus de formation.
Donc, si nous parlons, par exemple, d’une réduction supplémentaire du nombre de variables latentes dans un modèle de PLS qui serait comparativement inoffensif (si le changement proposé était un type de modèle totalement différent, disons PLS au lieu de SVM, tous les paris seraient décevants. ), et je serais encore plus serein à ce sujet si je savais que nous en sommes de toute façon à une étape intermédiaire de la modélisation. Après tout, si les modèles optimisés sont toujours instables, il ne fait aucun doute que davantage de cas sont nécessaires. En outre, dans de nombreuses situations, vous devrez éventuellement réaliser des études conçues pour tester correctement divers aspects des performances (par exemple, la généralisation aux données acquises ultérieurement). Néanmoins, j’insisterais pour que le processus de modélisation complet soit signalé et que les implications de ces modifications tardives fassent l’objet d’une discussion approfondie.
En outre, une agrégation incluant et une estimation de la performance du CV analogique en sortie de sac serait possible à partir des résultats déjà disponibles - qui est l'autre type de "post-traitement" du modèle que je serais prêt à considérer comme inoffensif ici. Encore une fois, il aurait été préférable que l’étude soit conçue dès le départ pour vérifier que l’agrégation ne présente aucun avantage par rapport aux prédictions individuelles (ce qui est une autre façon de dire que les modèles individuels sont stables).
Mise à jour (2019): plus je pense à ces situations, plus je privilégie l' approche de la "validation croisée imbriquée apparemment sans imbrication" .
Outre l'excellente réponse des cébéléites (+1), l'idée de base est que la validation croisée est utilisée pour évaluer les performances d'une méthode d'adaptation d'un modèle, et non du modèle lui-même. Si vous devez effectuer une sélection de modèle, vous devez l’effectuer indépendamment dans chaque étape de la procédure de validation croisée, car elle fait partie intégrante de la procédure d’ajustement de modèle. Si vous utilisez une procédure de sélection de modèle basée sur la validation croisée, cela signifie que vous obtenez une validation croisée imbriquée. Il est utile d’examiner le but de chaque validation croisée: l’un concerne la sélection du modèle, l’autre, l’estimation des performances.
Je ferais mon modèle final en ajustant le modèle (y compris la sélection du modèle) à l'ensemble de données, après avoir utilisé la validation croisée imbriquée pour avoir une idée des performances que je pouvais raisonnablement attendre de ce modèle.
la source
get an idea of the performance
?Je pense que personne n'a vraiment répondu à la première question. Par "validation croisée imbriquée", je pense qu'il voulait dire le combiner avec GridSearch. Généralement, GridSearch a un CV intégré et prend un paramètre sur le nombre de plis que nous souhaitons tester. Combiner ces deux méthodes est une bonne pratique, mais les modèles de GridSearch et CrossValidation ne sont pas votre modèle final. Vous devriez choisir les meilleurs paramètres et former éventuellement un nouveau modèle avec toutes vos données, ou même faire une CrossValidation ici aussi sur des données invisibles. Si le modèle est vraiment bon, vous le formerez sur toutes vos données. C'est ton dernier modèle.
la source
GridSearchCV(refit=True)
réajuste réellement un modèle sur les données FULL en utilisant les meilleurs paramètres, de sorte qu’une étape supplémentaire n’est pas nécessaire. Voir docs