jaccard_score#
- sklearn.metrics.jaccard_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')[源代码]#
贾卡德相似性系数得分。
Jaccard指数 [1] ,或Jaccard相似系数,定义为交集的大小除以两个标签集的并集的大小,用于将样本的预测标签集与对应的标签集进行比较,
y_true
.期限外的支持:通过治疗来实现“二元”目标 multiclass 和 multilabel 数据作为二进制问题的集合,每个标签一个问题。为 binary 案例、设置
average='binary'
将返回Jaccard相似性系数pos_label
.如果average
不'binary'
,pos_label
被忽略,并计算两个类别的分数,然后求平均值或返回两者(当average=None
).同样对于 multiclass 和 multilabel 目标、所有人的分数labels
根据average
参数.使用labels
指定要计算分数的标签集。阅读更多的 User Guide .
- 参数:
- y_true1D类数组或标签指示符数组/稀疏矩阵
地面真相(正确)标签。
- y_pred1D类数组或标签指示符数组/稀疏矩阵
预测标签,由分类器返回。
- labels形状类似数组(n_classes,),默认=无
何时包含的标签集
average != 'binary'
,以及它们的顺序,如果average is None
.可以排除数据中存在的标签,例如在多类分类中排除“负类”。可以包括数据中未出现的标签,并将“分配”0个样本。对于多标签目标,标签是列索引。默认情况下,所有标签y_true
和y_pred
按排序顺序使用。- pos_labelint、float、bool或char,默认=1
如果需要报告的班级
average='binary'
并且数据是二进制的,否则该参数将被忽略。对于多类别或多标签目标,设置labels=[pos_label]
和average != 'binary'
仅报告一个标签的指标。- average“微观”,“宏观”,“样本”,“加权”, 'binary'}或无,默认值=' binary '
如果
None
,返回每个班级的成绩。否则,这将确定对数据执行的平均类型:'binary'
:仅报告由指定的类的结果
pos_label
.这仅适用于以下情况 (y_{true,pred}
)是二进制的。'micro'
:通过计算总真阳性、假阴性和假阳性来计算全球指标。
'macro'
:计算每个标签的指标,并找到其未加权平均值。 这没有考虑标签不平衡。
'weighted'
:计算每个标签的指标,并找到其平均值,并通过支持度(每个标签的真实实例数量)进行加权。这会更改“宏”以解决标签不平衡问题。
'samples'
:计算每个实例的指标,并找到其平均值(仅对多标签分类有意义)。
- sample_weight形状类似数组(n_samples,),默认=无
样本重量。
- zero_division“warn”,{0.0,1.0},默认=“warn”
设置当存在零除时(即当预测和标签中没有负值时)返回的值。如果设置为“警告”,则其行为类似于0,但也会引发警告。
Added in version 0.24.
- 返回:
- score形状的float或nd数组(n_unique_labels,),dype =np.float64
杰卡德的分数。当
average
不None
,返回单个纯量。
参见
accuracy_score
用于计算准确度分数的功能。
f1_score
用于计算F1分数的函数。
multilabel_confusion_matrix
计算混淆矩阵的功能 针对每个类别或样本。
注意到
jaccard_score
如果对于某些样本或类别没有阳性,则可能是较差的度量。如果没有true或predicted标签,则Jaccard是未定义的,我们的实现将返回0分并带有警告。引用
[1]Wikipedia entry for the Jaccard index <https://en.wikipedia.org/wiki/Jaccard_index>
_.示例
>>> import numpy as np >>> from sklearn.metrics import jaccard_score >>> y_true = np.array([[0, 1, 1], ... [1, 1, 0]]) >>> y_pred = np.array([[1, 1, 1], ... [1, 0, 0]])
In the binary case:
>>> jaccard_score(y_true[0], y_pred[0]) np.float64(0.6666...)
在2D比较情况下(例如图像相似性):
>>> jaccard_score(y_true, y_pred, average="micro") np.float64(0.6)
在多标签情况下:
>>> jaccard_score(y_true, y_pred, average='samples') np.float64(0.5833...) >>> jaccard_score(y_true, y_pred, average='macro') np.float64(0.6666...) >>> jaccard_score(y_true, y_pred, average=None) array([0.5, 0.5, 1. ])
在多类情况下:
>>> y_pred = [0, 2, 1, 2] >>> y_true = [0, 1, 2, 2] >>> jaccard_score(y_true, y_pred, average=None) array([1. , 0. , 0.33...])