So erstellen sie eine präzisionsrückrufkurve in python


Bei der Verwendung von Klassifizierungsmodellen beim maschinellen Lernen verwenden wir häufig zwei Metriken zur Bewertung der Modellqualität: Präzision und Erinnerung.

Genauigkeit : Korrigieren Sie positive Vorhersagen im Verhältnis zur Gesamtzahl der positiven Vorhersagen.

Dies wird wie folgt berechnet:

  • Genauigkeit = True Positives / (True Positives + False Positives)

Erinnerung : Korrigieren Sie positive Vorhersagen anhand der gesamten tatsächlichen positiven Ergebnisse

Dies wird wie folgt berechnet:

  • Erinnerung = Wahre Positive / (Wahr Positive + Falsch Negative)

Um die Präzision und den Rückruf eines bestimmten Modells zu visualisieren, können wir eine Präzisions-Rückrufkurve erstellen. Diese Kurve zeigt den Kompromiss zwischen Präzision und Erinnerung für verschiedene Schwellenwerte.

Präzisionsrückrufkurve in Python

Das folgende Schritt-für-Schritt-Beispiel zeigt, wie Sie eine Präzisionsrückrufkurve für ein logistisches Regressionsmodell in Python erstellen.

Schritt 1: Pakete importieren

Zuerst importieren wir die notwendigen Pakete:

 from sklearn import datasets
from sklearn. model_selection import train_test_split
from sklearn. linear_model import LogisticRegression
from sklearn. metrics import precision_recall_curve
import matplotlib. pyplot as plt

Schritt 2: Passen Sie das logistische Regressionsmodell an

Als Nächstes erstellen wir einen Datensatz und passen ein logistisches Regressionsmodell daran an:

 #create dataset with 5 predictor variables
X, y = datasets. make_classification (n_samples= 1000 ,
                                    n_features= 4 ,
                                    n_informative= 3 ,
                                    n_redundant= 1 ,
                                    random_state= 0 )

#split dataset into training and testing set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= .3 , random_state= 0 )

#fit logistic regression model to dataset
classifier = LogisticRegression()
classify. fit (X_train, y_train)

#use logistic regression model to make predictions
y_score = classify. predict_proba (X_test)[:, 1 ]

Schritt 3: Erstellen Sie die Precision-Recall-Kurve

Als nächstes berechnen wir die Präzision und den Rückruf des Modells und erstellen eine Präzisions-Rückruf-Kurve:

 #calculate precision and recall
precision, recall, thresholds = precision_recall_curve(y_test, y_score)

#create precision recall curve
fig, ax = plt. subplots ()
ax. plot (recall, precision, color=' purple ')

#add axis labels to plot
ax. set_title (' Precision-Recall Curve ')
ax. set_ylabel (' Precision ')
ax. set_xlabel (' Recall ')

#displayplot
plt. show () 

Präzisionsrückrufkurve in Python

Die x-Achse zeigt den Abruf und die y-Achse zeigt die Präzision für verschiedene Schwellenwerte.

Beachten Sie, dass mit zunehmender Erinnerung die Präzision abnimmt.

Dies stellt den Kompromiss zwischen den beiden Metriken dar. Um den Rückruf unseres Modells zu erhöhen, muss die Präzision abnehmen und umgekehrt.

Zusätzliche Ressourcen

So führen Sie eine logistische Regression in Python durch
So erstellen Sie eine Verwirrungsmatrix in Python
So interpretieren Sie eine ROC-Kurve (mit Beispielen)

Einen Kommentar hinzufügen

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