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.
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 ()
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)