Random Forests

Eine Random Forest (RF) ist eine Gruppe von Entscheidungsbäumen, in denen jeder Entscheidungsbaum mit einem bestimmten Zufallsrauschen trainiert wird. Random Forests sind die beliebteste Form von Entscheidungsbäumen. In diesem Modul werden mehrere Techniken zum Erstellen unabhängiger Entscheidungsbäume erläutert, mit denen sich die Chancen für den Aufbau einer effektiven Random Forest App verbessern.

Absacken

Bagging (bootstrap aggregating) bedeutet, dass jeder Entscheidungsbaum anhand einer zufälligen Teilmenge der Beispiele im Trainings-Dataset trainiert wird. Mit anderen Worten, jeder Entscheidungsbaum in der Random-Gesamtstruktur wird mit einer unterschiedlichen Teilmenge von Beispielen trainiert.

Beutel ist seltsam. Jeder Entscheidungsbaum wird mit derselben Anzahl von Beispielen trainiert wie im ursprünglichen Trainings-Dataset. Wenn der ursprüngliche Trainingssatz beispielsweise 60 Beispiele enthält, wird jeder Entscheidungsbaum mit 60 Beispielen trainiert. Beim Bagging wird jedoch jeder Entscheidungsbaum nur auf einer Teilmenge (in der Regel 67%) dieser Beispiele trainiert. Daher müssen einige der 40 Beispiele in der Teilmenge wiederverwendet werden, während ein bestimmter Entscheidungsbaum trainiert wird. Diese Wiederverwendung wird als Training "mit Ersatz" bezeichnet.

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

  • Jeder Entscheidungsbaum wird mit insgesamt sechs Beispielen trainiert.
  • Jeder Entscheidungsbaum wird anhand einer anderen Reihe von Beispielen trainiert.
  • Für jeden Entscheidungsbaum werden bestimmte Beispiele wiederverwendet. Wenn beispielsweise Beispiel 4 zweimal im Trainingsentscheidungsbaum 1 verwendet wird, wird die erkannte Gewichtung von Beispiel 4 im Entscheidungsbaum 1 effektiv verdoppelt.

