Pourquoi avons-nous besoin de XGBoost et Random Forest?


25

Je n'étais pas clair sur quelques concepts:

  1. XGBoost convertit les apprenants faibles en apprenants forts. Quel est l'avantage de faire cela? Combiner de nombreux apprenants faibles au lieu d'utiliser simplement un seul arbre?

  2. Random Forest utilise divers échantillons d'arbre pour créer un arbre. Quel est l'avantage de cette méthode au lieu d'utiliser simplement un arbre singulier?

Réponses:


35

Il est plus facile de commencer par votre deuxième question, puis de passer à la première.

Ensachage

Random Forest est un algorithme d'ensachage. Il réduit la variance.

Supposons que vous disposez de modèles très peu fiables, tels que les arbres de décision. (Pourquoi pas fiable? Parce que si vous modifiez un peu vos données, l'arbre de décision créé peut être très différent.) Dans un tel cas, vous pouvez créer un modèle robuste (réduire la variance) grâce à l' ensachage - l'ensachage est lorsque vous créez différents modèles en rééchantillonnant vos données pour rendre le modèle résultant plus robuste.

La forêt aléatoire est ce que nous appelons l'ensachage appliqué aux arbres de décision, mais ce n'est pas différent des autres algorithmes d'ensachage.

Pourquoi voudriez-vous faire ça? Cela dépend du problème. Mais généralement, il est hautement souhaitable que le modèle soit stable.

Booster

L'amplification réduit la variance et réduit également le biais. Il réduit la variance car vous utilisez plusieurs modèles (ensachage). Il réduit le biais en entraînant le modèle suivant en lui indiquant les erreurs commises par les modèles précédents (la partie boosting).

Il existe deux algorithmes principaux:

  • Adaboost: c'est l'algorithme original; vous dites aux modèles suivants de punir plus lourdement les observations erronées par les modèles précédents
  • Augmentation du gradient: vous entraînez chaque modèle suivant en utilisant les résidus (la différence entre les valeurs prédites et vraies)

Dans ces ensembles, votre apprenant de base doit être faible. Si cela correspond aux données, il n'y aura pas de résidus ou d'erreurs sur lesquels les modèles suivants pourront s'appuyer. Pourquoi ces bons modèles? Eh bien, la plupart des compétitions sur des sites Web comme Kaggle ont été gagnées en utilisant des arbres améliorant le gradient. La science des données est une science empirique, "parce que ça marche" est assez bonne. Quoi qu'il en soit, notez que les modèles de boosting peuvent s'adapter (même si, empiriquement, ce n'est pas très courant).

Une autre raison pour laquelle l'augmentation du gradient, en particulier, est également assez cool: car elle rend très facile l'utilisation de différentes fonctions de perte, même lorsque le dérivé n'est pas convexe. Par exemple, lorsque vous utilisez des prévisions probabilistes, vous pouvez utiliser des éléments tels que la fonction flipper comme fonction de perte; quelque chose qui est beaucoup plus difficile avec les réseaux de neurones (car la dérivée est toujours constante).

[Note historique intéressante: Boosting était à l'origine une invention théorique motivée par la question « pouvons-nous construire un modèle plus fort en utilisant des modèles plus faibles »]


Remarque: Les gens confondent parfois des arbres aléatoires avec des forêts et un gradient, simplement parce que les deux utilisent des arbres de décision, mais ce sont deux familles très différentes d'ensembles.


1
Le boosting réduit le biais en modélisant itérativement le résiduel et la variance en prenant une moyenne pondérée; cf. § 5.5 Biais, variance et stabilité , pp. 118, Boosting: Foundations and Algorithms , Robert E. Schapire, Yoav Freund.
Emre

@Emre, vous avez bien sûr raison. Quelqu'un a modifié mon message et a modifié la réduction par augmentation . Je l'ai inversé.
Ricardo Cruz

8

Lorsque vous créez une arborescence, vous devez définir certains critères de fractionnement des nœuds. Il s'agit notamment de mesures telles que le gain d'informations et l'indice Gini. Ce sont des approches heuristiques , elles ne garantissent pas la meilleure répartition possible.

Pondération dans le fait que certains attributs sont moins pertinents et / ou plus bruyants, ainsi que de nombreux autres problèmes qui surviennent dans les données réelles. En bref, vous ne pouvez pas construire un arbre parfait dans un temps de calcul décent (vous pouvez bien sûr construire tous les arbres possibles et tester le meilleur, mais vous devrez alors attendre quelques années pour vous entraîner même dans un ensemble de données de taille moyenne).

Puisque nous ne pouvons pas avoir le meilleur arbre, nous avons des approximations. Une approximation consiste à construire de nombreux arbres (en utilisant différentes partitions de données ou partitions d'attributs), car nous nous attendons à ce que la plupart des arbres soient quelque peu corrects et considérons leurs classifications dans un système de vote; cela devrait traiter la plupart du bruit, la partition verticale peut traiter des attributs non pertinents, l'heuristique a moins d'importance et peut-être d'autres avantages.


1

J'ajouterais un petit ajout aux bonnes réponses. Le problème principal est le sur-ajustement. Dès que vous avez plus d'un paramètre et que vous ajoutez également des fonctions non linéaires, tous les algorithmes commencent à s'adapter. Ils voient quelque chose dans les données qui n'existe pas. Comme quand il fait sombre ou que le brouillard est fort, les gens ont tendance à voir dans l'obscurité / brouillard des choses qui n'existent pas. Presque tous les algorithmes de calcul font plus de surajustement que les humains. Même les régressions linéaires commencent à montrer des coefficients étranges lorsque les variables sont fortement corrélées. S'il n'y avait pas de surajustement, les arbres de décision habituels, sur lesquels ces algorithmes sont basés, auraient été meilleurs que Random Forest ou XGBoost.

Et il n'y a pas de science exacte pourquoi le sur-ajustement se produit et pourquoi certains algorithmes sont meilleurs que les autres. En théorie, les modèles ARIMA sont très solides, mais la pratique montre que l'utilisation de techniques de lissage exponentiel est meilleure et ARIMA ne peut même pas différencier les variables qui se comportent selon ARIMA mais avec des paramètres différents.

Certains réseaux de neurones et en particulier les réseaux de neurones convolutifs semblent avoir un faible sur-ajustement. Dans le même temps, l'idée originale de réseaux de neurones entièrement connectés échoue avec un nombre élevé de neurones en raison d'un surajustement.

Les principales possibilités de lutte contre le sur-ajustement sont:

  1. échantillonnage aléatoire
  2. moyenne sur plusieurs modèles
  3. randomisation du modèle (chute aléatoire des neurones lors de la formation des réseaux de neurones)

Si je comprends bien les algorithmes, Random Forest et XGBoost effectuent un échantillonnage aléatoire et une moyenne sur plusieurs modèles et parviennent ainsi à réduire le sur-ajustement.

Dans le concours de reconnaissance d'image ImageNet, le meilleur modèle pour 2016 (Shao et al) était une combinaison de plusieurs très bons modèles. Certains d'entre eux ont remporté le concours les années précédentes. Ce modèle avait une erreur de 20% de moins que tous les modèles sur lesquels il était basé. C'est ainsi que la moyenne sur plusieurs modèles pourrait être forte dans la lutte contre le sur-ajustement.

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.