Comment choisir le nombre d'arbres dans un modèle de régression boosté généralisé?


11

Existe-t-il une stratégie pour choisir le nombre d'arbres dans un GBM? Plus précisément, l' ntreesargument dans Rla gbmfonction de.

Je ne vois pas pourquoi vous ne devriez pas définir ntreesla valeur raisonnable la plus élevée. J'ai remarqué qu'un plus grand nombre d'arbres réduit clairement la variabilité des résultats de plusieurs GBM. Je ne pense pas qu'un nombre élevé d'arbres conduirait à un sur-ajustement.

Des pensées?

Réponses:


3

C'est GBM:

" Je ne pense pas que ... " a été la première partie dangereuse de nombreuses phrases.

Assez bon n'a pas de sens sans une mesure de bonté, une rubrique.

Quelles sont les mesures de bonté pour toute autre méthode?

  • Différence entre modèle et données (sse, ...)
  • Divergence de l'erreur dans un ensemble d'exclusion (erreur de formation vs erreur de test)
  • Rapport nombre de paramètres / nombre d'échantillons (la plupart des gens aiment 5 échantillons par paramètre ou 30 échantillons par paramètre)
  • Validation croisée (méthodes d'ensemble sur la divergence des tests d'erreur)

Comme un réseau de neurones ou une spline, vous pouvez effectuer une interpolation linéaire par morceaux sur les données et obtenir un modèle qui ne peut pas généraliser. Vous devez abandonner une partie de la "faible erreur" en échange de l'applicabilité générale - généralisation.

Plus de liens:


2

J'ai trouvé un aperçu du problème: http://cran.r-project.org/web/packages/dismo/vignettes/brt.pdf

La gbm.stepfonction peut être utilisée pour déterminer le nombre optimal d'arbres. Je ne sais toujours pas ce qui fait que la déviance du modèle augmente après un certain nombre d'arbres, donc je suis toujours prêt à accepter une réponse qui répond à cette partie de la question!


2
Le sur-ajustement provoque l'augmentation. La plupart des bonnes méthodes créent un ensemble d'exclusion et l'utilisent pour tester le modèle, mais pas pour le mettre à jour. Cela permet la détection de l'apparition de sur-ajustement.
EngrStudent

0

Ceci est le guide de travail pour augmenter les arbres de régression d'Elith et al.: Http://onlinelibrary.wiley.com/doi/10.1111/j.1365-2656.2008.01390.x/full Très utile!

Vous devez au moins utiliser 1000 arbres. Pour autant que je sache, vous devez utiliser la combinaison du taux d'apprentissage, de la complexité des arbres et du nombre d'arbres qui produit l'erreur prédictive minimale. Des valeurs plus petites du taux d'apprentissage entraînent un risque d'entraînement plus important pour le même nombre d'itérations, tandis que chaque itération réduit le risque d'entraînement. Si le nombre d'arbres est suffisamment grand, le risque peut être arbitrairement réduit (voir: Hastie et al., 2001, «The Elements of Statistical Learning, Data Mining, Inference and Prediction» ).


Il est vrai que Elith et al. suggérer en règle générale d'utiliser 1000 arbres. Cependant, cela est basé sur une analyse détaillée de la stabilité prédictive pour l'ensemble de données spécifique utilisé dans l'article. Il semble peu probable que le même nombre fonctionne pour tout ensemble de données possible. Peut-être pourriez-vous développer un peu votre réponse en donnant quelques détails sur l'analyse qu'ils ont effectuée, en particulier dans l'annexe S1.
DeltaIV

0

Comme cela est courant dans certains algorithmes d'apprentissage automatique, le boost est soumis à un compromis de variance de biais en ce qui concerne le nombre d'arbres. En gros, ce compromis vous dit que: (i) les modèles faibles ont tendance à avoir un biais élevé et une faible variance: ils sont trop rigides pour capturer la variabilité dans l'ensemble de données de formation, donc ne fonctionneront pas bien non plus dans l'ensemble de test (test élevé erreur) (ii) les modèles très forts ont tendance à avoir un biais faible et une variance élevée: ils sont trop flexibles et ils surpassent l'ensemble d'entraînement, donc dans l'ensemble d'essai (comme les points de données sont différents de l'ensemble d'entraînement), ils ne fonctionneront pas non plus bien (erreur de test élevée)

Le concept de Boosting est de commencer avec des arbres peu profonds (modèles faibles) et de continuer à ajouter plus d'arbres peu profonds qui tentent de corriger les faiblesses des arbres précédents. Lorsque vous effectuez ce processus, l'erreur de test a tendance à baisser (car le modèle global devient plus flexible / puissant). Cependant, si vous ajoutez un trop grand nombre de ces arbres, vous commencez à sur-ajuster les données d'entraînement et par conséquent l'erreur de test augmente. La validation croisée aide à trouver le point idéal

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.