Tabelle 6. Sechs Trainingsbeispiele auf drei Entscheidungsbäumen. Jede Zahl gibt an, wie oft ein bestimmtes Trainingsbeispiel (Nr. 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

Beim Bagging wird jeder Entscheidungsbaum fast immer anhand der Gesamtzahl von Beispielen im ursprünglichen Trainings-Dataset trainiert. Wenn Sie jeden Entscheidungsbaum mit mehr oder weniger Beispielen trainieren, beeinträchtigt dies tendenziell die Qualität der Random Forest.

Die Beispiele sind zwar in der ursprünglichen zufälligen Waldarbeit nicht vorhanden, werden aber manchmal „ersatzlos“ durchgeführt. Das heißt, ein Trainingsbeispiel kann nicht mehr als einmal in einem Entscheidungsbaum-Trainingssatz vorhanden sein. 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 Attributabtastung wird nicht nach der besten Bedingung in allen verfügbaren Funktionen gesucht. Stattdessen wird an jedem Knoten nur eine zufällige Teilmenge von Features getestet. Die getesteten Funktionen werden an jedem Knoten des Entscheidungsbaums zufällig ausgewählt.

Der folgende Entscheidungsbaum veranschaulicht die Stichprobenerhebung für Attribute / Merkmale. In diesem Fall wird ein Entscheidungsbaum mit 5 Funktionen (f1–f5) trainiert. Die blauen Knoten stellen die getesteten Funktionen dar, während die weißen Knoten nicht getestet werden. Die Bedingung basiert auf den am besten getesteten Features (wird durch eine rote Umrandung dargestellt).

Drei Knoten, von denen alle fünf Merkmale zeigen. Der Root-Knoten und einer seiner untergeordneten Knoten testen drei der fünf Funktionen. Der andere untergeordnete Knoten testet zwei der fünf Funktionen.

Abbildung 21. Stichprobenerhebung für Attribute.

 

Das Verhältnis der Attributabtastung ist ein wichtiger Hyperparameter für die Regularisierung. In der obigen Abbildung wurde ein Verhältnis von etwa 3⁄5 verwendet. Bei vielen Implementierungen der zufälligen Gesamtstruktur werden standardmäßig 1/3 der Features für die Regression und die Quadratwurzel(Anzahl der Features) für die Klassifizierung getestet.

In TF-DF steuern die folgenden Hyperparameter das Attribut-Sampling:

  • num_candidate_attributes
  • num_candidate_attributes_ratio

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

Regularisierung des Entscheidungsbaums deaktivieren

Die einzelnen Entscheidungsbäume in einem zufälligen Wald werden ohne Beschneidung trainiert. Weitere Informationen finden Sie unter Überanpassung und Bereinigung. Dies erzeugt übermäßig komplexe Bäume mit schlechter Vorhersagequalität. Anstatt einzelne Bäume zu regulieren, werden die Bäume so angeordnet, dass sie insgesamt genauere Vorhersagen machen.

Wir expect, dass das Training und die Testgenauigkeit einer zufälligen Gesamtstruktur unterschiedlich sind. Die Trainingsgenauigkeit einer Random Forest ist im Allgemeinen viel höher (manchmal entspricht sie 100%). Eine sehr hohe Trainingsgenauigkeit in einer zufälligen Gesamtstruktur ist jedoch normal und weist nicht auf eine Überanpassung der Gesamtstruktur hin.

Die beiden Quellen der Zufälligkeit (Bagging und Attribut-Sampling) gewährleisten die relative Unabhängigkeit zwischen den Entscheidungsbäumen. Diese Unabhängigkeit korrigiert die Überanpassung der einzelnen Entscheidungsbäume. Folglich ist das Ensemble nicht überanpasst. Dieser nicht intuitive Effekt wird im nächsten Modul veranschaulicht.

Pure Random Forests trainieren ohne maximale Tiefe oder minimale Anzahl von Beobachtungen pro Blatt. In der Praxis ist es von Vorteil, die maximale Tiefe und die Mindestanzahl der Beobachtungen pro Blatt zu begrenzen. Standardmäßig verwenden viele zufälligen Gesamtstrukturen die folgenden Standardeinstellungen:

  • Maximale Tiefe von ~16
  • Die Mindestanzahl an Beobachtungen pro Blatt sollte etwa 5 sein.

Sie können diese Hyperparameter abstimmen.

YDF-Code
Der Tuner von YDF ist eine einfache Möglichkeit zur Feinabstimmung von Hyperparametern. Weitere Informationen finden Sie in der Anleitung zur Abstimmung von YDF.

Klarheit von Rauschen

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

Ellipsenmuster sind für Entscheidungsbaum- und Entscheidungswald-Algorithmen bekanntermaßen schwer zu lernen, wenn sie achsenbasierte Bedingungen verwenden. Sie sind also ein gutes Beispiel. Beachten Sie, dass der bereinigte Entscheidungsbaum nicht dieselbe Qualität der Vorhersage erhalten kann wie der Random Forest.

Drei Abbildungen. Die erste Abbildung mit der Bezeichnung „Ground Truth“
ist eine perfekte Ellipse. Die zweite Abbildung mit der Bezeichnung „gekürzter Entscheidungsbaum“ befindet sich irgendwo zwischen einer Ellipse und einem Rechteck. Eine dritte Abbildung, mit der Bezeichnung Random Forest, ist keine Ellipse, ist aber viel näher an einer Ellipse als die Abbildung mit dem Label „gekürzter Entscheidungsbaum“.

Abbildung 22. Ground-Truth- und durch einen einzelnen bereinigten Entscheidungsbaum generierte Vorhersagen sowie Vorhersagen, die von einer zufälligen Gesamtstruktur generiert werden.

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

  • Bagging
  • Attribut-Sampling
  • Bereinigung deaktivieren

Beachten Sie, dass die individuellen Vorhersagen dieser drei Entscheidungsbäume schlechter sind als die Vorhersagen des bereinigten Entscheidungsbaums in der vorherigen Abbildung. Da die Fehler der einzelnen Entscheidungsbäume jedoch nur schwach korreliert sind, kombinieren die drei Entscheidungsbäume sich in einer Gruppe, um effektive Vorhersagen zu erstellen.

Drei sehr laute Ellipsen.

Abbildung 23. Drei ungeschnittene Entscheidungsbäume, aus denen Sie eine effektive Gruppe bilden.

Da die Entscheidungsbäume einer zufälligen Gesamtstruktur nicht bereinigt werden, ist für das Training einer zufälligen Gesamtstruktur kein Validierungs-Dataset erforderlich. In der Praxis und insbesondere bei kleinen Datasets sollten Modelle mit allen verfügbaren Daten trainiert werden.

Wenn Sie eine Random-Gesamtstruktur trainieren, nimmt der Fehler fast immer ab, wenn mehr Entscheidungsbäume hinzugefügt werden. Das heißt, die Qualität des Modells wird fast immer verbessert. Ja, durch Hinzufügen weiterer Entscheidungsbäume wird der Fehler der Random-Gesamtstruktur fast immer reduziert. Mit anderen Worten: Das Hinzufügen weiterer Entscheidungsbäume kann nicht zu einer Überanpassung der Zufallsstruktur führen. Irgendwann hört das Modell einfach auf, sich zu verbessern. Leo Breiman sagte zu einer berühmten Äußerung: „Random Forests passen nicht zu, da weitere Bäume hinzugefügt werden“.

Das folgende Diagramm zeigt beispielsweise die Testauswertung eines zufälligen Gesamtstrukturmodells, wenn weitere Entscheidungsbäume hinzugefügt werden. Die Genauigkeit verbessert sich schnell, bis sie ungefähr bei 0,865 liegt. Das Hinzufügen weiterer Entscheidungsbäume führt jedoch nicht zu einer Reduzierung der Genauigkeit. Mit anderen Worten, das Modell wird nicht überanpassungsfähig. Dieses Verhalten ist (meist) immer wahr und unabhängig von den Hyperparametern.

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

Abbildung 24. Die Genauigkeit bleibt konstant, wenn der Random-Gesamtstruktur mehr Entscheidungsbäume hinzugefügt werden.