adjusted_rand_score#

sklearn.metrics.adjusted_rand_score(labels_true, labels_pred)[源代码]#

兰德指数根据机会进行调整。

兰德指数通过考虑所有样本对并计数在预测和真实集群中相同或不同集群中分配的样本对来计算两个集群之间的相似性度量。

The raw RI score is then "adjusted for chance" into the ARI score using the following scheme:

ARI = (RI - Expected_RI) / (max(RI) - Expected_RI)

因此,确保调整后的兰德指数具有接近0.0的值,用于随机标记,与集群和样本的数量无关,并且当集群相同(直到排列)时,精确为1.0。对于特别不和谐的集群,调整后的兰德指数低于-0.5。

ARI是一个对称指标::

adjusted_rand_score(a, b) == adjusted_rand_score(b, a)

阅读更多的 User Guide .

参数:
labels_true形状类似数组(n_samples,),dype =int

用作参考的地面真相类标签。

labels_pred形状类似数组(n_samples,),dype =int

要评估的集群标签。

返回:
ARI浮子

相似性评分在-0.5至1.0之间。随机标签的ARI接近0.0。1.0代表完美匹配。

参见

adjusted_mutual_info_score

调整后的相互信息。

引用

[Hubert1985]

L.休伯特和P. Arabie,比较分区,《分类杂志》1985 https://link.springer.com/article/10.1007%2FBF01908075

[Steinley2004]

D.斯坦利,休伯特-阿拉比调整兰德指数的性质,心理方法2004

示例

完美匹配的标签评分为1偶数

>>> from sklearn.metrics.cluster import adjusted_rand_score
>>> adjusted_rand_score([0, 0, 1, 1], [0, 0, 1, 1])
1.0
>>> adjusted_rand_score([0, 0, 1, 1], [1, 1, 0, 0])
1.0

将所有类成员分配到相同集群的标签是完整的,但可能并不总是纯粹的,因此受到惩罚::

>>> adjusted_rand_score([0, 0, 1, 2], [0, 0, 1, 1])
0.57...

ARI是对称的,因此具有纯集群(成员来自相同类但存在不必要分裂)的标签将受到惩罚::

>>> adjusted_rand_score([0, 0, 1, 1], [0, 0, 1, 2])
0.57...

如果班级成员完全分散在不同的集群中,则作业完全不完整,因此ARI非常低::

>>> adjusted_rand_score([0, 0, 0, 0], [0, 1, 2, 3])
0.0

ARI可能会对特别不一致的标签取负值,这些标签比随机标签的预期值更糟糕::

>>> adjusted_rand_score([0, 0, 1, 1], [0, 1, 0, 1])
-0.5

看到 集群绩效评估中的机会调整 以获取更详细的示例。