Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Die Zufälligkeit des Waldes | Random Forest
Klassifikation mit Python
course content

Kursinhalt

Klassifikation mit Python

Klassifikation mit Python

1. K-NN Klassifikator
2. Logistische Regression
3. Entscheidungsbaum
4. Random Forest
5. Modelle Vergleichen

book
Die Zufälligkeit des Waldes

Random Forest verwendet viele Entscheidungsbäume, standardmäßig 100, aber Sie können sogar noch mehr verwenden. So viele Bäume zu generieren, kann schwierig sein, indem man nur die Hyperparameter anpasst, weshalb ein zufälliger Ansatz verwendet wird. Glücklicherweise sind Entscheidungsbäume empfindlich gegenüber Änderungen in den Daten und Hyperparametern, was zu einer vielfältigen Menge von Bäumen führt.

Es gibt zwei Quellen der Zufälligkeit im Random Forest:

  1. Stichproben der Daten für jeden Baum;
  2. Stichproben der Merkmale für jeden Entscheidungsnotenpunkt jedes Baumes.

Stichproben der Daten

Um für jeden Entscheidungsbaum in einem Wald einen anderen Trainingssatz zu erhalten, verwenden wir die Bootstrap-Methode (auch Bagging genannt).
Die Idee ist, mit Ersetzungen ein Datenset derselben Größe für jeden Baum zu ziehen. Die Größe des Datensets jedes Baumes ist standardmäßig dieselbe wie die Größe des ursprünglichen Datensets.
Stichproben mit Ersetzungen kann man sich vorstellen wie das zufällige Auswählen eines Datenpunkts aus einem Trainingssatz, ähnlich wie das Ziehen einer Karte aus einem Kartendeck. Jedes Mal, wenn ein Datenpunkt ausgewählt wird, wird er jedoch nicht aus dem Trainingssatz entfernt, sodass ein Datenpunkt viele Male ausgewählt werden kann.

Auf diese Weise wird jeder Baum auf einem anderen Datensatz trainiert, was bereits vielfältige Bäume erzeugt.
Eine weitere Möglichkeit, Bäume zufälliger und viel schneller zu machen, ist die max_features.

Merkmale sampeln

Ein Entscheidungsbaum findet an jedem Entscheidungsnode den besten Schwellenwert und berechnet die Gini-Impurity für alle Merkmale. Darauf entfällt der größte Teil der Trainingszeit. In einem Random Forest wird normalerweise nur ein Teil der Merkmale an jedem Node berücksichtigt.
In Scikit-learn wird standardmäßig die Quadratwurzel der Gesamtanzahl der Merkmale berücksichtigt. Wenn der Datensatz beispielsweise 9 Merkmale enthält, werden zufällig 3 Merkmale an jedem Node berücksichtigt, und wenn der Datensatz 10000 enthält – werden 100 berücksichtigt. Aber die Anzahl der Merkmale kann durch einen max_features Parameter gesteuert werden (wird in Kürze besprochen).
Also sampeln wir auch die Merkmale für jeden Node, aber diesmal mit Ersetzungen, was bedeutet, dass dasselbe Merkmal nicht zweimal für einen Node ausgewählt werden kann.

Sie können die Anzahl der Merkmale, die jedem Entscheidungsnode zugewiesen werden, mit max_features steuern.
Standardmäßig bedeutet max_features='sqrt' die Quadratwurzel aller Merkmale.
Eine weitere beliebte Option ist max_features='log2', was den Logarithmus zur Basis 2 aller Merkmale nimmt.
Sie können auch einen Anteil festlegen; zum Beispiel bedeutet max_features=0.1, dass 10% der Merkmale bei jedem Entscheidungsnode verwendet werden.

Zusammenfassend ist der Random Forest so aufgebaut, dass jeder Baum sein eigenes Stichprobendataset hat und jeder Entscheidungsnode der Bäume sein eigenes Stichprobenmerkmalset verwendet.
Das Ergebnis sind Entscheidungsbäume, die vielfältig genug sind, um die Leistung eines Modells zu verbessern.

Was hilft uns, die Zufälligkeit in einem Random Forest zu erreichen? Wählen Sie alle zutreffenden aus.

Was hilft uns, die Zufälligkeit in einem Random Forest zu erreichen? Wählen Sie alle zutreffenden aus.

Wählen Sie einige richtige Antworten aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2
We're sorry to hear that something went wrong. What happened?
some-alt