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ův index neboli Jaccardův koeficient podobnosti, definovaný jako velikost průniku dělená velikostí sjednocení dvou sad štítků, se používá k porovnání sady predikovaných štítků pro vzorek s odpovídající sadou štítků v y_true
.
Další informace najdete v uživatelské příručce.
Parametry y_true1d pole podobné poli nebo pole indikátorů štítků / řídká matice
Základní pravdivé (správné) štítky.
y_pred1d array-like, nebo pole indikátorů štítků / řídká matice
Předpokládané štítky, jak je vrátil klasifikátor.
labelsarray-like of shape (n_classes,), default=None
Sada štítků, které se mají zahrnout, pokud average != 'binary'
, a jejich pořadí, pokud average is None
. Štítky přítomné v datech mohou býtvyloučeny, například pro výpočet průměru více tříd, který ignoruje většinově negativní třídu, zatímco štítky, které nejsou přítomny v datech, budou mít za následek 0 složek v makroprůměru. U víceznačkových cílů jsou štítky indexy sloupců. Ve výchozím nastavení jsou všechny štítky v y_true
ay_pred
použity v seřazeném pořadí.
pos_labelstr nebo int, výchozí=1
Třída, která se má vykazovat, pokud average='binary'
a data jsou binární.Pokud jsou data vícetřídní nebo víceznačková, bude to ignorováno;nastavení labels=
a average != 'binary'
bude vykazovatskóre pouze pro danou značku.
average{None, ‚micro‘, ‚macro‘, ‚samples‘, ‚weighted‘, ‚binary‘}, výchozí=’binary‘
Pokud None
, budou vrácena skóre pro každou třídu. V opačném případě určuje typ průměrování provedeného na datech:
'binary'
: 'micro'
:
Vypočítejte metriky globálně spočítáním celkového počtu pravdivě pozitivních,falešně negativních a falešně pozitivních výsledků.
'macro'
:
Vypočítejte metriky pro každou značku a zjistěte jejich nevážený průměr. To nezohledňuje nevyváženost štítků.
'weighted'
:
Vypočítejte metriky pro každý štítek a zjistěte jejich průměr vážený podle podpory (počet pravdivých případů pro každý štítek). Tím se změní ‚makro‘, aby se zohlednila nevyváženost štítků.
'samples'
:
Vypočítá metriky pro každou instanci a zjistí jejich průměr (má význam pouze pro klasifikaci více štítků).
sample_weightarray-like of shape (n_samples,), výchozí=None
Váhy vzorků.
zero_division „warn“, {0.0, 1.0}, výchozí=“warn“
Nastavuje hodnotu, která se má vrátit, když existuje nulové dělení, tj. když v predikcích a štítcích nejsou žádné záporné hodnoty. Pokud je nastaveno na „warn“, chová se to jako 0, ale je také vyvoláno varování.
Vrací skórefloat (pokud průměr není None) nebo pole floatů, tvar =
Viz také
accuracy_score
, f_score
, multilabel_confusion_matrix
Poznámky
jaccard_score
může být špatná metrika, pokud pro některé vzorky nebo třídy neexistují kladné hodnoty. Jaccard je nedefinovaný, pokud neexistují pravdivé nebo předpovídané značky, a naše implementace vrátí skóre 0 s varováním.
1
Heslo na Wikipedii pro Jaccardův index.
Příklady
>>> import numpy as np>>> from sklearn.metrics import jaccard_score>>> y_true = np.array(,... ])>>> y_pred = np.array(,... ])
V binárním případě:
>>> jaccard_score(y_true, y_pred)0.6666...
V případě více štítků:
>>> 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()
V případě více tříd:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()