recall_score#

sklearn.metrics.recall_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')[source]#

Berechne den Recall.

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.

Der beste Wert ist 1 und der schlechteste Wert ist 0.

Unterstützung über binäre Ziele hinaus wird erreicht, indem multiklassen- und multilabel-Daten als Sammlung von binären Problemen behandelt werden, eines für jede Bezeichnung. Für den binären Fall gibt das Setzen von average='binary' den Recall für pos_label zurück. Wenn average nicht 'binary' ist, wird pos_label ignoriert und der Recall für beide Klassen wird berechnet und dann gemittelt oder beide zurückgegeben (wenn average=None). Ebenso werden für multiklassen- und multilabel-Ziele die Recall-Werte für alle labels entweder zurückgegeben oder gemittelt, abhängig vom Parameter average. Verwenden Sie labels, um die Menge der Bezeichnungen anzugeben, für die der Recall berechnet werden soll.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
y_true1D Array-ähnlich oder Label-Indikator-Array / Sparse Matrix

Wahre (korrekte) Zielwerte. Sparse Matrix wird nur unterstützt, wenn die Ziele vom Typ Multilabel sind.

y_pred1D Array-ähnlich oder Label-Indikator-Array / Sparse Matrix

Geschätzte Ziele, wie sie von einem Klassifikator zurückgegeben werden. Sparse Matrix wird nur unterstützt, wenn die Ziele vom Typ Multilabel sind.

labelsarray-artig, Standardwert=None

Die Menge der Bezeichnungen, die eingeschlossen werden sollen, wenn average != 'binary', und ihre Reihenfolge, wenn average is None. Bezeichnungen, die in den Daten vorhanden sind, können ausgeschlossen werden, z. B. bei der Multiklassenklassifizierung, um eine „negative Klasse“ auszuschließen. Bezeichnungen, die nicht in den Daten vorhanden sind, können eingeschlossen werden und erhalten 0 Stichproben. Bei Multilabel-Zielen sind Bezeichnungen Spaltenindizes. Standardmäßig werden alle Bezeichnungen in y_true und y_pred in sortierter Reihenfolge verwendet.

Geändert in Version 0.17: Der Parameter labels wurde für Multiklassenprobleme verbessert.

pos_labelint, float, bool oder str, Standard=1

Die Klasse, für die berichtet werden soll, wenn average='binary' und die Daten binär sind, andernfalls wird dieser Parameter ignoriert. Für Multiklassen- oder Multilabel-Ziele setzen Sie labels=[pos_label] und average != 'binary', um Metriken für nur eine Bezeichnung zu berichten.

average{‘micro’, ‘macro’, ‘samples’, ‘weighted’, ‘binary’} oder None, Standard=’binary’

Dieser Parameter ist für Multiklassen-/Multilabel-Ziele erforderlich. Wenn None, werden die Metriken für jede Klasse zurückgegeben. Andernfalls bestimmt dieser Parameter die Art der Mittelung, die auf den Daten durchgeführt wird.

'binary':

Nur Ergebnisse für die durch pos_label angegebene Klasse berichten. Dies ist nur anwendbar, wenn die Ziele (y_{true,pred}) binär sind.

'micro':

Metriken global berechnen, indem die gesamten wahren Positive, falschen Negative und falschen Positive gezählt werden.

'macro':

Metriken für jede Bezeichnung berechnen und deren ungewichtetes Mittel finden. Dies berücksichtigt keine unausgeglichenen Bezeichnungen.

'weighted':

Metriken für jede Bezeichnung berechnen und deren Mittel finden, gewichtet nach dem Support (der Anzahl der wahren Instanzen für jede Bezeichnung). Dies modifiziert 'macro', um unausgeglichene Bezeichnungen zu berücksichtigen; es kann zu einem F-Score führen, der nicht zwischen Präzision und Recall liegt. Gewichteteter Recall ist gleich Genauigkeit.

'samples':

Metriken für jede Instanz berechnen und deren Mittel finden (nur sinnvoll für Multilabel-Klassifizierung, wo dies von accuracy_score abweicht).

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

Stichprobengewichte.

zero_division{“warn”, 0.0, 1.0, np.nan}, Standard=”warn”

Legt den Wert fest, der zurückgegeben werden soll, wenn eine Nullteilung auftritt.

Anmerkungen

  • Wenn auf „warn“ gesetzt, verhält sich dies wie 0, aber es wird auch eine Warnung ausgegeben.

  • Wenn auf np.nan gesetzt, werden solche Werte von der Mittelung ausgeschlossen.

Hinzugefügt in Version 1.3: Option np.nan hinzugefügt.

Gibt zurück:
recallfloat (wenn average nicht None ist) oder Array von float der Form (n_unique_labels,)

Recall der positiven Klasse in der binären Klassifizierung oder gewichtetes Mittel des Recalls jeder Klasse für die Multiklassenaufgabe.

Siehe auch

precision_recall_fscore_support

Berechne Präzision, Recall, F-Maß und Support für jede Klasse.

precision_score

Berechnet das Verhältnis tp / (tp + fp), wobei tp die Anzahl der wahren Positive und fp die Anzahl der falschen Positive ist.

balanced_accuracy_score

Berechnet die ausgewogene Genauigkeit, um mit unausgeglichenen Datensätzen umzugehen.

multilabel_confusion_matrix

Berechne eine Konfusionsmatrix für jede Klasse oder Stichprobe.

PrecisionRecallDisplay.from_estimator

Zeichnet die Präzisions-Recall-Kurve basierend auf einem Schätzer und einigen Daten.

PrecisionRecallDisplay.from_predictions

Zeichnet die Präzisions-Recall-Kurve basierend auf binären Klassenvorhersagen.

Anmerkungen

Wenn true positive + false negative == 0, gibt Recall 0 zurück und löst UndefinedMetricWarning aus. Dieses Verhalten kann mit zero_division modifiziert werden.

Beispiele

>>> import numpy as np
>>> from sklearn.metrics import recall_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> recall_score(y_true, y_pred, average='macro')
0.33
>>> recall_score(y_true, y_pred, average='micro')
0.33
>>> recall_score(y_true, y_pred, average='weighted')
0.33
>>> recall_score(y_true, y_pred, average=None)
array([1., 0., 0.])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> recall_score(y_true, y_pred, average=None)
array([0.5, 0. , 0. ])
>>> recall_score(y_true, y_pred, average=None, zero_division=1)
array([0.5, 1. , 1. ])
>>> recall_score(y_true, y_pred, average=None, zero_division=np.nan)
array([0.5, nan, nan])
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> recall_score(y_true, y_pred, average=None)
array([1. , 1. , 0.5])