Random Forests

Ein Zufallswald (RF) ist ein Ensemble von Entscheidungsbäumen, bei dem jeder Entscheidungsbaum mit einer bestimmten Zufallsstörung trainiert wird. Zufallswälder sind die beliebteste Form eines Entscheidungsbaum-Ensembles. In diesem Modul werden verschiedene Methoden zum Erstellen unabhängiger Entscheidungsbäume beschrieben, um die Wahrscheinlichkeit zu erhöhen, einen effektiven Random Forest zu erstellen.

Bagging

Bagging (bootstrap aggregating) bedeutet, dass jeder Entscheidungsbaum auf einer zufälligen Teilmenge der Beispiele im Trainingssatz trainiert wird. Mit anderen Worten: Jeder Entscheidungsbaum im Random Forest wird anhand einer anderen Teilmenge von Beispielen trainiert.

Das Einpacken ist etwas Besonderes. Jeder Entscheidungsbaum wird mit der gleichen Anzahl von Beispielen trainiert wie im ursprünglichen Trainingssatz. Wenn das ursprüngliche Trainingsset beispielsweise 60 Beispiele enthält, wird jeder Entscheidungsbaum mit 60 Beispielen trainiert. Bei der Bagging-Methode wird jeder Entscheidungsbaum jedoch nur anhand eines Teils (in der Regel 67%) dieser Beispiele trainiert. Daher müssen einige dieser 40 Beispiele in der Teilmenge beim Trainieren eines bestimmten Entscheidungsbaums wiederverwendet werden. Diese Wiederverwendung wird als Training „mit Ersatz“ bezeichnet.

Tabelle 6 zeigt beispielsweise, wie mit Bagging sechs Beispiele auf drei Entscheidungsbäume verteilt werden könnten. Beachten Sie Folgendes:

  • Jeder Entscheidungsbaum wird mit insgesamt sechs Beispielen trainiert.
  • Jeder Entscheidungsbaum wird mit einer anderen Gruppe von Beispielen trainiert.
  • In jedem Entscheidungsbaum werden bestimmte Beispiele wiederverwendet. Beispiel 4 wird beispielsweise zweimal zum Trainieren von Entscheidungsbaum 1 verwendet. Daher wird das gelernte Gewicht von Beispiel 4 im Entscheidungsbaum 1 effektiv verdoppelt.

Tabelle 6. Bagging von sechs Trainingsbeispielen in drei Entscheidungsbäumen Jede Zahl gibt an, wie oft ein bestimmtes Trainingsbeispiel (1–6) im Trainings-Dataset eines bestimmten Entscheidungsbaums (1–3) wiederholt wird.

Trainingsbeispiele
#1 2. #3 #4 #5 #6
Ursprüngliches Dataset 1 1 1 1 1 1
Entscheidungsbaum 1 1 1 0 2 1 1
Entscheidungsbaum 2 3 0 1 0 2 0
Entscheidungsbaum 3 0 1 3 1 0 1

Bei der Bagging-Methode wird jeder Entscheidungsbaum fast immer anhand der Gesamtzahl der Beispiele im ursprünglichen Trainingssatz trainiert. Wenn Sie jeden Entscheidungsbaum mit mehr oder weniger Beispielen trainieren, verschlechtert sich in der Regel die Qualität des Random Forest.

Im ursprünglichen Artikel zu Random Forest wird dies nicht erwähnt, aber manchmal werden Beispiele „ohne Zurücklegen“ ausgewählt. Das bedeutet, dass ein Trainingsbeispiel nicht mehrmals in einem Entscheidungsbaum-Trainingssatz vorhanden sein darf. In der obigen Tabelle wären beispielsweise alle Werte entweder 0 oder 1.

YDF-Code
Sie können das Training ohne Ersatz mit der folgenden Zuweisung in YDF aktivieren: bootstrap_training_dataset=False

Stichprobenerhebung für Attribute

