Random Forest- und Decision Tree-Algorithmus


12

Ein zufälliger Wald ist eine Sammlung von Entscheidungsbäumen, die dem Absackkonzept folgen. Wenn wir von einem Entscheidungsbaum zum nächsten übergehen, wie werden dann die Informationen, die der letzte Entscheidungsbaum gelernt hat, zum nächsten weitergeleitet?

Denn meines Wissens gibt es nichts Vergleichbares wie ein trainiertes Modell, das für jeden Entscheidungsbaum erstellt und dann geladen wird, bevor der nächste Entscheidungsbaum aus dem falsch klassifizierten Fehler zu lernen beginnt.

Wie funktioniert es?


"Wenn wir von einem Entscheidungsbaum zum nächsten übergehen". Dies deutet auf einen linearen Prozess hin. Wir haben parallele Implementierungen erstellt, bei denen wir an einem Baum pro CPU-Kern gearbeitet haben. Dies funktioniert einwandfrei, es sei denn, Sie verwenden im Training einen separaten Zufallszahlengenerator pro CPU-Kern, die alle denselben Ausgangswert haben. In diesem Fall können viele identische Bäume entstehen.
MSalters

Antworten:


22

Es werden keine Informationen zwischen Bäumen übertragen. In einer zufälligen Gesamtstruktur sind alle Bäume gleich verteilt, da für alle Bäume die gleiche Zufallsstrategie verwendet wird. Nehmen Sie zunächst ein Bootstrap-Beispiel der Daten und vergrößern Sie dann den Baum mithilfe von Teilungen aus einer zufällig ausgewählten Teilmenge von Features. Dies geschieht für jeden Baum einzeln, ohne auf andere Bäume im Ensemble zu achten. Die Bäume werden jedoch lediglich dadurch korreliert, dass jeder Baum anhand einer Stichprobe aus einem gemeinsamen Pool von Trainingsdaten trainiert wird. Mehrere Samples aus demselben Datensatz sind in der Regel ähnlich, sodass die Bäume einen Teil dieser Ähnlichkeit codieren.

Es kann hilfreich sein, eine Einführung in zufällige Gesamtstrukturen aus einem qualitativ hochwertigen Text zu lesen. Eines ist "Random Forests" von Leo Breiman. Es gibt auch ein Kapitel in Elemente des statistischen Lernens von Hastie et al.

Möglicherweise haben Sie zufällige Wälder mit Boosting-Methoden wie AdaBoost oder Gradienten-Boosting-Bäumen verwechselt. Boosting-Methoden sind nicht gleich Boosting-Methoden, da sie Informationen über Fehlanpassungen aus früheren Boosting-Runden verwenden, um die nächste Boosting-Runde zu informieren. Siehe: Ist Random Forest ein Boosting-Algorithmus?


2
Mit iid meinen Sie unabhängig und identisch verteilt ? Diese Abkürzung kannte ich nicht.
nekomatic

2
@nekomatic Man kann davon ausgehen, dass dies die beabsichtigte Bedeutung war. Es ist eine ziemlich gebräuchliche Abkürzung. in der Statistik.
18.

9

Die Zufallswälder sind eine Sammlung von Mehrfachentscheidungsbäumen, die unabhängig voneinander trainiert werden . Es gibt also keine Vorstellung von sequentiell abhängigem Training (was bei Boosting-Algorithmen der Fall ist ). Infolgedessen ist es, wie in einer anderen Antwort erwähnt, möglich, ein paralleles Training der Bäume durchzuführen.

Vielleicht möchten Sie wissen, woher das "Zufällige" im zufälligen Wald kommt: Es gibt zwei Möglichkeiten, mit denen Zufälligkeit in den Prozess des Lernens der Bäume injiziert wird. Erstens die zufällige Auswahl von Datenpunkten, die zum Trainieren jedes Baums verwendet werden, und zweitens die zufällige Auswahl von Merkmalen, die zum Erstellen jedes Baums verwendet werden. Da ein einzelner Entscheidungsbaum in der Regel zu einer Überanpassung der Daten führt, führt die Zufallsinjektion auf diese Weise zu einer Reihe von Bäumen, von denen jeder eine gute Genauigkeit (und möglicherweise eine Überanpassung) für eine andere Teilmenge der verfügbaren Trainingsdaten aufweist . Wenn wir daher den Durchschnitt der Vorhersagen aller Bäume nehmen, stellen wir eine Verringerung der Überanpassung fest (im Vergleich zum Trainieren eines einzelnen Entscheidungsbaums mit allen verfügbaren Daten ).

