sklearn.metrics.
jaccard_score
(y_true, y_pred, *, labels=None, pos_label=1, average=’binary‘, sample_weight=None, zero_division=’warn‘)¶
Jaccard similarity coefficient score.
Der Jaccard-Index oder Jaccard-Ähnlichkeitskoeffizient, definiert als die Größe der Schnittmenge geteilt durch die Größe der Vereinigung zweier Etikettensätze, wird verwendet, um den Satz vorhergesagter Etiketten für eine Probe mit dem entsprechenden Satz von Etiketten in y_true
zu vergleichen.
Lesen Sie mehr im Benutzerhandbuch.
Parameter y_true1d Array-ähnliches oder Label-Indikator-Array / dünnbesetzte Matrix
Grundwahrheit (korrekte) Labels.
y_pred1d array-like, oder label indicator array / sparse matrix
Predicted labels, as returned by a classifier.
labelsarray-like of shape (n_classes,), default=None
The set of labels to include when average != 'binary'
, and theirorder if average is None
. In den Daten vorhandene Beschriftungen können ausgeschlossen werden, um beispielsweise einen Mehrklassen-Durchschnitt zu berechnen, bei dem eine mehrheitlich negative Klasse ignoriert wird, während Beschriftungen, die nicht in den Daten vorhanden sind, zu 0 Komponenten in einem Makro-Durchschnitt führen. Bei Multilabel-Zielen sind die Labels Spaltenindizes. Standardmäßig werden alle Labels in y_true
undy_pred
in sortierter Reihenfolge verwendet.
pos_labelstr oder int, default=1
Die zu berichtende Klasse, wenn average='binary'
und die Daten binär sind.Wenn es sich um Mehrklassen- oder Multilabel-Daten handelt, wird diese Angabe ignoriert; wenn labels=
und average != 'binary'
gesetzt werden, werden nur die Werte für das jeweilige Label gemeldet.
average{None, ‚micro‘, ‚macro‘, ’samples‘, ‚weighted‘, ‚binary‘}, default=’binary‘
Wenn None
, werden die Werte für jede Klasse zurückgegeben. Andernfalls bestimmt dies die Art der Mittelwertbildung, die an den Daten vorgenommen wird:
'binary'
:
Nur Ergebnisse für die durch pos_label
angegebene Klasse melden.Dies gilt nur, wenn die Ziele (y_{true,pred}
) binär sind.
'micro'
:
Metriken global berechnen, indem die Summe der wahren Positiven, falschen Negativen und falschen Positiven gezählt wird.
'macro'
:
Berechnen Sie die Metriken für jedes Label und ermitteln Sie ihren ungewichteten Mittelwert. Dabei wird das Ungleichgewicht der Labels nicht berücksichtigt.
'weighted'
:
Berechnen Sie die Metriken für jedes Label und ermitteln Sie deren Mittelwert, gewichtet nach der Unterstützung (der Anzahl der wahren Instanzen für jedes Label). Dies ändert das „Makro“, um das Ungleichgewicht der Labels zu berücksichtigen.
'samples'
:
Berechnen Sie Metriken für jede Instanz und finden Sie ihren Durchschnitt (nur sinnvoll für Multilabel-Klassifikation).
sample_weightarray-like of shape (n_samples,), default=None
Stichprobengewichte.
zero_division „warn“, {0.0, 1.0}, default=“warn“
Setzt den Wert, der zurückgegeben werden soll, wenn es eine Null-Division gibt, d.h. wenn es keine negativen Werte in Vorhersagen und Labels gibt. Wenn auf „warn“ gesetzt, verhält sich dies wie 0, aber es wird auch eine Warnung ausgelöst.
Gibt scorefloat (wenn average nicht None ist) oder array of floats zurück, shape =
Siehe auch
accuracy_score
, f_score
, multilabel_confusion_matrix
Hinweise
jaccard_score
kann eine schlechte Metrik sein, wenn es für einige Proben oder Klassen keine negativen Werte gibt. Jaccard ist undefiniert, wenn es keine wahren oder vorhergesagten Bezeichnungen gibt, und unsere Implementierung gibt einen Wert von 0 mit einer Warnung zurück.
1
Wikipedia-Eintrag für den Jaccard-Index.
Beispiele
>>> import numpy as np>>> from sklearn.metrics import jaccard_score>>> y_true = np.array(,... ])>>> y_pred = np.array(,... ])
Im binären Fall:
>>> jaccard_score(y_true, y_pred)0.6666...
Im multilabel Fall:
>>> jaccard_score(y_true, y_pred, average='samples')0.5833...>>> jaccard_score(y_true, y_pred, average='macro')0.6666...>>> jaccard_score(y_true, y_pred, average=None)array()
Im Multiklassen-Fall:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()