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


Python sklearn adjusted_mutual_info_score用法及代码示例


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

用法:

sklearn.metrics.adjusted_mutual_info_score(labels_true, labels_pred, *, average_method='arithmetic')

两个聚类之间的调整互信息。

调整后的互信息 (AMI) 是对互信息 (MI) 分数的调整,以考虑机会。它解释了这样一个事实,即无论实际上是否有更多信息共享,对于具有大量集群的两个集群,MI 通常更高。对于两个集群 ,AMI 给出为:

AMI(U, V) = [MI(U, V) - E(MI(U, V))] / [avg(H(U), H(V)) - E(MI(U, V))]

该指标独立于标签的绝对值:类或集群标签值的排列不会以任何方式改变得分值。

此外,该指标是对称的:将 ( label_true ) 与 ( labels_pred ) 切换将返回相同的分数值。当不知道真实的基本事实时,这对于测量同一数据集上两个独立标签分配策略的一致性很有用。

请注意,此函数比其他指标(例如调整后的兰德 index )慢一个数量级。

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

参数

labels_trueint 数组,形状 = [n_samples]

将数据聚类为不相交的子集,在上述公式中称为

labels_predint 形状类似数组 (n_samples,)

将数据聚类为不相交的子集,在上述公式中称为

average_methodstr,默认='算术'

如何计算分母中的标准化因子。可能的选项有‘min’, ‘geometric’, ‘arithmetic’和‘max’。

返回

ami:浮点数(上限为 1.0)

当两个分区相同(即完全匹配)时,AMI 返回值 1。随机分区(独立标签)的预期 AMI 平均约为 0,因此可能为负数。该值以调整后的 nat 为单位(基于自然对数)。

参考

1

Vinh、Epps 和 Bailey,(2010 年)。聚类比较的信息论度量:变体、属性、归一化和机会校正,JMLR

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

如果类成员完全分散在不同的集群中,则分配完全是in-complete,因此 AMI 为空:

>>> adjusted_mutual_info_score([0, 0, 0, 0], [0, 1, 2, 3])
... 
0.0

相关用法


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