在写论文做数据测试时有用到一个nmi(normalized mutual information)评价聚类的一种方法,不是很清楚,然后上网找了一下资料。

首先在理解nmi前,先说说mutual information这个东西。
我们先举个例子:

比如说,标准结果是大圆里面的叉叉圈圈点点,上图呢是我们算法聚类出来的结果,那么如何来看我们算法的聚类效果呢,如何计算呢?
我们把上图中的图形用字母来表示出来,集合A是标准的聚类结果,集合B是我们算法的聚类结果,如下:
A:{(aaaaaa),(bbbbbb),(ccccc)}
B:{(aaaaab),(abbbbc),(accca)}
可以按照下列公式来计算:
I(X,Y)=∑y∈Y∑x∈Xp(x,y)logp(x,y)p(x)p(y)I(X,Y)=\sum_{y\in Y}\sum_{x\in X} p(x,y)log\frac{p(x,y)}{p(x)p(y)}I(X,Y)=∑y∈Y​∑x∈X​p(x,y)logp(x)p(y)p(x,y)​
分子 p(x,y)p(x,y)p(x,y)是xxx,yyy的联合分布概率
p(1,1)=517p(1,2)=117p(1,3)=0p(1,1)=\frac{5}{17}\quad p(1,2)=\frac{1}{17}\quad p(1,3)=0p(1,1)=175​p(1,2)=171​p(1,3)=0
p(2,1)=117p(2,2)=417p(2,3)=117p(2,1)=\frac{1}{17}\quad p(2,2)=\frac{4}{17}\quad p(2,3)=\frac{1}{17}p(2,1)=171​p(2,2)=174​p(2,3)=171​
p(3,1)=217p(3,2)=0p(3,3,)=317p(3,1)=\frac{2}{17}\quad p(3,2)=0\quad p(3,3,)=\frac{3}{17}p(3,1)=172​p(3,2)=0p(3,3,)=173​
p(x)是标准集合中字母占比 p(y)是我们算法所得聚类集合中字母的占比。p(x,y)中我们可以把x看作是聚类的序号,把y看作是聚类中叉叉点点圈圈的标记数。也就是对于p(x,y)我们还考虑了叉叉点点圈圈在某一个范围中(某个聚类)占了总数的比例,所以如果x=y,p(x)也不一定等一p(y),因为x和y两个参数的属性是不一样的。
p(x):p(x):p(x): p(1)=617p(2)=617p(3)=517p(1)=\frac{6}{17}\quad p(2)=\frac{6}{17}\quad p(3)=\frac{5}{17}p(1)=176​p(2)=176​p(3)=175​
p(y):p(y):p(y): p(1)=817p(2)=517p(3)=417p(1)=\frac{8}{17}\quad p(2)=\frac{5}{17}\quad p(3)=\frac{4}{17}p(1)=178​p(2)=175​p(3)=174​
这样就可算出MI(mutual information)的值了

nmi(normalized mutual information)公式如下:

∗∗U(X,Y)=2I(X,Y)H(X)+H(Y)∗∗**U(X,Y)=2\frac{I(X,Y)}{H(X)+H(Y)}**∗∗U(X,Y)=2H(X)+H(Y)I(X,Y)​∗∗
其目的是为了让MI的值调整到0到1之间,H(X),H(Y)H(X),H(Y)H(X),H(Y)分别为X,YX,YX,Y的熵:

H(X)=∑ii=np(xi)I(xi)=∑ii=nlogb1p(xi)=−∑ii=np(xi)logbp(xi)H(X)=\sum_i^{i=n} p(x_i)I(x_i)=\sum_i^{i=n}log_b\frac{1}{p(x_i)}=-\sum_i^{i=n}p(x_i)log_bp(x_i)H(X)=∑ii=n​p(xi​)I(xi​)=∑ii=n​logb​p(xi​)1​=−∑ii=n​p(xi​)logb​p(xi​)(b=2b=2b=2)

还有一种理解方法,
NMI(A,B)=2I(A,B)H(A)+H(B)2\frac{I(A,B)}{H(A)+H(B)}2H(A)+H(B)I(A,B)​,而I(A,B)I(A,B)I(A,B)是A,B两向量的MI,H(A)是A的信息熵。

I(A,B)=H(A)−H(A∣B)=H(B)−H(B∣A)I(A,B)=H(A)-H(A|B)=H(B)-H(B|A)I(A,B)=H(A)−H(A∣B)=H(B)−H(B∣A);直觉上,如果已知了B的情况,A的信息熵相对于H(A|B)相对于H(A)就要小一点,因为不确定因素变小了嘛。即B能提供给A有用的信息,越有用越相近。

I(A,B)=H(A)+H(B)−H(A,B)⩾0I(A,B)=H(A)+H(B)-H(A,B)\geqslant 0I(A,B)=H(A)+H(B)−H(A,B)⩾0,而且当A=B时,H(A,B)=0,I(A,B)最大。此时

