sklearn.metrics.
jaccard_score
(y_true, y_pred, *, labels=None, pos_label=1, average=’binary’, sample_weight=None, zero_division=’warn’)¶
Jaccard 類似係数スコア(Scopular Coefficient Score): Jaccardの類似性スコア。
Jaccard index、またはJaccard similarity coefficientは、2つのラベルセットのユニオンのサイズで割った交差点のサイズとして定義され、サンプルの予測ラベルのセットをy_true
の対応するラベルのセットと比較するために使用されます。
詳細はユーザーガイドを参照。
Parameters y_true1d array-like, or label indicator array / sparse matrix
Ground Truth (correct) labels.予測されるラベルの集合。
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
average != 'binary'
の場合は含めるべきラベルのセット,average is None
の場合はその順序を指定します. データ中に存在するラベルは、例えば負クラスを無視したマルチクラス平均を計算するために除外することができ、データ中に存在しないラベルはマクロ平均で0成分となる。 マルチラベルの対象では、ラベルは列のインデックスである。
pos_labelstr or int, default=1
average='binary'
でデータがバイナリの場合、報告するクラスを指定します。
average{None, ‘micro’, ‘macro’, ‘samples’, ‘weighted’, ‘binary’}, default=’binary’
None
の場合、各クラスのスコアが返されます。 それ以外の場合は、
'binary'
データに対して行われる平均化のタイプを決定する。
pos_label
で指定されたクラスについてのみ結果を報告する。これはターゲット(y_{true,pred}
)がバイナリの場合のみ適用される。
True Positives、False Negatives、False Positivesの合計をカウントして、グローバルにメトリクスを計算するようになりました。
各ラベルごとにメトリクスを計算し、その非加重平均を求める。 これはラベルの不均衡を考慮しません。
'weighted'
:
各ラベルのメトリクスを計算し、サポート(各ラベルの真のインスタンスの数)で重み付けした平均を求めます。 これにより、ラベルの不均衡を考慮した’マクロ’に変化します。
'samples'
: sample_weightarray-like of shape (n_samples,), default=None
サンプルの重み。
zero_division “warn”, {0.0, 1.0}, default=”warn”
0分割、つまり予測値とラベルに負値がないときに返す値を設定する。
戻り値 scorefloat (if average is not None) or array of floats, shape =
See also
accuracy_score
, f_score
, multilabel_confusion_matrix
Note
jaccard_score いくつかのサンプルまたはクラスで非正がある場合は悪いメトリックになることがあります。 Jaccard は、真のラベルや予測されるラベルがない場合は定義されず、私たちの実装は警告とともにスコア 0 を返します。
例
>>> import numpy as np>>> from sklearn.metrics import jaccard_score>>> y_true = np.array(,... ])>>> y_pred = np.array(,... ])
バイナリの場合:
>>> jaccard_score(y_true, y_pred)0.6666...
マルチラベルの場合:
マルチラベルの場合:
バイナリの例:
>>> 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()
multiclassの場合:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()