MN

  1. ich=0
  2. MMSich
  3. ichTichSich
    • Der Trainingsprozess ist der gleiche wie beim Trainieren eines Entscheidungsbaums, mit dem Unterschied, dass an jedem Knoten im Baum nur eine zufällige Auswahl von Merkmalen für die Aufteilung in diesen Knoten verwendet wird.
  1. i=i+1
  2. i<N

T1T2TN

  • Wenn es für eine Regressionsaufgabe verwendet wird, verwenden Sie den Durchschnitt der Vorhersagen als endgültige Vorhersage für die zufällige Gesamtstruktur.

  • Wenn es für eine Klassifizierungsaufgabe verwendet wird, verwenden Sie eine weiche Abstimmungsstrategie : Nehmen Sie den Durchschnitt der Wahrscheinlichkeiten, die von den Bäumen für jede Klasse vorhergesagt werden, und deklarieren Sie dann die Klasse mit der höchsten durchschnittlichen Wahrscheinlichkeit als endgültige Vorhersage der zufälligen Gesamtstruktur.

Erwähnenswert ist ferner, dass es möglich ist, die Bäume sequenziell abhängig zu trainieren, und genau das macht der Algorithmus für gradientenverstärkte Bäume , der sich von zufälligen Wäldern völlig unterscheidet.


7

Random Forest ist eher ein Bagging-Algorithmus als ein Boosting-Algorithmus.

Zufällige Gesamtstruktur erstellt den Baum unabhängig unter Verwendung einer zufälligen Stichprobe der Daten. Eine parallele Implementierung ist möglich.

Vielleicht möchten Sie die Gradientenverstärkung ausprobieren, bei der Bäume nacheinander erstellt werden und bei der ein neuer Baum versucht, den zuvor gemachten Fehler zu korrigieren.


4

Wie funktioniert es?

Random Forest ist eine Sammlung von Entscheidungsbäumen. Die Bäume sind eigenständig gebaut. Jeder Baum wird auf eine Teilmenge von Merkmalen und eine Teilmenge einer Stichprobe trainiert, die mit Ersetzung ausgewählt wurde.

Bei der Vorhersage, beispielsweise für die Klassifizierung, werden die Eingabeparameter für jeden Baum in der Gesamtstruktur angegeben und jeder Baum "stimmt" über die Klassifizierung ab, wobei die Bezeichnung mit den meisten Stimmen gewinnt.

Warum Random Forest anstelle von Simple Decision Tree verwenden? Bias / Varianz-Kompromiss. Random Forest besteht im Vergleich zu einem einzelnen Entscheidungsbaum aus viel einfacheren Bäumen. Im Allgemeinen sorgen zufällige Wälder für eine große Verringerung des Fehlers aufgrund von Varianz und eine geringe Erhöhung des Fehlers aufgrund von Verzerrung.


Wenn wir für jeden Entscheidungsbaum unterschiedliche Merkmale auswählen, wie verbessert sich dann das Lernen durch eine Reihe von Merkmalen im vorherigen Entscheidungsbaum, während wir die falsch klassifizierten Werte weiterleiten, da es für den nächsten Entscheidungsbaum eine völlig neue Reihe von Merkmalen gibt?
Abhay Raj Singh

3
@AbhayRajSingh - Sie "senden die falsch klassifizierten Werte nicht weiter" in Random Forest. Wie Akavall sagt: "Die Bäume werden unabhängig voneinander gebaut"
Henry

0

Ja, wie die Autoren oben sagten, ist der Random Forest-Algorithmus ein Bagging-Algorithmus, kein Boosting-Algorithmus.

Das Absacken kann die Varianz des Klassifikators verringern, da die Basisalgorithmen, die auf verschiedene Stichproben angewendet werden, und deren Fehler bei der Abstimmung gegenseitig kompensiert werden. Beim Absacken werden leicht unterschiedliche Versionen desselben Modells gemittelt, um die Vorhersagekraft zu verbessern. Um Bagging anzuwenden, erstellen wir einfach B-Regressionsbäume mit B-Bootstrap-Trainingssätzen und mitteln die resultierenden Vorhersagen

Eine verbreitete und recht erfolgreiche Anwendung des Absackens ist der Random Forest

Wenn diese Entscheidungsbäume jedoch in einer zufälligen Gesamtstruktur erstellt werden, wird jedes Mal, wenn eine Teilung in einem Baum berücksichtigt wird, eine zufällige Stichprobe von mPrädiktoren als Teilungskandidaten aus dem vollständigen Satz von p Prädiktoren ausgewählt. Die Aufteilung darf nur einen dieser mPrädiktoren verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.