NMIA,B)=2I(A,B)H(A)+H(B)=2H(A)2H(A)=1NMIA,B)=2\frac{I(A,B)}{H(A)+H(B)}=2\frac{H(A)}{2H(A)}=1NMIA,B)=2H(A)+H(B)I(A,B)​=22H(A)H(A)​=1,故NMI∈[0,1]NMI\in[0,1]NMI∈[0,1]

参考:https://nlp.stanford.edu/IR-book/html/htmledition/evaluation-of-clustering-1.html

Normalized Mutual information相关推荐

  1. mutual information matlab,Mutual information and Normalized Mutual information 互信息和标准化互信息...

    实验室最近用到nmi( Normalized Mutual information )评价聚类效果,在网上找了一下这个算法的实现,发现满意的不多. 浙江大学蔡登教授有一个,http://www.zju ...

  2. NMI(Normalized Mutual Information)

    NMI(Normalized Mutual Information) NMI(Normalized Mutual Information),归一化互信息.常用在聚类中,度量两个聚类结果的相近程度(通常 ...

  3. 聚类算法评价指标——Normalized Mutual Information, NMI指数

    目录 NMI 是一种常见的聚类有效性外部评价指标,从信息论的角度评估了两个聚类结果的相似性 . 设实验结果为 X,真实结果为 Y,则其计算式如下: 其中,I(X,Y)I (X,Y)I(X,Y)表示 X ...

  4. 特征选择方法详解Part2-卡方检验、互信息(Mutual Information)

    Content 1. 单变量分析 1.1 卡方检验 1.1.1 原理 1.1.2 使用示例 1.2 互信息(Mutual Information) 1.2.1 原理 1.2.1.1 互信息(Mutua ...

  5. Mutual Information

    今天挺paper reading的时候,听到了最大化互信息,还不清楚互信息是个什么东东,google了一下,从 http://en.wikipedia.org/wiki/Mutual_informat ...

  6. 机器学习特征筛选:互信息法(mutual information)

    机器学习特征筛选:互信息法(mutual information) 互信息法多为分类问题的分类变量的筛选方法 经典的互信息也是评价定性自变量对定性因变量的相关性的,为了处理定量数据,最大信息系数法被提 ...

  7. Feature Selection Based on Mutual Information:Criteria of Max-Dependency, Max-Relevance,and Min-Redu

    Feature Selection Based on Mutual Information:Criteria of Max-Dependency, Max-Relevance,and Min-Redu ...

  8. 双目立体匹配经典算法之Semi-Global Matching(SGM)概述:匹配代价计算之互信息(Mutual Information,MI)...

      半全局立体匹配算法Semi-Global Matching,SGM由学者Hirschmüller在2005年所提出1,提出的背景是一方面高效率的局部算法由于所基于的局部窗口视差相同的假设在很多情况 ...

  9. Mutual Information Neural Estimation梳理

    Mutual Information Neural Estimation 原文 参考:https://ruihongqiu.github.io/posts/2020/07/mine/ 背景 互信息可以 ...

最新文章

  1. 混合密度网络(MDN)进行多元回归详解和代码示例
  2. 2019年AI实力对决:美国领跑,中国追赶,欧盟弱势
  3. CM5.11与CDH5.11安装使用说明
  4. 石油化工静设备计算机辅助设计桌面系统,PV Desktop 石油化工静设备计算机辅助设计桌面系统简介...
  5. jax-rs jax-ws_通过JAX-WS Provider在Web服务中利用MOXy
  6. ai电磁组属于什么组_RPA+AI 创新案例挑战赛 2020 【专业组】amp;【校园组】优胜名单来也!...
  7. 微信支付带动交易超720万元 核销首日武汉人开启“全城用券”模式
  8. git学习(二):git config命令
  9. easyui form表单提交标准格式
  10. 字符串转换为小数(如String a=“123“),转换之后为123.0
  11. python pip 删除所有包
  12. 网络蜘蛛及搜索引擎基本原理
  13. 为什么要使用McAfee Endpoint Security?
  14. 轻松处理PHP开发中微信emoji表情mysql存储的问题
  15. 进程的守护神 - daemontools(进程监控)
  16. 广告违规词、敏感词在线检测
  17. linux ssh motd 颜色,ubuntu ssh登录的时候motd被打印了两次
  18. 面试|详细分析ScheduledThreadPoolExecutor(周期性线程池)的原理
  19. 蓝牙BLE方案|伦茨科技-智能直播补光灯方案
  20. 学习豆瓣电台总结(一)

热门文章

  1. android 7双排设置菜单,联想拯救者电竞手机优化横屏UI 设置菜单呈左右双排显示...
  2. 无迹卡尔曼滤波器详解
  3. html涟漪效果,涟漪效果.html
  4. OpenGL光照教程之 光照贴图
  5. java生成条码_Java生成商品条形码
  6. 综述:人工智能、数据科学、机器学习
  7. STM32f1之L298N电机驱动+PWM调速(附主代码)
  8. 51单片机PWM调速风扇转速显示转速设置
  9. 教师心理压力测试软件,关注教师心理健康——教师版心理测评软件
  10. debian ELK6.2.2安装教程