Pourquoi Adaboost avec des arbres de décision?

10

J'ai lu un peu sur le renforcement des algorithmes pour les tâches de classification et Adaboost en particulier. Je comprends que le but d'Adaboost est de prendre plusieurs "apprenants faibles" et, à travers un ensemble d'itérations sur les données de formation, de pousser les classificateurs à apprendre à prédire les classes sur lesquelles le ou les modèles font des erreurs à plusieurs reprises. Cependant, je me demandais pourquoi tant de lectures que j'ai faites ont utilisé des arbres de décision comme classificateur faible. A-t-il une raison particulière pour ceci? Y a-t-il certains classificateurs qui font des candidats particulièrement bons ou mauvais pour Adaboost?

kylerthecreator
la source
L'apprenant le plus simple que vous pouvez utiliser est l'arbre de décision avec depth = 1. C'est peut-être pour cela que tout le monde l'utilise dans ses exemples.
Aaron

Réponses:

17

J'en ai parlé dans une réponse à une question SO connexe . Les arbres de décision sont généralement un très bon ajustement pour le boosting, bien plus que les autres algorithmes. La version à puce / résumé est la suivante:

  1. Les arbres de décision sont non linéaires. Stimuler avec des modèles linéaires ne fonctionne tout simplement pas bien.
  2. L'apprenant faible doit être constamment meilleur que la devinette aléatoire. Vous n'avez normalement pas besoin de régler les paramètres sur un arbre de décision pour obtenir ce comportement. La formation d'un SVM nécessite vraiment une recherche de paramètres. Étant donné que les données sont repondérées à chaque itération, vous devrez probablement effectuer une autre recherche de paramètres à chaque itération. Vous augmentez donc la quantité de travail que vous avez à faire par une grande marge.
  3. Les arbres de décision sont relativement rapides à former. Puisque nous allons en construire des centaines ou des milliers, c'est une bonne propriété. Ils sont également rapides à classer, ce qui est encore une fois important lorsque vous avez besoin de 100 ou de 1000 à exécuter avant de pouvoir afficher votre décision.
  4. En changeant la profondeur, vous avez un contrôle simple et facile sur le compromis biais / variance, sachant que le boosting peut réduire le biais mais aussi considérablement réduire la variance. Le boosting est connu pour être trop ajusté, donc le bouton facile à régler est utile à cet égard.
Raff.Edward
la source
1

Je n'ai pas de réponse textuelle. Voici cependant quelques réflexions.

Le boosting peut être vu en comparaison directe avec l'ensachage. Ce sont deux approches différentes du dilemme de compromis de variance de biais. Alors que l'ensachage a comme apprenants faibles, certains apprenants avec un biais faible et une variance élevée, en faisant la moyenne de l'ensemble d'ensachage, diminuent la variance pour un petit biais. La stimulation, d'autre part, fonctionne bien avec différents apprenants faibles. Les apprenants faibles stimulants ont un biais élevé et une faible variance. En construisant un apprenant au-dessus d'un autre, l'ensemble stimulant essaie de diminuer le biais, pour une petite variance.

Par conséquent, si vous envisagez par exemple d'utiliser l'ensachage et le boosting avec des arbres comme apprenants faibles, la meilleure façon d'utiliser est de petits / courts arbres avec boosting et des arbres très détaillés avec bagging. C'est pourquoi très souvent une procédure de boosting utilise un moignon de décision comme apprenant faible, qui est l'arbre le plus court possible (une seule condition if sur une seule dimension). Ce moignon de décision est très stable, donc il a une très faible variance.

Je ne vois aucune raison d'utiliser des arbres avec des procédures de boost. Cependant, les arbres courts sont simples, faciles à mettre en œuvre et faciles à comprendre. Cependant, je pense que pour réussir avec une procédure de boost, votre apprenant faible doit avoir une faible variance, doit être rigide, avec très peu de degrés de liberté. Par exemple, je ne vois aucun intérêt à avoir comme apprenant faible un réseau neuronal.

De plus, vous devez noter que pour une sorte de procédures de boosting, boosting de gradient par exemple, Breiman a constaté que si l'apprenant faible est un arbre, une certaine optimisation de la façon dont le boosting peut être fait. Nous avons donc des arbres augmentant le gradient. Il y a une belle exposition de boosting dans le livre ESTL.

rapaio
la source