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’)¶
Współczynnik podobieństwa Jaccarda.
Wskaźnik Jaccarda lub współczynnik podobieństwa Jaccarda, zdefiniowany jako wielkość przecięcia podzielona przez wielkość unii dwóch zbiorów etykiet, jest używany do porównania zestawu przewidywanych etykiet dla próbki z odpowiadającym mu zestawem etykiet w y_true
.
Czytaj więcej w Podręczniku użytkownika.
Parametry y_true1d tablica podobna do tablicy, lub tablica wskaźników etykiet / macierz rzadka
Ground truth (poprawne) etykiety.
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
Zbiór etykiet do uwzględnienia, jeśli average != 'binary'
, i ich kolejność, jeśli average is None
. Etykiety obecne w danych mogą zostać wykluczone, na przykład w celu obliczenia średniej wieloklasowej ignorującej większość klas ujemnych, podczas gdy etykiety nieobecne w danych dadzą wynik 0 składowych w średniej makro. W przypadku celów wieloznakowych, etykiety są indeksami kolumn. Domyślnie wszystkie etykiety w y_true
iy_pred
są używane w porządku posortowanym.
pos_labelstr lub int, default=1
Klasa do raportowania, jeśli average='binary'
i dane są binarne.Jeśli dane są wieloklasowe lub wieloznakowe, zostanie to zignorowane; ustawienie labels=
i average != 'binary'
spowoduje, że raportowane będą wyniki tylko dla tej etykiety.
average{None, 'micro’, 'macro’, 'samples’, 'weighted’, 'binary’}, default=’binary’
Jeśli None
, zwracane są wyniki dla każdej klasy. W przeciwnym razie określa typ uśredniania wykonywanego na danych:
'binary'
:
Zgłaszaj wyniki tylko dla klasy określonej przez pos_label
.Ma to zastosowanie tylko wtedy, gdy cele (y_{true,pred}
) są binarne.
'micro'
:
Oblicz metryki globalnie, zliczając łączną liczbę wyników prawdziwie pozytywnych,fałszywie negatywnych i fałszywie pozytywnych.
'macro'
:
Oblicz metryki dla każdej etykiety i znajdź ich nieważoną średnią. To nie bierze pod uwagę nierównowagi etykiet.
'weighted'
:
Calculate metrics for each label, and find their average, weightedby support (the number of true instances for each label). To zmienia 'makro’, aby uwzględnić nierównowagę etykiet.
'samples'
:
Oblicz metryki dla każdej instancji i znajdź ich średnią (onlymeanful for multilabel classification).
sample_weightarray-like of shape (n_próbek,), default=None
Wagi próbek.
zero_division „warn”, {0.0, 1.0}, default=”warn”
Ustawia wartość do zwrócenia, gdy istnieje podział zerowy, tj. gdy nie ma wartości ujemnych w przewidywaniach i etykietach. Jeśli ustawione na „warn”, działa to jak 0, ale ostrzeżenie jest również podnoszone.
Zwraca scorefloat (jeśli średnia nie jest None) lub tablicę float, shape =
Zobacz także
accuracy_score
, f_score
, multilabel_confusion_matrix
Uwagi
jaccard_score
może być słabą metryką, jeśli nie ma wartości ujemnych dla niektórych próbek lub klas. Jaccard jest niezdefiniowany, jeśli nie ma prawdziwych lub przewidywanych etykiet, a nasza implementacja zwróci wynik 0 z ostrzeżeniem.
1
Wikipedia wpis dla indeksu Jaccard.
Przykłady
>>> import numpy as np>>> from sklearn.metrics import jaccard_score>>> y_true = np.array(,... ])>>> y_pred = np.array(,... ])
W przypadku binarnym:
>>> jaccard_score(y_true, y_pred)0.6666...
W przypadku wieloetykietowym:
>>> 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()
W przypadku wieloklasowym:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()
Przykłady z użyciem sklearn.metrics.jaccard_scoreś
.