Der Random Forest (Zufallswald) Algorithmus

6 min read

Der Random Forest

Random Forest ist ein flexibler, einfach zu verwendender maschineller Lernalgorithmus, der auch ohne Hyper-Parameter-Tuning meistens ein hervorragendes Ergebnis liefert. Es ist auch einer der am häufigsten verwendeten Algorithmen, da es einfach ist und für Klassifizierungs- und Regressionsaufgaben verwendet werden kann. In diesem Beitrag erfahren Sie, wie der Random-Forest-Algorithmus funktioniert und noch weitere andere wichtige Dinge.

Inhaltsverzeichnis:

  • Wie es funktioniert
  • Real Life Analogie
  • Feature Wichtigkeit
  • Unterschied zwischen Entscheidungsbäumen und zufälligen Wäldern
  • Wichtige Hyperparameter (Vorhersagekraft, Geschwindigkeit)
  • Vorteile und Nachteile
  • Anwendungsfälle
  • Zusammenfassung

Wie es funktioniert

Random Forest ist ein beaufsichtigter Lernalgorithmus. Wie Sie bereits anhand des Namens erkennen können, wird ein Wald erstellt und irgendwie zufällig. Der “Wald”, den er baut, ist ein Ensemble von Decision Trees, die meistens mit der “Bagging” -Methode trainiert werden. Die allgemeine Idee der Abfüllmethode ist, dass eine Kombination von Lernmodellen das Gesamtergebnis erhöht.

Vereinfacht gesagt: Random Forest erstellt mehrere Entscheidungsbäume und fügt sie zusammen, um eine genauere und stabilere Vorhersage zu erhalten.

Ein großer Vorteil von Random Forest ist, dass es sowohl für Klassifizierungs- als auch für Regressionsprobleme verwendet werden kann, die die Mehrheit der derzeitigen maschinellen Lernsysteme bilden. Ich werde über zufällige Gesamtstrukturen in der Klassifikation sprechen, da Klassifikation manchmal als Baustein für maschinelles Lernen angesehen wird. Nachfolgend sehen Sie, wie ein zufälliger Wald mit zwei Bäumen aussehen würde:

Random Forest hat fast die gleichen Hyperparameter wie ein Entscheidungsbaum oder ein Klassifikator für die Abfüllung. Glücklicherweise müssen Sie keinen Entscheidungsbaum mit einem Bagging-Klassifikator kombinieren und können einfach die Klassifikator-Klasse von Random Forest verwenden. Wie bereits gesagt, können Sie mit Random Forest auch Regressionsaufgaben mit Hilfe des Random Forest-Regressors erledigen.

Random Forest fügt dem Modell zusätzliche Zufälligkeit hinzu, während die Bäume wachsen. Anstatt nach dem wichtigsten Merkmal zu suchen, während ein Knoten aufgeteilt wird, sucht er nach dem besten Merkmal unter einer zufälligen Teilmenge von Merkmalen. Dies führt zu einer großen Vielfalt, die im Allgemeinen zu einem besseren Modell führt.

Daher wird in Random Forest nur eine zufällige Teilmenge der Features vom Algorithmus zum Aufteilen eines Knotens berücksichtigt. Sie können sogar Bäume zufälliger gestalten, indem Sie für jedes Feature zusätzlich zufällige Schwellenwerte verwenden, anstatt nach den bestmöglichen Schwellenwerten zu suchen (wie bei einem normalen Entscheidungsbaum).

Real Life Analogie

Stellen Sie sich einen Mann namens Andrew vor, der entscheiden will, wohin er während einer einjährigen Urlaubsreise reisen soll. Er bittet Leute, die ihn kennen, um Rat. Zuerst geht er zu einem Freund, der Andrew fragt, wohin er in der Vergangenheit gereist ist und ob es ihm gefallen hat oder nicht. Basierend auf diesen Antworten wird er Andrew einige Ratschläge geben.

Dies ist ein typischer Ansatz für den Entscheidungsbaumalgorithmus. Andrews Freund erstellte Regeln, um seine Entscheidung darüber zu bestimmen, was er empfehlen sollte, indem er die Antworten von Andrew verwendete.

Danach bittet Andrew immer mehr Freunde, ihn zu beraten, und sie stellen ihm wieder andere Fragen, von denen sie Empfehlungen ableiten können. Dann wählt er die Orte aus, die vonden meisten empfohlen werden. Dies ist der typische Ansatz des Random Forest-Algorithmus.

Feature Wichtigkeit

Eine weitere große Qualität des Zufalls-Wald-Algorithmus ist, dass es sehr einfach ist, die relative Wichtigkeit jedes Merkmals in der Vorhersage zu messen. Sklearn bietet hierfür ein hervorragendes Werkzeug. Es misst die Wichtigkeit eines Features, indem es untersucht, inwieweit die Baumknoten, die dieses Feature verwenden, die Unreinheit über alle Bäume im Wald reduzieren. Es berechnet diese Bewertung automatisch für jedes Feature nach dem Training und skaliert die Ergebnisse, sodass die Summe aller Wichtigkeit gleich 1 ist.

