Question

Je suis en train de lire sur les forêts autour de hasard, mais je ne peux pas vraiment trouver une réponse définitive sur le problème de surapprentissage. Selon le document original de Breiman, ils ne devraient pas surajuster en augmentant le nombre d'arbres dans la forêt, mais il semble qu'il n'y a pas de consensus à ce sujet. Cela me crée tout à fait une certaine confusion sur la question.

Peut-être que quelqu'un de plus expert que moi peut me donner une réponse ou me montrer plus concret dans la bonne direction pour mieux comprendre le problème.

Était-ce utile?

La solution

Chaque algorithme ML avec une grande complexité peut surajuster. Cependant, l'OP demande si un RF ne surajustement en augmentant le nombre d'arbres dans la forêt.

En général, les méthodes d'ensemble réduit la variance de prédiction pour presque rien, d'améliorer la précision de l'ensemble. Si l'on définit la variance de l'erreur de généralisation attendue d'un modèle aléatoire individuel comme:

De , la variance de l'erreur de généralisation attendue d'un correspond à d'ensemble:

p(x) est le coefficient de corrélation de Pearson entre les prédictions de deux modèles randomisés formés sur les mêmes données de deux graines indépendantes. Si l'on augmente le nombre de DT de la RF, M plus, la variance de l'ensemble diminue lorsque ρ(x)<1. Par conséquent, la variance d'un ensemble est strictement inférieure à la variance d'un modèle individuel.

En un mot, ce qui augmente le nombre de modèles individuels randomisés dans un ensemble ne sera jamais augmenter l'erreur de généralisation.

Autres conseils

Vous pouvez vouloir vérifier validation croisée - un site de stachexchange pour beaucoup de choses, y compris l'apprentissage de la machine.

En particulier, cette question (avec le titre exactement le même) a déjà répondu à plusieurs reprises. Vérifiez ces liens: https://stats.stackexchange.com/search?q=random+forest+overfit

Mais je peux vous donner la réponse courte à ce: oui, il fait surajustement, et parfois vous avez besoin de contrôler la complexité des arbres dans votre forêt, ou même élaguer quand ils grandissent trop - mais cela dépend de la bibliothèque vous utilisez pour la construction de la forêt. Par exemple. dans randomForest en R, vous ne pouvez contrôler la complexité

  1. La forêt aléatoire fait surajustement.
  2. La forêt aléatoire n'augmente pas l'erreur de généralisation quand on ajoute plus d'arbres au modèle. La variance de généralisation va à zéro avec plus d'arbres utilisés.

Je l'ai fait une expérience très simple. Je généré les données de synthèse:

y = 10 * x + noise

I former deux modèles ont Random Forest:

  • un avec des arbres pleins
  • un avec arbres élagués

Le modèle avec des arbres pleins a erreur de train inférieur, mais une erreur de test plus élevé que le modèle avec des arbres élagués. Les réponses des deux modèles:

Il est une preuve claire de overfitting. Alors je pris les hyper-paramètres du modèle overfitting et vérifier l'erreur tout en ajoutant à chaque étape 1 arbre. Je suis la parcelle suivante:

Comme vous pouvez le voir l'erreur surajustement ne change pas lors de l'ajout d'autres arbres, mais le modèle est overfitting. Voici le lien pour l'expérience que je l'ai fait.

STRUCTUREE DATASET -> TROMPEUR ERREURS OOB

Je l'ai trouvé cas de RF surapprentissage dans ma pratique de travail intéressant. Lorsque les données sont structurées overfits RF sur des observations OOB.

Détail:

J'essaie de prédire les prix de l'électricité sur le marché spot de l'électricité pour chaque seule heure (chaque ligne de jeu de données contiennent des paramètres prix et système (charge, capacités, etc.) pour cette seule heure).
Prix ??de l'électricité sont créés par lots (24 prix créés sur le marché de l'électricité dans une fixation en un instant du temps).
Donc, obs OOB pour chaque arbre sont des sous-ensembles aléatoires de d'heures, mais si vous prédisez les prochaines 24 heures vous le faites à la fois (en premier moment vous obtenez tous les paramètres du système, vous prédisez 24 prix, alors il y a une fixation qui produit ces prix), donc il est plus facile de faire des prévisions OOB, puis pour toute la journée suivante. obs OOB ne sont pas contenues dans des blocs de 24 heures, mais dispersées uniformément, comme il y a une auto-corrélation d'erreurs de prédiction est plus facile de prédire le prix pour seule heure qui manque alors pour le bloc entier d'heures manquantes.

plus facile de prévoir en cas d'erreur autocorrelation:
connu, connu, prédiction, connu, prédiction - OBB cas
plus dure:
connu, connu, connu, prédiction, prévision - cas réel de prédiction mondiale

J'espère que son intéressant

Licencié sous: CC-BY-SA avec attribution
scroll top