Algorithme de forêt aléatoire et d'arbre de décision

14

Une forêt aléatoire est une collection d'arbres de décision suivant le concept d'ensachage. Lorsque nous passons d'un arbre de décision à l'arbre de décision suivant, comment les informations apprises par le dernier arbre de décision passent-elles au suivant?

Parce que, selon ma compréhension, il n'y a rien de tel qu'un modèle formé qui est créé pour chaque arbre de décision puis chargé avant que le prochain arbre de décision commence à apprendre de l'erreur mal classée.

Alors, comment ça marche?

Abhay Raj Singh
la source
"Lorsque nous passons d'un arbre de décision au prochain arbre de décision". Cela suggère un processus linéaire. Nous avons construit des implémentations parallèles où nous avons travaillé sur une arborescence par cœur de processeur; cela fonctionne parfaitement, à moins que vous n'utilisiez un générateur de nombres aléatoires distinct par cœur de processeur dans la formation, qui partagent tous la même graine. Dans ce cas, vous pouvez vous retrouver avec beaucoup d'arbres identiques.
MSalters

Réponses:

23

Aucune information n'est transmise entre les arbres. Dans une forêt aléatoire, tous les arbres sont répartis de manière identique, car les arbres sont cultivés en utilisant la même stratégie de randomisation pour tous les arbres. Tout d'abord, prenez un échantillon bootstrap des données, puis agrandissez l'arborescence à l'aide de divisions à partir d'un sous-ensemble de fonctionnalités choisi au hasard. Cela se produit pour chaque arbre individuellement sans attention aux autres arbres de l'ensemble. Cependant, les arbres sont corrélés uniquement du fait que chaque arbre est formé sur un échantillon provenant d'un pool commun de données de formation; plusieurs échantillons du même ensemble de données auront tendance à être similaires, de sorte que les arbres coderont une partie de cette similitude.

Vous pourriez trouver utile de lire une introduction aux forêts aléatoires à partir d'un texte de haute qualité. L'un est "Random Forests" par Leo Breiman. Il y a aussi un chapitre dans Elements of Statistical Learning par Hastie et al.

Il est possible que vous ayez confondu des forêts aléatoires avec des méthodes de boost telles que AdaBoost ou des arbres boostés par gradient. Les méthodes de boost ne sont pas les mêmes, car elles utilisent des informations sur les inadaptations des rounds de boosting précédents pour informer le prochain round de boosting. Voir: La forêt aléatoire est-elle un algorithme de renforcement?

Sycorax dit de réintégrer Monica
la source
10

Les forêts aléatoires sont une collection d'arbres de décision multiples qui sont formés indépendamment les uns des autres . Il n'y a donc pas de notion de formation séquentielle dépendante (ce qui est le cas dans le renforcement des algorithmes ). En conséquence, comme mentionné dans une autre réponse, il est possible de faire un entraînement parallèle des arbres.

Vous aimeriez peut-être savoir d'où vient le "aléatoire" dans la forêt aléatoire: il y a deux façons d'injecter le hasard dans le processus d'apprentissage des arbres. La première est la sélection aléatoire des points de données utilisés pour l'apprentissage de chacun des arbres, et la seconde est la sélection aléatoire des caractéristiques utilisées dans la construction de chaque arbre. Comme un seul arbre de décision a généralement tendance à surcharger les données, l'injection d'aléatoire de cette manière se traduit par un tas d'arbres où chacun d'eux a une bonne précision (et éventuellement une sur-adaptation) sur un sous-ensemble différent des données d'entraînement disponibles . Par conséquent, lorsque nous prenons la moyenne des prévisions faites par tous les arbres, nous observerions une réduction du sur-ajustement (par rapport au cas de la formation d' un seul arbre de décision sur toutes les données disponibles ).

