sklearn.metrics.
jaccard_score
(y_true, y_pred, *, labels=None, pos_label=1, average=’binary’, sample_weight=None, zero_division=’warn’)¶
Jaccard-gelijksheidscoëfficiënt score.
De Jaccard-index , of Jaccard-gelijksheidscoëfficiënt, gedefinieerd als de grootte van de doorsnede gedeeld door de grootte van de unie van twee labelsets, wordt gebruikt om de set voorspelde labels voor een steekproef te vergelijken met de corresponderende set labels in y_true
.
Lees meer in de Gebruikersgids.
Parameters y_true1d array-achtig, of label indicator array / sparse matrix
Grondwaarheid (correcte) labels.
y_pred1d array-achtig, of label indicator array / sparse matrix
Voorspelde labels, zoals geretourneerd door een classifier.
labelsarray-achtig van vorm (n_classes,), default=None
De verzameling labels om op te nemen indien average != 'binary'
, en hun volgorde indien average is None
. Labels die in de gegevens aanwezig zijn, kunnen worden uitgesloten, bijvoorbeeld om een multiklassengemiddelde te berekenen waarbij de overwegend negatieve klasse wordt genegeerd, terwijl labels die niet in de gegevens aanwezig zijn in een macrogemiddelde zullen resulteren in 0 componenten. Voor multilabel-doelen zijn labels kolomindices. Standaard worden alle labels in y_true
eny_pred
in gesorteerde volgorde gebruikt.
pos_labelstr of int, default=1
De te rapporteren klasse indien average='binary'
en de gegevens binair zijn.Als de gegevens multiklassen of multilabels zijn, wordt dit genegeerd; als labels=
en average != 'binary'
worden ingesteld, worden alleen scores voor dat label gerapporteerd.
gemiddelde{None, ‘micro’, ‘macro’, ‘monsters’, ‘gewogen’, ‘binair’}, default=’binair’
Indien None
, worden de scores voor elke klasse gerapporteerd. Anders bepaalt dit het type middeling dat op de gegevens wordt uitgevoerd:
'binary'
:
Rapportage alleen resultaten voor de klasse gespecificeerd door pos_label
. Dit is alleen van toepassing indien doelen (y_{true,pred}
) binair zijn.
'micro'
:
Bereken de metriek globaal door het totaal aan true positives, false negatives en false positives te tellen.
'macro'
:
Bereken metriek voor elk label, en vind hun ongewogen gemiddelde. Hierbij wordt geen rekening gehouden met onevenwichtigheid van labels.
'weighted'
:
Bereken metrieken voor elk label, en vind hun gemiddelde, gewogen door ondersteuning (het aantal ware gevallen voor elk label). Dit verandert ‘macro’ om rekening te houden met label onevenwichtigheid.
'samples'
:
Bereken metrieken voor elke instantie, en vind hun gemiddelde (alleen zinvol voor multilabel classificatie).
sample_weightarray-achtige van vorm (n_samples,), default=None
Gewichten van de steekproef.
zero_division “warn”, {0.0, 1.0}, default=”warn”
Stelt de waarde in die moet worden teruggegeven als er een nuldeling is, d.w.z. als er geen negatieve waarden in voorspellingen en labels zijn. Indien ingesteld op “warn”, gedraagt dit zich als 0, maar er wordt ook een waarschuwing gegeven.
Geeft score-float terug (als average niet None is) of array van floats, shape =
Zie ook
accuracy_score
, f_score
, multilabel_confusion_matrix
Noten
jaccard_score
kan een slechte metriek zijn als er nopositieven zijn voor sommige steekproeven of klassen. Jaccard is ongedefinieerd als er geen ware of voorspelde labels zijn, en onze implementatie zal een score van 0 met een waarschuwing teruggeven.
1
Wikipedia-invoer voor de Jaccard-index.
Voorbeelden
>>> import numpy as np>>> from sklearn.metrics import jaccard_score>>> y_true = np.array(,... ])>>> y_pred = np.array(,... ])
In het binaire geval:
>>> jaccard_score(y_true, y_pred)0.6666...
In het geval met meerdere labels:
>>> 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()
In het geval van meerdere klassen:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()