Wenn Sie nicht wissen, wie ein Entscheidungsbaum funktioniert und wenn Sie nicht wissen, was ein Blatt oder Knoten ist, finden Sie hier eine gute Beschreibung von Wikipedia: In einem Entscheidungsbaum stellt jeder interne Knoten einen “Test” für ein Attribut dar. Unabhängig davon, ob ein Münzwurf (Kopf oder Zahl) erscheint, stellt jeder Zweig das Ergebnis des Tests dar, und jeder Blattknoten stellt eine Klassenbezeichnung dar (Entscheidung nach Berechnung aller Attribute). Ein Knoten, der keine Kinder hat, ist ein Blatt.

Durch die Betrachtung der Wichtigkeit des Features können Sie entscheiden, welche Features Sie möglicherweise löschen möchten, da diese nicht oder nur wenig zum Vorhersageprozess beitragen. Dies ist wichtig, da beim maschinellen Lernen generell gilt: Je mehr Funktionen Sie haben, desto wahrscheinlicher wird Ihr Modell an Überanpassung leiden und umgekehrt.

Nachfolgend sehen Sie eine Tabelle und eine Visualisierung, die die Wichtigkeit von 13 Merkmalen veranschaulicht, die ich während eines überwachten Klassifizierungsprojekts mit dem berühmten Titanic-Datensatz von kaggle verwendet habe. Das gesamte Projekt finden Sie hier.

Unterschied zwischen Entscheidungsbäumen und zufälligen Wäldern

Wie ich bereits erwähnt habe, ist Random Forest eine Sammlung von Decision Trees, aber es gibt einige Unterschiede.

Wenn Sie ein Trainings-Dataset mit Features und Beschriftungen in einen Entscheidungsbaum eingeben, werden einige Regeln formuliert, anhand derer die Vorhersagen getroffen werden.

Wenn Sie beispielsweise vorhersagen möchten, ob eine Person auf eine Online-Anzeige klickt, können Sie die Anzeige der Person erfassen, auf die die Person zuvor geklickt hat, sowie einige Funktionen, die ihre Entscheidung beschreiben. Wenn Sie die Features und Beschriftungen in einen Entscheidungsbaum einfügen, werden einige Regeln generiert. Dann können Sie vorhersagen, ob auf die Werbung geklickt wird oder nicht. Im Vergleich dazu wählt der Random Forest-Algorithmus nach dem Zufallsprinzip Beobachtungen und Merkmale aus, um mehrere Entscheidungsbäume zu erstellen, und ermittelt dann die Ergebnisse.

Ein weiterer Unterschied besteht darin, dass “tiefe” Entscheidungsbäume an einer Überanpassung leiden könnten. Random Forest verhindert meistens eine Überanpassung, indem zufällige Teilmengen der Features und kleinere Bäume mit diesen Teilmengen erstellt werden. Anschließend werden die Teilbäume kombiniert. Beachten Sie, dass dies nicht jedes Mal funktioniert und auch die Berechnung langsamer wird, je nachdem, wie viele Bäume Ihr Wald erstellt hat.

Wichtige Hyperparameter

Die Hyperparameter in einer zufälligen Gesamtstruktur werden entweder verwendet, um die Vorhersagekraft des Modells zu erhöhen oder das Modell schneller zu machen. Ich werde hier über die Hyperparameter von Sklearns eingebauten Random-Forest-Funktionen sprechen.

1. Steigerung der Vorhersagekraft

Erstens gibt es den Hyperparameter “n_estimators“. Dies ist nur die Anzahl der Bäume, die der Algorithmus erstellt, bevor die maximale Abstimmung oder der Durchschnitt der Vorhersagen vorgenommen wird. Im Allgemeinen erhöht eine höhere Anzahl von Bäumen die Leistung und macht die Vorhersagen stabiler, verlangsamt jedoch auch die Berechnung.

Ein weiterer wichtiger Hyperparameter ist “max_features“. Dies ist die maximale Anzahl von Features, die Random Forest in einem einzelnen Baum ausprobieren darf. Sklearn bietet verschiedene Optionen, die in der Dokumentation beschrieben werden.

Der letzte wichtige Hyperparameter, den wir in Bezug auf die Schnelle besprechen, ist “min_sample_leaf“. Er bestimmt, wie der Name sagt, die Mindestanzahl der Blätter, die zur Trennung des internen Knotens benötigt wird.

2. Die Steigerung der Schnelligkeit des Modells

Der Hyperparameter “n_jobs” teilt mit, wie viele Prozessoren gebraucht werden dürfen. Wenn der Wert 1 beträgt, wird nur ein Prozessor benutzt. Der Wert von “-1” bedeutet, dass es keine Einschränkungen gibt.

