On m'a récemment dit que le processus que j'avais suivi (composante d'une thèse de maîtrise) pouvait être considéré comme trop adapté. Je cherche à mieux comprendre cela et à voir si d'autres sont d'accord.
L'objectif de cette partie du document est de
Comparez les performances des arbres de régression à gradient amélioré par rapport aux forêts aléatoires sur un ensemble de données.
Regardez les performances du modèle final choisi (GBM ou RF).
Les packages gbm
et randomForest
dans R sont utilisés avec
caret
.
Le processus suivi était le suivant:
- Prétraitement préliminaire des données (par exemple, en associant les valeurs manquantes des prédicteurs nominaux à une catégorie distincte appelée "manquant"). La variable cible n'a pas été examinée en ce qui concerne tout prétraitement (qui était très minime).
- Créez une grille de valeurs pour les méta-paramètres de chaque algorithme (par exemple nombre d'itérations pour GBM).
- Créez 25 divisions aléatoires de l'ensemble de données (65% de formation et 35% de test).
Répétez 25 fois ce qui suit pour GBM (à chaque fois en utilisant l'un des trains aléatoires / fractionnements de test.
- Utilisez la validation croisée 5 fois pour trouver les paramètres "optimaux" de l'algorithme sur la recherche dans la grille. Rien des exécutions précédentes utilisé du tout dans l'exécution en cours.
- Une fois déterminé, ajustez un modèle à l'ensemble d'entraînement "actuel" et prédisez l'ensemble de test "actuel". Mettez de côté la mesure des performances de cette exécution.
Une fois que 25 mesures de performance (en fait une mesure spécifique à un domaine, mais pensez-y comme une précision) sont obtenues de cette façon, suivez exactement le même processus, en utilisant exactement les mêmes échantillons indépendants de train et de test, pour RF (même processus, juste avec différents recherche grille bien sûr).
Maintenant, j'ai 25 mesures de performance des ensembles de test d'alors "actuels" pour GBM et RF. Je les compare en utilisant un test de rang signé Wilcoxon et également un test de permutation. J'ai trouvé que GBM était supérieur. J'ai également affirmé que la distribution de la mesure de performance de ces 25 exécutions pour GBM est la performance attendue du classificateur GBM final.
Ce que je n'ai pas fait, c'était de retirer un ensemble de tests aléatoires dès le début et de le mettre de côté pour le comparer au modèle GBM final construit à partir de toutes les données d'entraînement. Je soutiens que ce que j'ai fait était en réalité bien meilleur, car j'ai répété 25 fois le processus de séparation des données / modèle de réglage / test en attente par rapport à une seule.
Y a-t-il trop de place ici? Étant donné que les 25 essais ont été utilisés pour sélectionner GBM par rapport à RF, cela signifie-t-il que les mesures de performance acquises à partir du processus ne peuvent pas être utilisées comme estimation de performance pour le modèle complet?
EDIT En réponse au commentaire de Wayne, voici ce qui a été fait lors de chacune des 25 manches:
- Les données échantillonnées pour le ième ensemble d'apprentissage (i = 1, .., 25) ont été divisées en 5 groupes de taille égale. Un modèle a été ajusté en utilisant 4 des 5 groupes, en définissant les paramètres GBM (par exemple nombre d'itérations) égaux aux valeurs de la grille jth (j = 1, .., 18).
- La performance du 5ème groupe a été calculée à l'aide de ce modèle.
- Les étapes 1 et 2 ont été répétées 4 fois de plus (ancien CV régulier avec k = 5). Les performances ont été moyennées à partir des 5 sous-exécutions et cela constituait les performances attendues de GBM avec cet certain ensemble de valeurs de paramètres.
- Les étapes 1 à 3 ont été répétées pour les 17 autres "lignes" de la grille.
Une fois terminé, les meilleures valeurs de paramètres de l'exercice ci-dessus ont été déterminées et un GBM a été ajusté en utilisant ces valeurs de paramètres et le cinquième ensemble d'entraînement. Ses performances ont été estimées sur le ième jeu de tests.
Une fois que tout ce processus a été effectué 25 fois, il y avait 25 mesures de performance disponibles pour GBM. Ensuite, ils ont été rassemblés pour RF de la même manière.
Après avoir comparé et choisi GBM, j'ai regardé ces 25 mesures de performance et pris la moyenne et l'erreur Stnd pour déterminer un intervalle de confiance pour un modèle GBM sur ces données.
Réponses:
Imaginez au lieu de simplement sélectionner GBM vs RF, vous choisissiez plutôt parmi 100 classificateurs GBM différents (en supposant que la formation GBM utilise une sorte d'aléatoire et que vous leur attribuez des graines aléatoires de 1 à 100). Ensuite, vous choisiriez l'un de ces 100 GBM comme meilleur GBM. Mais il est presque certain que l'un des 100 modèles que vous avez choisis a eu la chance de battre ses 99 frères et sœurs, et votre estimation de performance sera donc optimiste.
Vous n'avez utilisé que deux apprenants, et ils n'étaient pas formés par un algorithme identique, donc votre GBM unique n'avait probablement pas beaucoup de pression de sélection (surtout s'il surpassait considérablement les RF), mais votre estimation d'erreur va toujours être un peu optimiste.
la source
Il semble que vous ayez essayé de mélanger deux techniques, chacune d'elles étant légitime, mais la façon dont vous l'avez fait donne l'impression que vous vous retrouverez avec des fuites de données entre les cas.
Au niveau inférieur, vous semblez utiliser correctement CV. Ce qui suggère que le niveau supérieur devrait également être un CV, résultant en un CV imbriqué, mais votre niveau supérieur n'est pas un CV.
Au niveau supérieur, il semble que vous souhaitiez peut-être effectuer une validation d'amorçage, auquel cas un double amorçage fonctionnerait pour les niveaux supérieur et inférieur, mais votre niveau supérieur n'est pas un amorçage approprié.
Vous voudrez peut-être consulter cet article stackexchange. et les articles auxquels il renvoie, et peut-être restructurer votre niveau supérieur pour devenir un CV. Notez également que nul autre que Frank Harrell ne poste dans ce fil et suggère que CV soit répété une fois. (J'ai été choqué, pensant qu'une répétition devrait le faire.)
la source