Quelle mesure d'erreur de formation signaler pour les forêts aléatoires?

15

Je prépare actuellement des forêts aléatoires pour un problème de classification en utilisant le randomForestpackage dans R, et je ne sais pas comment signaler une erreur de formation pour ces modèles.

Mon erreur d'entraînement est proche de 0% lorsque je la calcule en utilisant les prédictions que j'obtiens avec la commande:

predict(model, data=X_train)

X_trainsont les données d'entraînement.

Dans une réponse à une question connexe , j'ai lu qu'il fallait utiliser l' erreur de formation hors du sac (OOB) comme métrique d'erreur de formation pour les forêts aléatoires. Cette quantité est calculée à partir des prédictions obtenues avec la commande:

predict(model)

Dans ce cas, l'erreur de formation OOB est beaucoup plus proche de l'erreur de test moyenne à 10 CV, qui est de 11%.

Je me demande:

  1. Est-il généralement accepté de signaler l'erreur de formation OOB comme mesure d'erreur de formation pour les forêts aléatoires?

  2. Est-il vrai que la mesure traditionnelle de l'erreur d'entraînement est artificiellement faible?

  3. Si la mesure traditionnelle de l'erreur d'entraînement est artificiellement faible, alors quelles sont les deux mesures que je peux comparer pour vérifier si le RF est trop adapté?

Berk U.
la source

Réponses:

10

Pour ajouter à la réponse de @Soren H. Welling.

1. Est-il généralement accepté de signaler l'erreur de formation OOB comme mesure d'erreur de formation pour les forêts aléatoires?

Non. L'erreur OOB sur le modèle entraîné n'est pas la même chose que l'erreur d'apprentissage. Il peut cependant servir de mesure de la précision prédictive.

2. Est-il vrai que la mesure traditionnelle de l'erreur de formation est artificiellement faible?

Cela est vrai si nous rencontrons un problème de classification en utilisant les paramètres par défaut. Le processus exact est décrit dans un article de forum par Andy Liaw , qui gère le randomForestpackage en R, comme suit:

Pour la plupart, les performances sur l'ensemble d'entraînement n'ont aucun sens. (C'est le cas pour la plupart des algorithmes, mais particulièrement pour RF.) Dans le paramètre par défaut (et recommandé), les arbres sont agrandis à la taille maximale, ce qui signifie qu'il est très probable qu'il n'y ait qu'un seul point de données dans la plupart des nœuds terminaux, et le les prédictions aux nœuds terminaux sont déterminées par la classe majoritaire du nœud, ou le point de données isolé. Supposons que ce soit le cas tout le temps; c'est-à-dire que dans tous les arbres, tous les nœuds terminaux n'ont qu'un seul point de données. Un point de données particulier serait "dans le sac" dans environ 64% des arbres de la forêt, et chacun de ces arbres a la bonne prévision pour ce point de données. Même si tous les arbres où ces points de données sont hors du sac ont donné la mauvaise prédiction, par vote majoritaire de tous les arbres, vous obtenez toujours la bonne réponse à la fin. Ainsi, fondamentalement, la prédiction parfaite sur le train pour RF est "par conception".

nodesize > 1sampsize < 0.5N(Xje,yje)

3. Si la mesure traditionnelle de l'erreur de formation est artificiellement faible, alors quelles sont les deux mesures que je peux comparer pour vérifier si le RF est sur-ajusté?

Si nous exécutons RF avec nodesize = 1et sampsize > 0.5, l'erreur d'apprentissage de la RF sera toujours proche de 0. Dans ce cas, la seule façon de savoir si le modèle est trop adapté est de conserver certaines données comme un ensemble de validation indépendant. Nous pouvons ensuite comparer l'erreur de test 10 CV (ou l'erreur de test OOB) à l'erreur sur l'ensemble de validation indépendant. Si l'erreur de test à 10 CV est beaucoup plus faible que l'erreur sur l'ensemble de validation indépendant, alors le modèle peut être trop adapté.

Berk U.
la source
2

[modifié le 21.7.15 à 8 h 31 CEST]

Je suppose que vous avez utilisé RF pour la classification. Parce que dans ce cas, l'algorithme produit des arbres entièrement développés avec des nœuds terminaux purs d'une seule classe cible.

predict(model, data=X_train)

