当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn adjusted_rand_score用法及代码示例


本文简要介绍python语言中 sklearn.metrics.adjusted_rand_score 的用法。

用法:

sklearn.metrics.adjusted_rand_score(labels_true, labels_pred)

兰德 index 根据机会调整。

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

然后使用以下方案将原始 RI 分数 “adjusted for chance” 纳入 ARI 分数:

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

因此,确保调整后的 Rand index 具有接近 0.0 的随机标记值,而与集群和样本的数量无关,并且当集群相同(直至排列)时恰好为 1.0。

ARI 是一个对称度量:

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

在用户指南中阅读更多信息。

参数

labels_trueint 数组,形状 = [n_samples]

地面实况类标签用作参考

labels_pred形状类似数组 (n_samples,)

要评估的集群标签

返回

ARI浮点数

相似度得分介于 -1.0 和 1.0 之间。随机标签的 ARI 接近 0.0。 1.0 代表完美匹配。

参考

休伯特 1985

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

斯坦利2004

D. Steinley,Hubert-Arabie 调整后兰德 index 的属性,心理学方法 2004

https://en.wikipedia.org/wiki/Rand_index#Adjusted_Rand_index

例子

完全匹配的标签甚至有 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

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.metrics.adjusted_rand_score。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。