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_true
与label_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