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 similarity coefficient score.
Jaccard-indexet eller Jaccard-likhetskoefficienten, som definieras som storleken på skärningspunkten dividerad med storleken på föreningen av två etikettuppsättningar, används för att jämföra uppsättningen förutspådda etiketter för ett prov med motsvarande uppsättning etiketter i y_true
.
Läs mer i användarhandboken.
Parametrar y_true1d array-liknande, eller array med etikettindikatorer / gles matris
Grund sanning (korrekta) etiketter.
y_pred1d array-like, or label indicator array / sparse matrix
Predicted labels, as returned by a classifier.
labelsarray-like of shape (n_classes,), default=None
Mängden etiketter som ska inkluderas om average != 'binary'
, och deras ordning om average is None
. Etiketter som finns i data kan uteslutas, till exempel för att beräkna ett medelvärde för flera klasser som ignorerar en övervägande negativ klass, medan etiketter som inte finns i data kommer att resultera i 0 komponenter i ett makromedelvärde. För mål med flera etiketter är etiketterna kolumnindex. Som standard används alla etiketter i y_true
ochy_pred
i sorterad ordning.
pos_labelstr eller int, default=1
Den klass som ska rapporteras om average='binary'
och uppgifterna är binära.Om data är flerklassiga eller flermärkta kommer detta att ignoreras; om labels=
och average != 'binary'
sätts kommer endast poäng för den etiketten att rapporteras.
average{None, ’micro’, ’macro’, ’samples’, ’weighted’, ’binary’}, default=’binary’
Om None
, returneras poängen för varje klass. I annat fall bestämmer detta vilken typ av medelvärdesberäkning som utförs på data:
'binary'
: 'micro'
:
Beräkna mätvärdena globalt genom att räkna totala sant positiva, falskt negativa och falskt positiva värden.
'macro'
: 'macro'
:
Beräkna mätvärden för varje etikett och hitta deras oviktade medelvärde. Detta tar inte hänsyn till obalans mellan etiketter.
'weighted'
:
Beräkna mätvärden för varje etikett och hitta deras medelvärde, viktat med stöd (antalet sanna instanser för varje etikett). Detta ändrar ”macro” för att ta hänsyn till obalans mellan etiketter.
'samples'
:
Beräkna mätvärden för varje instans och hitta deras medelvärde (endast betydelsefullt för klassificering med flera etiketter).
sample_weightarray-like of shape (n_samples,), default=None
Sampelvikter.
zero_division ”warn”, {0.0, 1.0}, default=”warn”
Inställer värdet som ska returneras när det finns en nolldivision, det vill säga när det inte finns några negativa värden i förutsägelser och etiketter. Om det sätts till ”warn” fungerar detta som 0, men en varning tas också upp.
Returnerar scorefloat (om average inte är None) eller array of floats, shape =
Se även
accuracy_score
, f_score
, multilabel_confusion_matrix
Notiser
jaccard_score
kan vara ett dåligt mått om det inte finns nopositiva värden för vissa prover eller klasser. Jaccard är odefinierat om det inte finns några sanna eller förutspådda etiketter, och vår implementering returnerar ett resultat på 0 med en varning.
1
Wikipedia-post för Jaccard-indexet.
Exempel
>>> import numpy as np>>> from sklearn.metrics import jaccard_score>>> y_true = np.array(,... ])>>> y_pred = np.array(,... ])
I det binära fallet:
>>> jaccard_score(y_true, y_pred)0.6666...
I fallet med flera etiketter:
>>> 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()
I fallet med flera klasser:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()
Exempel med sklearn.metrics.jaccard_score¶