Inhaltsverzeichnis:
- Laden Ihrer Daten
- Zeile 1 importiert die Bibliothek, mit der Sie das Dataset in zwei Teile aufteilen können.
- Array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >>>> y_test
- True], dtype = bool)
Video: Icinga Web 2: Erstellen und verwalten von Business Prozessen (Webinar vom 30. März 2017) 2024
Das zufällige Waldmodell ist ein Ensemble-Modell, das in Predictive Analytics verwendet werden; Es bedarf eines Ensembles (Auswahl) von Entscheidungsbäumen, um sein Modell zu erstellen. Die Idee ist, eine zufällige Stichprobe von schwachen Lernenden (eine zufällige Untermenge der Trainingsdaten) zu nehmen und sie wählen zu lassen, um das stärkste und beste Modell auszuwählen. Das zufällige Waldmodell kann entweder für die Klassifizierung oder für die Regression verwendet werden. Im folgenden Beispiel wird das zufällige Waldmodell verwendet, um die Irisart zu klassifizieren.
Laden Ihrer Daten
Diese Codeliste lädt das
Iris
-Dataset in Ihre Sitzung: >>>> von sklearn. Datensätze importieren load_iris >>>> iris = load_iris ()
Eine Instanz des Klassifikators erstellen
Die folgenden zwei Codezeilen erzeugen eine Instanz des Klassifikators. Die erste Zeile importiert die zufällige Gesamtstrukturbibliothek. Die zweite Zeile erstellt eine Instanz des zufälligen Gesamtstrukturalgorithmus:
>>>> von sklearn. ensemble import RandomForestClassifier >>>> rf = RandomForestClassifier (n_estimators = 15,
random_state = 111)
Der Parameter
n_estimators
im Konstruktor ist ein häufig verwendeter Tuning-Parameter für das zufällige Gesamtmodell.. Der Wert wird verwendet, um die Anzahl der Bäume in der Gesamtstruktur zu erstellen. Es liegt im Allgemeinen zwischen 10 und 100 Prozent des Datensatzes, aber es hängt von den Daten ab, die Sie verwenden. Hier ist der Wert auf 15 gesetzt, was 10 Prozent der Daten entspricht. Später werden Sie sehen, dass die Änderung des Parameterwerts auf 150 (100 Prozent) die gleichen Ergebnisse liefert.
Das n
_stimators
wird verwendet, um die Modellleistung und Überanpassung zu optimieren. Je größer der Wert, desto besser die Leistung, jedoch auf Kosten der Überanpassung. Je kleiner der Wert ist, desto höher sind die Chancen, nicht zu überladen, sondern auf Kosten einer geringeren Leistung. Außerdem gibt es einen Punkt, an dem die Erhöhung der Anzahl im Allgemeinen die Genauigkeitsverbesserung verschlechtert und die erforderliche Rechenleistung dramatisch erhöhen kann. Der Parameter wird standardmäßig auf 10 gesetzt, wenn er im Konstruktor ausgelassen wird.
Sie müssen das Dataset in Trainings- und Testsets aufteilen, bevor Sie eine Instanz des zufälligen Gesamtstrukturklassifikators erstellen können. Der folgende Code wird diese Aufgabe ausführen: >>>> from sklearn import cross_validation >>>> X_train, X_test, y_train, y_test =
cross_validation. train_test_split (Irisdaten,
Iris. target, test_size = 0, 10, random_state = 111) >>>> rf = rf. fit (X_train, y_train)
Zeile 1 importiert die Bibliothek, mit der Sie das Dataset in zwei Teile aufteilen können.
Zeile 2 ruft die Funktion aus der Bibliothek auf, die das Dataset in zwei Teile aufteilt, und ordnet die jetzt geteilten Datensätze zwei Variablenpaaren zu.
Zeile 3 verwendet die Instanz des soeben erstellten zufälligen Gesamtstrukturklassifikators und ruft dann die Anpassungsmethode auf, um das Modell mit dem Trainingsdataset zu trainieren.
Ausführen der Testdaten
Im folgenden Code wird das Test-Dataset mit der ersten Zeile an das Modell übergeben, und die dritte Zeile zeigt die Ausgabe an: >>>> predicted = rf. vorhersagen (X_test) >>>> vorhergesagtes
Array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) > Auswerten des Modells
Sie können die Ausgabe der Vorhersage mit dem Array
- y_test
- verknüpfen. Als Ergebnis können Sie sehen, dass zwei Testdatenpunkte falsch vorhergesagt wurden. Die Genauigkeit des zufälligen Waldmodells betrug 86. 67 Prozent.
- Hier ist der Code: >>>> von sklearn import metrics >>>> vorhergesagtes
Array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >>>> y_test
Array ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>>> Metriken. Genauigkeitswert (y_test, vorhergesagt)
0. 8666666666666667 # 1. 0 ist 100-prozentige Genauigkeit >>>> vorhergesagt == y_test
array ([True, True, True, True, False, True, True,
True, True, True, True, True, False, True,
True], dtype = bool)
Wie funktioniert das zufällige Gesamtstrukturmodell, wenn Sie den Parameter
n_estimators
auf 150 ändern? Es sieht so aus, als würde es bei diesem kleinen Datensatz keinen Unterschied machen. Es erzeugt das gleiche Ergebnis: >>>> rf = RandomForestClassifier (n_estimators = 150, random_state = 111) >>>> rf = rf. fit (X_train, y_train) >>>> vorhergesagt = rf. vorhersagen (X_test) >>>> vorhergesagtes
Array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >