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