Random_state” macht die Ausgangsdaten des Modells replizierbar. Das Modell bietet immer die gleichen Resultate, wenn das einen stabilen Wert von random_state hat und wenn die gleichen Hyperparameter und die gleichen Daten zum Training angegeben wurden.

Schließlich gibt es noch den “oob_score” (auch als Oob-Sampling bezeichnet), eine Methode zur wahllosen Quer-Validierung von Gesamtstrukturen. Bei dieser Bemusterung wird etwa ein Drittel der Daten nicht zum Trainieren des Modells verwendet und kann zur Bewertung seiner Leistung verwendet werden. Diese Proben werden als Out-of-Bag-Proben bezeichnet. Es ist der Kreuzvalidierungsmethode, bei der kein Vergleich möglich ist, sehr ähnlich, aber es geht fast keine zusätzliche Rechenlast mit sich.

Vorteile und Nachteile

Wie bereits erwähnt, besteht der Vorteil von Random Forest darin, dass sie sowohl für Regressions- als auch für Klassifizierungsaufgaben verwendet werden kann und dass die relative Wichtigkeit, die den Eingabefunktionen zugewiesen wird, leicht zu erkennen ist.

Random Forest wird auch als sehr praktischer und einfach zu verwendender Algorithmus betrachtet, da seine Standard-Hyperparameter häufig ein gutes Vorhersageergebnis liefern. Die Anzahl der Hyperparameter ist auch nicht so hoch und sie sind leicht zu verstehen.

Eines der größten Probleme beim maschinellen Lernen ist das Überanpassen, aber meistens wird dies einem zufälligen Gesamtstrukturierer nicht so leicht passieren. Das liegt daran, dass, wenn es genügend Bäume im Wald gibt, der Klassifizierer das Modell nicht überfüllt.

Die Haupteinschränkung von Random Forest besteht darin, dass eine große Anzahl von Bäumen den Algorithmus für Echtzeitvorhersagen langsam und ineffektiv machen kann. Im Allgemeinen sind diese Algorithmen schnell zu trainieren, aber sie erzeugen nur langsam Vorhersagen, sobald sie trainiert sind. Eine genauere Vorhersage erfordert mehr Bäume, was zu einem langsameren Modell führt. In den meisten realen Anwendungen ist der Random-Forest-Algorithmus schnell genug, es kann jedoch durchaus Situationen geben, in denen die Laufzeitleistung wichtig ist und andere Ansätze bevorzugt werden.

Und natürlich ist Random Forest ein Werkzeug zur Vorhersage von Modellierung und kein beschreibendes Werkzeug. Das heißt, wenn Sie nach einer Beschreibung der Beziehungen in Ihren Daten suchen, werden andere Ansätze bevorzugt.

Anwendungsfälle

Der Random-Forest-Algorithmus wird in vielen verschiedenen Bereichen verwendet, beispielsweise in den Bereichen Banking, Börse, Medizin und E-Commerce. Im Banking wird dies beispielsweise verwendet, um Kunden zu erkennen, die die Dienstleistungen der Bank häufiger als andere in Anspruch nehmen und ihre Schulden rechtzeitig zurückzahlen. In dieser Domäne wird es auch verwendet, um Betrugskunden zu erkennen, die die Bank betrügen möchten. Im Finanzwesen wird es dazu verwendet, das Verhalten einer Aktie in der Zukunft zu bestimmen. Im Gesundheitsbereich wird es verwendet, um die richtige Kombination von Bestandteilen in der Medizin zu identifizieren und die Krankengeschichte eines Patienten zu analysieren, um Krankheiten zu identifizieren. Und schließlich wird im E-Commerce mithilfe der Zufalls-Gesamtstruktur bestimmt, ob ein Kunde das Produkt tatsächlich mag oder nicht.

Zusammenfassung

Random Forest ist ein großartiger Algorithmus, um frühzeitig im Modellentwicklungsprozess zu trainieren, um zu sehen, wie es funktioniert und es ist schwierig, einen “schlechten” Random Forest zu erstellen, weil er so einfach ist. Dieser Algorithmus ist auch eine gute Wahl, wenn Sie in kurzer Zeit ein Modell entwickeln müssen. Darüber hinaus bietet es einen ziemlich guten Indikator für die Bedeutung, die es Ihren Funktionen zuweist.

Random Forests sind auch in Bezug auf die Leistung sehr schwer zu schlagen. Natürlich können Sie wahrscheinlich immer ein Modell finden, das bessere Leistungen erbringt, wie ein neuronales Netzwerk, aber diese Entwicklung dauert normalerweise viel länger. Darüber hinaus können sie mit vielen verschiedenen Feature-Typen wie binär, kategorial und numerisch umgehen.

Insgesamt ist Random Forest ein (meistens) schnelles, einfaches und flexibles Werkzeug, obwohl es seine Grenzen hat.

Quelle

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.