Bei der Attributsstichprobenerhebung wird nicht nach der besten Bedingung für alle verfügbaren Features gesucht, sondern an jedem Knoten nur eine zufällige Teilmenge der Features getestet. Die getesteten Funktionen werden an jedem Knoten des Entscheidungsbaums nach dem Zufallsprinzip ausgewählt.

Der folgende Entscheidungsbaum veranschaulicht die Stichprobenerhebung von Attributen / Features. Hier wird ein Entscheidungsbaum anhand von fünf Merkmalen (f1–f5) trainiert. Die blauen Knoten stehen für die getesteten Funktionen, die weißen für die nicht getesteten. Die Bedingung besteht aus den am besten getesteten Funktionen (rot umrandet).

Drei Knoten, die jeweils fünf Funktionen anzeigen. Am Stammknoten und an einem seiner untergeordneten Knoten werden drei der fünf Funktionen getestet. Der andere untergeordnete Knoten testet zwei der fünf Funktionen.

Abbildung 21. Stichprobenerhebung von Attributen.

 

Das Verhältnis der Attributstichproben ist ein wichtiger Hyperparameter für die Regularisierung. In der vorherigen Abbildung wurde ein Seitenverhältnis von etwa ⅗ verwendet. Bei vielen Implementierungen von Random Forest werden standardmäßig 1/3 der Merkmale für die Regression und die Wurzel aus der Anzahl der Merkmale für die Klassifizierung getestet.

Bei TF-DF werden die folgenden Hyperparameter für die Stichprobenerhebung von Attributen verwendet:

  • num_candidate_attributes
  • num_candidate_attributes_ratio

Bei num_candidate_attributes_ratio=0.5 wird beispielsweise die Hälfte der Funktionen an jedem Knoten getestet.

Regularisierung von Entscheidungsbäumen deaktivieren

Einzelne Entscheidungsbäume in einem Random Forest werden ohne Beschneidung trainiert. (Siehe Überanpassung und Beschneiden.) Dies führt zu übermäßig komplexen Bäumen mit schlechter Vorhersagequalität. Anstatt einzelne Bäume zu normalisieren, werden sie zu einem Ensemble zusammengeführt, wodurch genauere Gesamtvorhersagen erzielt werden.

Wir erwarten, dass sich die Trainings- und Testgenauigkeit eines Random Forests unterscheiden. Die Trainingsgenauigkeit eines Random Forest ist in der Regel viel höher (manchmal 100%). Eine sehr hohe Trainingsgenauigkeit bei einem Random Forest ist jedoch normal und bedeutet nicht, dass der Random Forest überoptimiert ist.

Die beiden Zufallsquellen (Bagging und Stichprobenerhebung von Attributen) sorgen für die relative Unabhängigkeit der Entscheidungsbäume. Durch diese Unabhängigkeit wird die Überanpassung der einzelnen Entscheidungsbäume korrigiert. Das Ensemble ist daher nicht überoptimiert. Wir veranschaulichen diesen nicht intuitiven Effekt in der nächsten Einheit.

Reine Random Forests werden ohne maximale Tiefe oder minimale Anzahl von Beobachtungen pro Blatt trainiert. In der Praxis ist es sinnvoll, die maximale Tiefe und die Mindestzahl der Beobachtungen pro Blatt zu begrenzen. Für viele Random Forests werden standardmäßig die folgenden Standardwerte verwendet:

  • maximale Tiefe von etwa 16
  • Mindestanzahl von Beobachtungen pro Blatt von etwa 5.

Sie können diese Hyperparameter optimieren.

YDF-Code
Der Tuner von YDF ist eine einfache Möglichkeit, Hyperparameter zu optimieren. Weitere Informationen findest du in der Tuning-Anleitung von YDF.

Die Klarheit von Rauschen

Warum würde zufälliges Rauschen die Qualität eines Random Forest verbessern? Um die Vorteile von Zufallsrauschen zu veranschaulichen, zeigt Abbildung 22 die Vorhersagen eines klassischen (beschnittenen) Entscheidungsbaums und eines Random Forest, der anhand einiger Beispiele für ein einfaches zweidimensionales Problem mit einem Ellipsenmuster trainiert wurde.

