python计算互信息_标准化互信息NMI计算步骤及其Python实现

本文介绍了如何计算标准化互信息(NMI),用于衡量聚类结果与标准结果的相似度。通过Python代码展示了NMI的计算过程,包括互信息(MI)的计算和熵的计算,并提供了使用sklearn库的度量函数实现NMI的方法。
摘要由CSDN通过智能技术生成

Excellence is a continuous process and not an accident.

卓越是一个持续的过程而不是一个偶然事件。

标准化互信息NMI计算步骤及其Python实现标准化互信息NMI具体定义可以参考另一篇博客:

https://smj2284672469.github.io/2017/10/27/community-detection-measures/#more

本文介绍其计算步骤和代码实现

假设对于17个样本点(v1,v2,...,v17)进行聚类:

某一种算法得到聚类结果为:

A=[1 2 1 1 1 1 1 2 2 2 2 3 1 1 3 3 3]

标准的聚类结果为:

B=[1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3]

问题:需要度量算法结果与标准结果之间的相似度,如果结果

2185a

越相似NMI值应接近1;如果算法结果很差则NMI值接近0。

根据公式计算MI的值其中X=unique(A)=[1 2 3] , Y=unique(B)=[1 2 3]:

MI(X,Y)=∑i=1|X|∑j=1|Y|P(i,j)log(P(i,j)P(i)P′(j))

首先计算上式分子中联合概率分布P(i,j)=|Xi∩Yj|N

P(1,1)=5/17,P(1,2)=1/17,P(1,3)=2/17

P(2,1)=1/17,P(2,2)=4/17,P(2,3)=0

P(3,1)=0,P(3,2)=1/17,P(3,3)=3/17

再计算分母中概率函数P(i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值