sklearn.metrics.jaccard_score¶
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 reeks voorspelde labels voor een steekproef te vergelijken met de overeenkomstige reeks labels in y_true
.
Lees meer in de gebruikershandleiding.
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 die moet worden opgenomen indien average != 'binary'
, en hun volgorde indien average is None
. In de gegevens aanwezige labels kunnen worden uitgesloten, bijvoorbeeld om een multiklassengemiddelde te berekenen waarbij de overwegend negatieve klasse wordt genegeerd, terwijl labels die niet in de gegevens voorkomen 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’, ‘steekproeven’, ‘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 als 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 de “macro” om rekening te houden met label onevenwichtigheid.
'samples'
:
Bereken metrieken voor elke instantie, en vind hun gemiddelde (alleen zinvol voor classificatie met meerdere labels).
sample_weightarray-achtige 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 zijn in voorspellingen en labels. 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
Notities
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-item 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 multilabel-geval:
>>> 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 multiklassen:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()