Inhaltsverzeichnis:
- So laden Sie Ihre Daten
- Zeile 1 importiert die Bibliothek, mit der Sie das Dataset in zwei Teile aufteilen können.
- Ausführen der Testdaten
- Wie passt das logistische Regressionsmodell mit dem Parameter C = 150 dazu? Nun, Sie können nicht 100 Prozent schlagen. Hier ist der Code zum Erstellen und Auswerten des logistischen Klassifikators mit C = 150: >>>> logClassifier_2 = linear_model. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> vorhergesagt = logClassifier_2. Vorhersage (X_test) >>> Metriken. precision_score (y_test, vorhergesagt) 0. 93333333333333335 >>> Metriken. confusion_matrix (y_test, vorhergesagt) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Video: Icinga Web 2: Erstellen und verwalten von Business Prozessen (Webinar vom 30. März 2017) 2024
Nachdem Sie Ihr erstes Klassifizierungsvorhersagemodell für die Analyse der Daten erstellt haben, ist das Erstellen weiterer Modelle in scikit eine wirklich einfache Aufgabe. Der einzige wirkliche Unterschied von einem Modell zum nächsten ist, dass Sie möglicherweise die Parameter vom Algorithmus zum Algorithmus abstimmen müssen.
So laden Sie Ihre Daten
Mit dieser Codeliste wird das Iris-Dataset in Ihre Sitzung geladen: >>>> from sklearn. Datensätze importieren load_iris >>> iris = load_iris ()
Wie erstelle ich eine Instanz des Klassifikators
Beachten Sie den Parameter (Regularisierungsparameter) im Konstruktor. Der
Regularisierungsparameter
wird verwendet, um eine Überanpassung zu verhindern. Der Parameter ist nicht unbedingt erforderlich (der Konstruktor funktioniert ohne ihn, da er standardmäßig C = 1 ist). Wenn Sie einen logistischen Regressionsklassifikator mit C = 150 erstellen, wird eine bessere Darstellung der Entscheidungsoberfläche erstellt. Sie können beide Plots unten sehen.
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 logistischen Regressionsklassifikators, die Sie gerade erstellt haben, und ruft die Anpassungsmethode auf, um das Modell mit dem Trainingsdataset zu trainieren.
So visualisieren Sie den Klassifikator
Beim Betrachten des Entscheidungsoberflächenbereichs im Diagramm sieht es so aus, als ob ein Tuning vorgenommen werden muss. Wenn Sie in die Mitte des Diagramms schauen, können Sie sehen, dass viele der Datenpunkte, die zum mittleren Bereich (Versicolor) gehören, in dem Bereich auf der rechten Seite liegen (Virginica).
Dieses Bild zeigt die Entscheidungsoberfläche mit einem C-Wert von 150. Es sieht optisch besser aus, daher erscheint es angemessen, diese Einstellung für Ihr logistisches Regressionsmodell zu verwenden.
Ausführen der Testdaten
Im folgenden Code wird das Test-Dataset mit der ersten Zeile an das Modell und die dritte Zeile mit der Ausgabe ausgegeben: >>>> predicted = logClassifier. vorhersagen (X_test) >>> vorhergesagtes Array ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2])
Wie man das Modell auswertet < Sie können die Ausgabe der Vorhersage mit dem y_test-Array vergleichen. Als Ergebnis können Sie sehen, dass alle Testdatenpunkte korrekt vorhergesagt wurden. Hier ist der Code: >>>> von sklearn import metrics >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> Metriken. precision_score (y_test, vorhergesagt) 1. 0 # 1. 0 ist 100-prozentige Genauigkeit >>> vorhergesagt == y_testarray ([True, True, True, True, True, True, True, True, True, True, True, True, True, True, True], dtype = bool)
Wie passt das logistische Regressionsmodell mit dem Parameter C = 150 dazu? Nun, Sie können nicht 100 Prozent schlagen. Hier ist der Code zum Erstellen und Auswerten des logistischen Klassifikators mit C = 150: >>>> logClassifier_2 = linear_model. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> vorhergesagt = logClassifier_2. Vorhersage (X_test) >>> Metriken. precision_score (y_test, vorhergesagt) 0. 93333333333333335 >>> Metriken. confusion_matrix (y_test, vorhergesagt) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Wir hatten bessere Ergebnisse erwartet, aber es war tatsächlich schlimmer. Es gab einen Fehler in den Vorhersagen. Das Ergebnis ist das gleiche wie das des Support Vector Machine (SVM) Modells.
Hier ist die vollständige Auflistung des Codes zum Erstellen und Auswerten eines logistischen Regressionsklassifikationsmodells mit den Standardparametern: >>>> aus sklearn. Datensätze importieren load_iris >>> aus sklearn import linear_model >>> aus sklearn import cross_validation >>> aus sklearn import metrics >>> iris = load_iris () >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (iris.daten, iris.ziel, test_size = 0. 10, random_state = 111) >>> logClassifier = linear_model. LogisticRegression (, random_state = 111) >>> logClassifier. fit (X_train, y_train) >>> vorhergesagt = logClassifier. vorhersagen (X_test) >>> vorhergesagtes Array ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> Metriken. precision_score (y_test, vorhergesagt) 1. 0 # 1. 0 ist 100-prozentige Genauigkeit >>> vorhergesagt == y_testarray ([True, True, True, True, True, True, True, True, True, True, True, True, True, True, True], dtype = bool)