Kursinhalt
Klassifikation mit Python
Klassifikation mit Python
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:
- Stichproben der Daten für jeden Baum;
- 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.
Danke für Ihr Feedback!