Y a-t-il sur-ajustement dans cette approche de modélisation

11

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 gbmet randomForestdans 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:

  1. 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).
  2. La performance du 5ème groupe a été calculée à l'aide de ce modèle.
  3. 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.
  4. 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.

B_Miner
la source
Je voudrais voir plus de détails dans votre premier point pour la section "Répétez 25 fois la suivante ...". Quelles données sont multipliées par 5 et comment les données sont-elles utilisées pour chaque ensemble de méta-paramètres?
Wayne
@Wayne, veuillez voir ma modification.
B_Miner

Réponses:

5

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.

rrenaud
la source
Si une fois que le GBM a été sélectionné comme modèle final (et que je fais semblant d'avoir sorti un seul ensemble de tests au tout début), je prends toutes les données d'entraînement et j'adapte un GBM avec lui (en utilisant à nouveau CV pour choisir les paramètres de l'algorithme) puis je marque ce test. Pensez-vous vraiment que la mesure d'erreur sur cet ensemble de tests était meilleure que celle que j'avais des 25 ré-échantillons? C'est la partie avec laquelle je lutte. Est-ce que vous ne pouvez pas utiliser les mêmes données pour la sélection du modèle (GBM sur RF ou GBM contre 100 autres choix) ET utiliser la mesure d'erreur qui en résulte?
B_Miner
J'ai bien sûr l'idée de ne pas utiliser les données d'entraînement pour évaluer les performances, mais ce cas semblait différent et valide ....
B_Miner
@B_Miner Je pense que c'est une infraction très mineure, mais je ne fais pas partie de votre comité de thèse: P
rrenaud
Comme l'infraction existe, l'attribueriez-vous à «utiliser les mêmes données pour la sélection du modèle (GBM sur RF ou GBM contre 100 autres choix) ET utiliser la mesure d'erreur qui en a résulté?
B_Miner
3

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.)

Wayne
la source
Qu'entendez-vous par niveau supérieur - les 25 itérations du groupe d'abandons répétés?
B_Miner
J'ai lu les commentaires du Dr Harrell. Je pense qu'il y a un décalage entre certains de ces conseils et l'exploration de données (grandes données). 25 itérations que j'ai terminées ont pris 4 jours et c'était sous échantillonnage substantiel des cas négatifs.
B_Miner