Cette ligne de codage est comme un chien chassant [~ 66% de] sa propre queue. La prédiction de tout échantillon d'apprentissage est la classe de l'échantillon d'apprentissage lui-même. Pour la régression, RF s'arrête si le nœud contient 5 échantillons ou moins ou si le nœud est pur. Ici, l'erreur de prédiction sera faible mais pas 0%.

Dans l'apprentissage automatique, nous travaillons souvent avec de grands espaces d'hypothèses. Cela signifie qu'il y aura toujours de nombreuses hypothèses / explications / modèles non encore falsifiés sur la structure des données de notre ensemble de formation. Dans les statistiques classiques, l'espace d'hypothèse est souvent petit et, par conséquent, l'ajustement direct du modèle est informatif en fonction d'une théorie des probabilités supposée. Dans l'apprentissage automatique, le manque d'ajustement direct est-il lié au biais du modèle. Le biais est "l'inflexibilité" du modèle. Ce ne est pasde toute façon fournir une approximation de la puissance de généralisation (la capacité de prédire de nouveaux événements). Pour les modèles algorithmiques, la validation croisée est le meilleur outil pour approximer la puissance de généralisation, car aucune théorie n'est formulée. Cependant, si les hypothèses du modèle d'échantillonnage indépendant échouent, le modèle peut être de toute façon inutile, même lorsqu'une validation croisée bien effectuée suggère le contraire. En fin de compte, la preuve la plus solide est de prédire de manière satisfaisante un certain nombre de jeux de tests externes de diverses origines.

Retour au CV: La sortie du sac est souvent un type de CV accepté. Je dirais personnellement que OOB-CV fournit des résultats similaires à 5 fois CV, mais c'est une très petite nuisance. Si pour comparer disons RF à SVM, alors OOB-CV n'est pas utile car nous éviterions normalement de mettre SVM en sac. Au lieu de cela, SVM et RF seraient intégrés dans le même schéma de validation croisée, par exemple 10 fois 10 répétitions avec des partitions correspondantes pour chaque répétition. Toutes les étapes d'ingénierie des fonctionnalités devraient souvent également être validées de manière croisée. Si pour garder les choses propres, l'ensemble du pipeline de données pourrait être intégré dans le CV.

Si vous ajustez votre modèle avec votre ensemble de tests (ou validation croisée), vous gonflez à nouveau votre espace d'hypothèse et les performances de prédiction validées sont probablement trop optimistes. Au lieu de cela, vous aurez besoin d'un ensemble d'étalonnage (ou boucle CV d'étalonnage) à régler et d'un ensemble de validation de test (ou boucle CV de validation) pour évaluer votre modèle optimal final.

Dans le sens extrême, votre score de validation ne sera impartial que si vous n'agissez jamais sur ce résultat, lorsque vous le voyez. C'est le paradoxe de la validation, car pourquoi obtiendrions-nous une connaissance qui n'est vraie que si vous n'y agissez pas. Dans la pratique, la communauté accepte volontiers certains biais de publication, où les chercheurs qui ont obtenu au hasard une validation trop optimiste sont plus susceptibles de publier que ceux qui ont malheureusement réussi une validation trop pessimiste. Par conséquent, parfois, pourquoi ne peut pas reproduire d'autres modèles.

Soren Havelund Welling
la source
Merci pour ça. Deux questions: (1) Comment la prédiction d'un échantillon de formation est-elle la classe de l'échantillon de formation lui-même? Il doit y avoir des arbres qui n'utilisent pas l'échantillon de formation qui sont utilisés dans la procédure de vote majoritaire non? (2) Comment évalueriez-vous si une mesure RF est trop adaptée?
Berk U.20
(1) ben oui j'y étais un peu rapide, j'ai édité la réponse. Tout échantillon sera en sac dans ~ 66% des arbres. Si un échantillon dans un arbre était inbag pendant l'entraînement, il se retrouvera dans ce même nœud lors de la prédiction à ~ 66%, et cela suffit pour gagner le vote majoritaire à chaque fois. Confirmez cela en réduisant la taille du samp à par exemple 30% des échantillons de train, et notez une augmentation par rapport à 0% d'erreur de classification. (2) Je pense avoir répondu à cela. La RF ne se surajoute pas en soi, mais vous pouvez créer un contexte pendant par exemple le réglage où vous obtiendrez un résultat OOB-CV trop optimiste. Intégrez l'ensemble de votre processus dans un nouveau CV pour en être sûr.
Soren Havelund Welling