标准化互信息(normalized Mutual Information, NMI)用于度量聚类结果的相似程度,是community detection的重要指标之一,其取值范围在[0 1]之间,值越大表示聚类结果越相近,且对于[1, 1, 1, 2] 和 [2, 2, 2, 1]的结果判断为相同
其论文可参见 Effect of size heterogeneity on community identification in complex networks
举例说明:
对于6个点(v1, v2, …, v6),若聚成3个类
真实值为v1, v2, v3一个类,v4一个类,v5,v6一个类,则其结果可写为[1, 1, 1, 2, 3, 3] (相同的数字表示对应的id属于同一个类)
通过自己的聚类算法,得到v1, v4一个类,v2, v5一个类 v3, v6一个类,则结果为[1, 2, 3, 1, 2, 3]
也可查看 Mutual information and Normalized Mutual information 互信息和标准化互信息 查看相关解析
在python中,sklearn已集成了相关计算步骤,直接调用即可:

from sklearn import metrics
if __name__ == '__main__':
    A = [1, 1, 1, 2, 3, 3]
    B = [1, 2, 3, 1, 2, 3]
    result_NMI=metrics.normalized_mutual_info_score(A, B)
    print("result_NMI:",result_NMI)
result_NMI: 0.30192109848
                    标准化互信息(normalized Mutual Information, NMI)用于度量聚类结果的相似程度,是community detection的重要指标之一,其取值范围在[0 1]之间,值越大表示聚类结果越相近,且对于[1, 1, 1, 2] 和 [2, 2, 2, 1]的结果判断为相同其论文可参见Effect of size heterogeneity on community id...
				
聚类的评价指标NMI标准化互信息+python实现+sklearn调库概念引例公式信息熵相对熵(relative entropy)互信息*归一化互信息(NMI)代码pythonsklearn 标准化互信息(normalized Mutual Information, NMI)用于度量聚类结果的相似程度,是community detection的重要指标之一,其取值范围在[0 1]之间,值越大表示聚类结果越相近,且对于[1, 1, 1, 2] 和 [2, 2, 2, 1]的结果判断为相同 from sklearn import metrics from sklearn import metrics def NMI(A,B): #此为计算互信息的函数,还可以计算标准互信息 #样本点数 total = len(A) A_ids = set(A) B_ids = set(B) #互信息...
文本矩阵化,使用词袋模型,以TF-IDF特征值为权重。(可以使用Python中TfidfTransformer库) 互信息的原理。 使用第二步生成的特征矩阵,利用互信息进行特征筛选。 互信息是衡量两个随机变量的相关性,也就是一个随机变量中包含的关于另一个随机变量的信息量,所谓的随机变量,即随机试验结果的量的表示,可以简单理解为按照一个概率分...
介绍NMI是社区发现(community detection)在有标准ground-truth的情况下的重要衡量指标,基本可以比较客观地评价出一个社区划分与标准划分之间相比的准确度。NMI的值域是0到1,越高代表划分得越准。具体的原理和例子可以参考这篇博客:http://www.cnblogs.com/ziqiao/archive/2011/12/13/2286273.html 因为之前自己要用到
1、点互信息PMI 机器学习相关文献里面,经常会用到点互信息PMI(Pointwise Mutual Information)这个指标来衡量两个事物之间的相关性(比如两个 其原理很简单,公式如下: 在概率论中,我们知道,如果x跟y不相关,则p(x,y)=p(x)p(y)。二者相关性越大,则p(x, y)就相比于p(x)p(y)越大。用后面的式子可能更 好理解,在y出现的情
最近在研究关键词的提取算法,看到一篇关于关键词提取算法的总结,比较全面了,在这里分享给大家,希望能够帮助同学们~ 原文链接:https://blog.nowcoder.net/n/ac016f8256f54c4b8c8784e99bccf28a (ps:作者同意转发,如果想了解更多,请阅读全文) 一、关键词提取概述 二、TF-IDF关键词提取算法及实现 三、TextRank关键词提取算法实...
navicat 连接 mysql 出现Client does not support authentication protocol requested by server解决方案 118851 pytorch使用出现"RuntimeError: An attempt has been made to start a new process before the..." 解决方法 qq_41148615: 去掉num_workers会变慢吗 关于C++函数返回指针的情况 对不起,我只想做回自己: 懂了懂了,非常感谢表情包 标准化互信息的python实现(sklearn) Filter_tired: 代码只能计算两样本的标准化互信息,没有并行的条件下,怎么去实现样本聚类 pytorch使用出现"RuntimeError: An attempt has been made to start a new process before the..." 解决方法 向莱肯前进: 发生异常: KeyError C++ 多继承时内存布局及内存占用布局分析 此处应该是笔误,E的自身变量是ei