Ellipsenmuster sind für Entscheidungsbaum- und Entscheidungswald-Algorithmen mit achsorientierten Bedingungen bekanntermaßen schwer zu lernen. Sie sind daher ein gutes Beispiel. Beachten Sie, dass der gestutzte Entscheidungsbaum nicht dieselbe Vorhersagequalität wie der Random Forest erzielen kann.

Drei Illustrationen. Die erste Abbildung mit der Bezeichnung „Ground Truth“ ist eine perfekte Ellipse. Die zweite Abbildung, die als „Gespaltener Entscheidungsbaum“ gekennzeichnet ist, hat die Form zwischen einer Ellipse und einem Rechteck. Eine dritte Abbildung mit der Bezeichnung „Zufallswald“ ist nicht ganz eine Ellipse, aber viel näher an einer Ellipse als die Abbildung mit der Bezeichnung „Gespaltener Entscheidungsbaum“.

Abbildung 22. Ground Truth im Vergleich zu Vorhersagen, die von einem einzelnen beschnittenen Entscheidungsbaum und von einem Random Forest generiert wurden.

Das nächste Diagramm zeigt die Vorhersagen der ersten drei nicht beschnittenen Entscheidungsbäume des Random Forest. Das heißt, die Entscheidungsbäume wurden alle mit einer Kombination aus folgenden Elementen trainiert:

  • Bagging
  • Stichprobenerhebung
  • Deaktivierung der Bereinigung

Die einzelnen Vorhersagen dieser drei Entscheidungsbäume sind schlechter als die Vorhersagen des verkürzten Entscheidungsbaums in der vorherigen Abbildung. Da die Fehler der einzelnen Entscheidungsbäume jedoch nur schwach korreliert sind, werden die drei Entscheidungsbäume in einem Ensemble kombiniert, um effektive Vorhersagen zu treffen.

Drei sehr verrauschte Ellipsen.

Abbildung 23. Drei nicht beschnittene Entscheidungsbäume, die ein effektives Ensemble bilden.

Da die Entscheidungsbäume eines Random Forest nicht beschnitten werden, ist für das Training eines Random Forest kein Validierungsdatensatz erforderlich. In der Praxis und insbesondere bei kleinen Datasets sollten Modelle mit allen verfügbaren Daten trainiert werden.

Beim Training eines Random Forests sinkt der Fehler fast immer, wenn mehr Entscheidungsbäume hinzugefügt werden. Das bedeutet, dass sich die Qualität des Modells fast immer verbessert. Ja, das Hinzufügen weiterer Entscheidungsbäume reduziert fast immer den Fehler des Random Forest. Mit anderen Worten: Das Hinzufügen weiterer Entscheidungsbäume kann nicht dazu führen, dass der Random Forest zu stark angepasst wird. Irgendwann verbessert sich das Modell nicht mehr. Leo Breiman sagte einmal: Der Zufallswald neigt nicht zur Überanpassung, wenn mehr Bäume hinzugefügt werden.

Im folgenden Diagramm ist beispielsweise die Testbewertung eines Random-Forest-Modells zu sehen, wenn weitere Entscheidungsbäume hinzugefügt werden. Die Genauigkeit verbessert sich schnell, bis sie bei etwa 0,865 ein Plateau erreicht. Das Hinzufügen weiterer Entscheidungsbäume führt jedoch nicht zu einer geringeren Genauigkeit. Mit anderen Worten: Das Modell wird nicht überoptimiert. Dieses Verhalten ist (meist) immer wahr und unabhängig von den Hyperparametern.

Ein Diagramm mit der Genauigkeit im Vergleich zur Anzahl der Entscheidungsbäume, die im vorherigen Abschnitt beschrieben wurden.

Abbildung 24. Die Genauigkeit bleibt konstant, wenn dem Zufallswald weitere Entscheidungsbäume hinzugefügt werden.