调整后的互信息得分#
- sklearn.metrics.adjusted_mutual_info_score(labels_true, labels_pred, *, average_method='arithmetic')[source]#
两个聚类之间的调整后的互信息。
调整互信息 (AMI) 是对互信息 (MI) 得分的调整,以考虑偶然性。它考虑到了这样一个事实:对于具有更多簇的两个聚类,MI 通常较高,而不管是否实际共享更多信息。对于两个聚类\(U\)和\(V\),AMI 计算如下:
AMI(U, V) = [MI(U, V) - E(MI(U, V))] / [avg(H(U), H(V)) - E(MI(U, V))]
此指标独立于标签的绝对值:类或簇标签值的排列不会以任何方式改变得分值。
此外,此指标是对称的:交换\(U\)(
label_true
) 和\(V\)(labels_pred
) 将返回相同的得分值。当不知道真实地面真值时,这对于衡量两种独立标签分配策略在同一数据集上的吻合程度非常有用。请注意,此函数的速度比其他指标(如调整兰德指数)慢一个数量级。
在用户指南中阅读更多信息。
- 参数:
- labels_true形状为 (n_samples,) 的整数型数组
数据的聚类,划分为不相交的子集,在上式中称为\(U\)。
- labels_pred形状为 (n_samples,) 的整数型数组
数据的聚类,划分为不相交的子集,在上式中称为\(V\)。
- average_method{'min','geometric','arithmetic','max'},默认为 'arithmetic'
如何计算分母中的归一化因子。
在 0.20 版本中添加。
0.22 版本中的更改:
average_method
的默认值已从 'max' 更改为 'arithmetic'。
- 返回:
- ami: 浮点数(上限为 1.0)
当两个分区完全相同(即完美匹配)时,AMI 返回值为 1。随机分区(独立标记)的预期 AMI 平均约为 0,因此可能为负值。该值以调整后的奈特为单位(基于自然对数)。
另请参见
调整后的 Rand 指数
调整兰德指数。
互信息得分
互信息(未针对偶然性进行调整)。
参考文献
[2]示例
完美的标签既是同质的又是完整的,因此得分是 1.0。
>>> from sklearn.metrics.cluster import adjusted_mutual_info_score >>> adjusted_mutual_info_score([0, 0, 1, 1], [0, 0, 1, 1]) ... 1.0 >>> adjusted_mutual_info_score([0, 0, 1, 1], [1, 1, 0, 0]) ... 1.0
如果类成员完全分散在不同的簇中,则分配完全不完整,因此 AMI 为零。
>>> adjusted_mutual_info_score([0, 0, 0, 0], [0, 1, 2, 3]) ... 0.0
图库示例#
在手写数字数据上进行 K 均值聚类的演示
聚类性能评估中的偶然性调整
DBSCAN 聚类算法的演示
亲和传播聚类算法的演示