So erstellen Sie eine Precision-Recall-Kurve in Python

Von Fabian
Kategorie: Python
Lesezeit: 2 Minuten

Bei der Verwendung von Klassifizierungsmodellen beim maschinellen Lernen verwenden wir häufig zwei Metriken, um die Qualität des Modells zu bewerten, nämlich Präzision und Erinnerung.

Precision: Korrigieren Sie positive Vorhersagen im Verhältnis zu den gesamten positiven Vorhersagen.

Dies wird berechnet als:

  • Precision = Richtig-Positive / (Richtig-Positive + Falsch-Positive)

Recall: Korrigieren Sie positive Vorhersagen im Verhältnis zu den tatsächlich positiven Gesamtwerten

Dies wird berechnet als:

  • Recall = Richtig-Positive / (Richtig-Positive + Falsch-Negative)

Um die Präzision und den Recall für ein bestimmtes Modell zu visualisieren, können wir eine Precision-Recall-Kurve erstellen. Diese Kurve zeigt den Kompromiss zwischen Präzision und Abruf für verschiedene Schwellenwerte.

Precision-Recall-Kurve in Python

Das folgende Schritt-für-Schritt-Beispiel zeigt, wie Sie in Python eine Genauigkeits-Rückruf-Kurve für ein logistisches Regressionsmodell erstellen.

Schritt 1: Pakete importieren

Zuerst importieren wir die erforderlichen 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:

#Dataset mit 5 Prädiktorvariablen erstellen
X, y = datasets.make_classification(n_samples=1000,
                                    n_features=4,
                                    n_informative=3,
                                    n_redundant=1,
                                    random_state=0)

#Datensatz in Trainings- und Testsatz aufteilen
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.3,random_state=0)

#Logistisches Regressionsmodell an Datensatz anpassen
classifier = LogisticRegression()
classifier.fit(X_train, y_train)

#Verwenden Sie das logistische Regressionsmodell, um Vorhersagen zu treffen
y_score = classifier.predict_proba(X_test)[:, 1]

Schritt 3: Erstellen Sie die Precision-Recall-Kurve

Als Nächstes berechnen wir die Präzision und den Recall des Modells und erstellen eine Precision-Recall-Kurve:

#Präzision und Rückruf berechnen
precision, recall, thresholds = precision_recall_curve(y_test, y_score)

#Präzise Erinnerungskurve erstellen
fig, ax = plt.subplots()
ax.plot(recall, precision, color='purple')

# Achsenbeschriftungen zum Plot hinzufügen
ax.set_title('Precision-Recall Curve')
ax.set_ylabel('Precision')
ax.set_xlabel('Recall')

#Plot anzeigen
plt.show()

Precision-Recall-Kurve in Python

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

Beachten Sie, dass die Genauigkeit abnimmt, wenn der Recall zunimmt.

Dies stellt den Kompromiss zwischen den beiden Metriken dar. Um den Wiedererkennungswert 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

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: