normalized_mutual_info_score#

sklearn.metrics.normalized_mutual_info_score(labels_true, labels_pred, *, average_method='arithmetic')[源代码]#

两个集群之间的标准化互信息。

标准化互信息(NMI)是互信息(MI)评分的标准化,以将结果缩放在0(无互信息)和1(完美相关性)之间。在这个函数中,互信息通过某种广义方法进行规范化 H(labels_true)H(labels_pred)) ,由 average_method .

这项措施没有根据偶然性进行调整。因此 adjusted_mutual_info_score 可能是首选。

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

该指标还具有对称性:切换 label_truelabel_pred 将返回相同的分数值。当真正的基本事实未知时,这对于测量同一数据集上两个独立标签分配策略的一致性很有用。

阅读更多的 User Guide .

参数:
labels_trueint数组状的形状(n_samples,)

将数据聚集到不相交的子集中。

labels_predint数组状的形状(n_samples,)

将数据聚集到不相交的子集中。

average_method' min ','算术',' max ',默认='算术'

如何计算分母中的归一化子。

Added in version 0.20.

在 0.22 版本发生变更: 的默认值 average_method 从“几何”变成“算术”。

返回:
nmi浮子

标准化nats的评分在0.0和1.0之间(基于自然log)。1.0代表完全完整的标签。

参见

v_measure_score

V-测量(具有算术平均值选项的NMI)。

adjusted_rand_score

调整后的兰德指数。

adjusted_mutual_info_score

调整后的相互信息(根据机会调整)。

示例

完美的标签既同质又完整,因此评分为1.0::

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

如果类成员在不同的集群中完全分离,则分配是完全不完整的,因此NMI为null::

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