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), wobeitpdie Anzahl der wahren Positive undfndie 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ürpos_labelzurück. Wennaveragenicht'binary'ist, wirdpos_labelignoriert und der Recall für beide Klassen wird berechnet und dann gemittelt oder beide zurückgegeben (wennaverage=None). Ebenso werden für multiklassen- und multilabel-Ziele die Recall-Werte für allelabelsentweder zurückgegeben oder gemittelt, abhängig vom Parameteraverage. Verwenden Sielabels, 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, wennaverage 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 iny_trueundy_predin sortierter Reihenfolge verwendet.Geändert in Version 0.17: Der Parameter
labelswurde 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 Sielabels=[pos_label]undaverage != '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_labelangegebene 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_scoreabweicht).
- 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.nangesetzt, werden solche Werte von der Mittelung ausgeschlossen.
Hinzugefügt in Version 1.3: Option
np.nanhinzugefü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_supportBerechne Präzision, Recall, F-Maß und Support für jede Klasse.
precision_scoreBerechnet das Verhältnis
tp / (tp + fp), wobeitpdie Anzahl der wahren Positive undfpdie Anzahl der falschen Positive ist.balanced_accuracy_scoreBerechnet die ausgewogene Genauigkeit, um mit unausgeglichenen Datensätzen umzugehen.
multilabel_confusion_matrixBerechne eine Konfusionsmatrix für jede Klasse oder Stichprobe.
PrecisionRecallDisplay.from_estimatorZeichnet die Präzisions-Recall-Kurve basierend auf einem Schätzer und einigen Daten.
PrecisionRecallDisplay.from_predictionsZeichnet die Präzisions-Recall-Kurve basierend auf binären Klassenvorhersagen.
Anmerkungen
Wenn
true positive + false negative == 0, gibt Recall 0 zurück und löstUndefinedMetricWarningaus. Dieses Verhalten kann mitzero_divisionmodifiziert 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])
Galeriebeispiele#
Post-Hoc-Anpassung des Entscheidungsschwellenwerts für kostenempfindliches Lernen