Comment trouver des valeurs optimales pour les paramètres de réglage dans les arbres boostés?

9

Je me rends compte qu'il y a 3 paramètres de réglage dans le modèle de boosting trees, c'est-à-dire

  1. le nombre d'arbres (nombre d'itérations)
  2. paramètre de rétrécissement
  3. nombre de divisions (taille de chaque arbre constitutif)

Ma question est: pour chacun des paramètres de réglage, comment dois-je trouver sa valeur optimale? Et quelle méthode?

Notez que: le paramètre de rétrécissement et le paramètre nombre d'arbres fonctionnent ensemble, c'est-à-dire qu'une valeur plus petite pour le paramètre de rétrécissement conduit à une valeur plus élevée pour le nombre d'arbres. Et nous devons également en tenir compte.

Je suis particulièrement intéressé par la méthode pour trouver la valeur optimale pour le nombre de scissions. Doit-il être basé sur une validation croisée ou une connaissance du domaine sur le modèle derrière?

Et comment ces choses sont-elles effectuées dans le gbmpackage en R?

mon nom est Jeff
la source

Réponses:

6

Le package caret en R est fait sur mesure pour cela.

Sa fonction de train prend une grille de valeurs de paramètres et évalue les performances en utilisant différentes saveurs de validation croisée ou de bootstrap. L'auteur du package a écrit un livre, Modélisation prédictive appliquée , qui est fortement recommandé. 5 répétitions de validation croisée 10 fois sont utilisées dans le livre.

Pour choisir la profondeur de l'arbre, j'irais d'abord pour la connaissance du sujet sur le problème, c'est-à-dire si vous ne vous attendez à aucune interaction - limitez la profondeur à 1 ou optez pour un modèle paramétrique flexible (qui est beaucoup plus facile à comprendre et à interpréter). Cela étant dit, je me retrouve souvent à régler la profondeur de l'arbre car la connaissance du sujet est souvent très limitée.

Je pense que le paquet gbm règle le nombre d'arbres pour des valeurs fixes de la profondeur et du rétrécissement de l'arbre.

ErikL
la source
Le livre inclut-il également le code R?
user1769197
Je veux dire un exemple travaillé qui inclut du code R afin que nous comprenions comment les modèles sont implémentés par calcul et appliqués sur un ensemble de données
user1769197
1
Oui. Consultez la page Web du livre appliedpredictivemodeling.com pour plus d'informations.
ErikL
1

Il existe deux bonnes sources pour les arbres de régression boostés et le paquet gbm. Pour l'explication du BRT et l'optimisation du nombre d'arbres ( nt), du taux d'apprentissage ( lr) et de la complexité des arbres ( tc), voir Un guide de travail pour les arbres de régression boosté Bien qu'il se concentre sur l'écologie, je pense que vous ne trouverez pas de meilleure introduction au BRT .

Pour l'implémentation de BRT dans le package gbm, voir Boosted Regression Trees pour la modélisation écologique

En bref, une règle de base est de sélectionner un taux d'apprentissage qui permet au modèle BRT de s'adapter à au moins 1000 arbres, donc vous aurez probablement besoin d'un faible taux d'apprentissage, peut-être 0,001 pour y parvenir. Mais cela dépend de la taille de vos données, voir fig. 2 et 3 dans le Guide de travail de BRT. Je pense qu'une façon possible serait de configurer différents modèles dans BRT en fonction de la taille des données, par exemple, combiner différents lr (0,1, 0,01, 0,001), tc (1, 3, 5, 7, 9, 20) avec un sac différent .fractions (0,5, 0,7, 0,9) et choisissez la meilleure en fonction de la déviance la plus faible ou du score ROC le plus élevé. Peut-être que cela a aidé.

user3624251
la source
1
Pour référence, BRT_MODEL$self.statistics$correlation[[1]]la corrélation entre les tests et les données de formation est une bonne mesure de test.
dez93_2000
sonne comme une conception statistique de l'expérience pour moi. : P
EngrStudent