precision_recall_curve#

sklearn.metrics.precision_recall_curve(y_true, y_score, *, pos_label=None, sample_weight=None, drop_intermediate=False)[source]#

Berechne Präzisions-Recall-Paare für verschiedene Wahrscheinlichkeitsschwellen.

Hinweis: Unterstützung über binäre Klassifikationsaufgaben hinaus mittels One-vs-Rest oder One-vs-One ist nicht implementiert.

Die Präzision ist das Verhältnis tp / (tp + fp), wobei tp die Anzahl der wahren Positiven und fp die Anzahl der falschen Positiven ist. Die Präzision ist intuitiv die Fähigkeit des Klassifikators, eine negative Stichprobe nicht als positiv zu kennzeichnen.

Der Recall ist das Verhältnis tp / (tp + fn), wobei tp die Anzahl der wahren Positive und fn die Anzahl der falschen Negative ist. Der Recall ist intuitiv die Fähigkeit des Klassifikators, alle positiven Stichproben zu finden.

Die letzten Werte für Präzision und Rückruf sind 1 bzw. 0 und haben keinen entsprechenden Schwellenwert. Dies stellt sicher, dass der Graph auf der y-Achse beginnt.

Die ersten Werte für Präzision und Rückruf sind Präzision = Klassenbalance und Rückruf = 1,0, was einem Klassifikator entspricht, der immer die positive Klasse vorhersagt.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
y_truearray-ähnlich mit Form (n_samples,)

Wahre binäre Labels. Wenn die Labels weder {-1, 1} noch {0, 1} sind, sollte pos_label explizit angegeben werden.

y_scorearray-artig der Form (n_samples,)

Zielwerte, können entweder Wahrscheinlichkeitsschätzungen der positiven Klasse oder nicht-schwellenwertbasierte Messungen von Entscheidungen sein (wie von decision_function bei einigen Klassifikatoren zurückgegeben). Für decision_function-Werte sollten Werte größer oder gleich Null die positive Klasse anzeigen.

pos_labelint, float, bool oder str, Standardwert=None

Das Label der positiven Klasse. Wenn pos_label=None, und y_true in {-1, 1} oder {0, 1} liegt, wird pos_label auf 1 gesetzt, andernfalls wird ein Fehler ausgelöst.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichprobengewichte.

drop_intermediatebool, Standard=False

Ob einige suboptimale Schwellenwerte fallen gelassen werden sollen, die auf einer geplotteten Präzisions-Rückruf-Kurve nicht erscheinen würden. Dies ist nützlich, um leichtere Präzisions-Rückruf-Kurven zu erstellen.

Hinzugefügt in Version 1.3.

Gibt zurück:
precisionndarray der Form (n_thresholds + 1,)

Präzisionswerte, sodass Element i die Präzision von Vorhersagen mit einem Score von >= thresholds[i] ist und das letzte Element 1 ist.

recallndarray der Form (n_thresholds + 1,)

Abnehmende Rückrufwerte, sodass Element i der Rückruf von Vorhersagen mit einem Score von >= thresholds[i] ist und das letzte Element 0 ist.

thresholdsndarray der Form (n_thresholds,)

Zunehmende Schwellenwerte für die Entscheidungsfunktion, die zur Berechnung von Präzision und Rückruf verwendet werden, wobei n_thresholds = len(np.unique(y_score)).

Siehe auch

PrecisionRecallDisplay.from_estimator

Plottet die Präzisions-Rückruf-Kurve für einen binären Klassifikator.

PrecisionRecallDisplay.from_predictions

Plottet die Präzisions-Rückruf-Kurve mithilfe von Vorhersagen eines binären Klassifikators.

average_precision_score

Berechnet die durchschnittliche Präzision aus Vorhersagewerten.

det_curve

Berechnet Fehlerraten für verschiedene Wahrscheinlichkeitsschwellenwerte.

roc_curve

Berechnen Sie die Receiver Operating Characteristic (ROC)-Kurve.

confusion_matrix_at_thresholds

Berechnet im binären Fall die Zählungen von True Negative, False Positive, False Negative und True Positive pro Schwellenwert.

Beispiele

>>> import numpy as np
>>> from sklearn.metrics import precision_recall_curve
>>> y_true = np.array([0, 0, 1, 1])
>>> y_scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> precision, recall, thresholds = precision_recall_curve(
...     y_true, y_scores)
>>> precision
array([0.5       , 0.66666667, 0.5       , 1.        , 1.        ])
>>> recall
array([1. , 1. , 0.5, 0.5, 0. ])
>>> thresholds
array([0.1 , 0.35, 0.4 , 0.8 ])