adjusted_mutual_info_score#
- 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,) 的 int 类数组
将数据聚类为不相交的子集,在上述公式中称为 \(U\)。
- labels_pred形状为 (n_samples,) 的 int 类数组
将数据聚类为不相交的子集,在上述公式中称为 \(V\)。
- average_method{‘min’, ‘geometric’, ‘arithmetic’, ‘max’},默认值=’arithmetic’
如何计算分母中的归一化因子。
0.20 版本新增。
0.22 版本更改:
average_method
的默认值从 'max' 更改为 'arithmetic'。
- 返回:
- ami: 浮点数 (上限为 1.0)
当两个划分完全相同(即完美匹配)时,AMI 返回值为 1。随机划分(独立标记)的预期 AMI 平均约为 0,因此可能为负。该值以调整后的纳特(nats)为单位(基于自然对数)。
另请参阅
adjusted_rand_score
调整兰德指数。
mutual_info_score
互信息(未针对偶然性进行调整)。
参考文献
[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