MN

  1. i=0
  2. MMSi
  3. iTiSi
    • le processus d'apprentissage est le même que l'apprentissage d'un arbre de décision, à la différence près qu'à chaque nœud de l'arbre, seule une sélection aléatoire de caractéristiques est utilisée pour la division de ce nœud.
  1. i=i+1
  2. i<N

T1T2TN

  • S'il est utilisé pour une tâche de régression, prenez la moyenne des prédictions comme prédiction finale de la forêt aléatoire.

  • S'il est utilisé pour une tâche de classification, utilisez une stratégie de vote doux : prenez la moyenne des probabilités prédites par les arbres pour chaque classe, puis déclarez la classe avec la probabilité moyenne la plus élevée comme prédiction finale de la forêt aléatoire.

De plus, il convient de mentionner qu'il est possible d'entraîner les arbres de manière séquentielle et c'est exactement ce que fait l'algorithme des arbres boostés par le gradient , ce qui est une méthode totalement différente des forêts aléatoires.

aujourd'hui
la source
8

La forêt aléatoire est un algorithme d'ensachage plutôt qu'un algorithme de renforcement.

La forêt aléatoire construit l'arbre indépendamment en utilisant un échantillon aléatoire des données. Une implémentation parallèle est possible.

Vous voudrez peut-être vérifier l'augmentation du gradient où les arbres sont construits séquentiellement où le nouvel arbre essaie de corriger l'erreur commise précédemment.

Siong Thye Goh
la source
6

Alors comment ça marche?

Random Forest est une collection d'arbres de décision. Les arbres sont construits indépendamment. Chaque arbre est formé sur un sous-ensemble de fonctionnalités et un sous-ensemble d'un échantillon choisi avec remplacement.

Lors de la prévision, par exemple pour la classification, les paramètres d'entrée sont donnés à chaque arbre de la forêt et à chaque arbre "vote" sur la classification, l'étiquette avec la plupart des votes l'emportant.

Pourquoi utiliser Random Forest sur un simple arbre de décision? Échange biais / écart. Les forêts aléatoires sont construites à partir d'arbres beaucoup plus simples par rapport à un seul arbre de décision. Généralement, les forêts aléatoires fournissent une grande réduction des erreurs en raison de la variance et une petite augmentation des erreurs en raison du biais.

Akavall
la source
Si nous choisissons des fonctionnalités différentes pour chaque arbre de décision, comment l'amélioration de l'apprentissage par un ensemble de fonctionnalités dans l'arbre de décision précédent s'améliore-t-elle pendant que nous envoyons les valeurs mal classées à l'avance, comme pour le prochain arbre de décision, il existe totalement un nouvel ensemble de fonctionnalités?
Abhay Raj Singh
3
@AbhayRajSingh - vous "n'envoyez pas les valeurs mal classées" dans Random Forest. Comme le dit Akavall, "Les arbres sont construits indépendamment"
Henry
1

Oui, comme l'ont dit les auteurs ci-dessus, l'algorithme Random Forest est un algorithme d'ensachage et non de boosting.

L'ensachage peut réduire la variance du classificateur, car les algorithmes de base, qui sont ajustés sur différents échantillons et leurs erreurs sont mutuellement compensés lors du vote. L'ensachage fait référence à la moyenne des versions légèrement différentes du même modèle comme moyen d'améliorer le pouvoir prédictif. Pour appliquer l'ensachage, nous construisons simplement des arbres de régression B à l'aide d'ensembles d'entraînement bootstrap B, et faisons la moyenne des prédictions résultantes

Une application courante et assez réussie de l'ensachage est la forêt aléatoire

Mais lors de la construction de ces arbres de décision dans une forêt aléatoire, chaque fois qu'un fractionnement dans un arbre est considéré, un échantillon aléatoire de mprédicteurs est choisi comme candidats fractionnés dans l'ensemble complet des p prédicteurs. Le fractionnement est autorisé à utiliser un seul de ces mprédicteurs.

Daniel Chepenko
la source