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-indekset eller Jaccard-sammenfaldskoefficienten, der er defineret som størrelsen af skæringspunktet divideret med størrelsen af foreningen af to etiketsæt, bruges til at sammenligne sæt af forudsagte etiketter for en prøve med det tilsvarende sæt af etiketter i y_true
.
Læs mere i brugervejledningen.
Parametre y_true1d array-lignende, eller etiketindikator array / sparsom matrix
Grund sandhed (korrekte) etiketter.
y_pred1d array-lignende, eller labelindikator array / sparse matrix
Forudsagte labels, som returneret af en klassifikator.
labelsarray-lignende af form (n_classes,), default=None
Sættet af labels, der skal medtages, hvis average != 'binary'
, og deres rækkefølge, hvis average is None
. Etiketter, der er til stede i dataene, kan udelukkes, f.eks. for at beregne et gennemsnit af flere klasser, der ignorerer en overvejende negativ klasse, mens etiketter, der ikke er til stede i dataene, vil resultere i 0 komponenter i et makrogennemsnit. For multilabel-mål er etiketterne kolonneindekser. Som standard anvendes alle etiketter i y_true
ogy_pred
i sorteret rækkefølge.
pos_labelstr eller int, default=1
Den klasse, der skal rapporteres, hvis average='binary'
og dataene er binære.Hvis dataene er multiklasser eller multilabel, vil dette blive ignoreret; hvis labels=
og average != 'binary'
er indstillet, vil der kun blive rapporteret scorer for det pågældende label.
average{None, ‘micro’, ‘macro’, ‘samples’, ‘weighted’, ‘binary’}, default=’binary’
Hvis None
, returneres scoren for hver klasse. I modsat fald bestemmer dette den type middelværdiberegning, der udføres på dataene:
'binary'
: Dette gælder kun, hvis målene (y_{true,pred}
) er binære. 'micro'
:
Kun rapportere resultater for den klasse, der er angivet med pos_label
.
'micro'
:
Dette gælder kun, hvis målene (y_{true,pred}
) er binære:
Beregn målinger globalt ved at tælle det samlede antal sande positive, falske negative og falske positive.
'macro'
:
Beregne metrikker for hver etiket og finde deres uvægtede gennemsnit. Dette tager ikke hensyn til ubalance mellem etiketter.
'weighted'
:
Beregn måleparametre for hver etiket og find deres gennemsnit, vægtet med støtte (antallet af sande tilfælde for hver etiket). Dette ændrer “makro” for at tage højde for ubalance mellem etiketter.
'samples'
:
Beregn målinger for hver instans og find deres gennemsnit (kun betydningsfuldt for klassifikation med flere etiketter).
sample_weightarray-like of shape (n_samples,), default=None
Sample weights.
zero_division “warn”, {0.0, 1.0}, default=”warn”
Sætter den værdi, der skal returneres, når der er en nuldivision, dvs. når der ikke er negative værdier i forudsigelser og etiketter. Hvis indstillet til “warn”, fungerer dette som 0, men der gives også en advarsel.
Returnerer scorefloat (hvis average ikke er None) eller array af floats, shape =
Se også
accuracy_score
, f_score
, multilabel_confusion_matrix
Notes
jaccard_score
kan være en dårlig måleenhed, hvis der er nopositive værdier for nogle prøver eller klasser. Jaccard er udefineret, hvis der ikke er nogen sande eller forudsagte etiketter, og vores implementering vil returnere en score på 0 med en advarsel.
1
Wikipedia-indlæg om Jaccard-indekset.
Eksempler
>>> import numpy as np>>> from sklearn.metrics import jaccard_score>>> y_true = np.array(,... ])>>> y_pred = np.array(,... ])
I det binære tilfælde:
>>> jaccard_score(y_true, y_pred)0.6666...
I tilfælde med flere 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 multiklassetilfældet:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()
Eksempler ved hjælp af sklearn.metrics.jaccard_score¶