Normalized Mutual information

article/2025/8/15 23:03:14

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

首先在理解nmi前,先说说mutual information这个东西。
我们先举个例子:
在这里插入图片描述
比如说,标准结果是大圆里面的叉叉圈圈点点,上图呢是我们算法聚类出来的结果,那么如何来看我们算法的聚类效果呢,如何计算呢?
我们把上图中的图形用字母来表示出来,集合A是标准的聚类结果,集合B是我们算法的聚类结果,如下:
A:{(aaaaaa),(bbbbbb),(ccccc)}
B:{(aaaaab),(abbbbc),(accca)}
可以按照下列公式来计算:
I ( X , Y ) = ∑ y ∈ Y ∑ x ∈ X p ( x , y ) l o g p ( 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)=yYxXp(x,y)logp(x)p(y)p(x,y)
分子 p ( x , y ) p(x,y) p(x,y) x x x, y y y的联合分布概率
p ( 1 , 1 ) = 5 17 p ( 1 , 2 ) = 1 17 p ( 1 , 3 ) = 0 p(1,1)=\frac{5}{17}\quad p(1,2)=\frac{1}{17}\quad p(1,3)=0 p(1,1)=175p(1,2)=171p(1,3)=0
p ( 2 , 1 ) = 1 17 p ( 2 , 2 ) = 4 17 p ( 2 , 3 ) = 1 17 p(2,1)=\frac{1}{17}\quad p(2,2)=\frac{4}{17}\quad p(2,3)=\frac{1}{17} p(2,1)=171p(2,2)=174p(2,3)=171
p ( 3 , 1 ) = 2 17 p ( 3 , 2 ) = 0 p ( 3 , 3 , ) = 3 17 p(3,1)=\frac{2}{17}\quad p(3,2)=0\quad p(3,3,)=\frac{3}{17} p(3,1)=172p(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 ) = 6 17 p ( 2 ) = 6 17 p ( 3 ) = 5 17 p(1)=\frac{6}{17}\quad p(2)=\frac{6}{17}\quad p(3)=\frac{5}{17} p(1)=176p(2)=176p(3)=175
p ( y ) : p(y): p(y): p ( 1 ) = 8 17 p ( 2 ) = 5 17 p ( 3 ) = 4 17 p(1)=\frac{8}{17}\quad p(2)=\frac{5}{17}\quad p(3)=\frac{4}{17} p(1)=178p(2)=175p(3)=174
这样就可算出MI(mutual information)的值了

nmi(normalized mutual information)公式如下:

∗ ∗ U ( X , Y ) = 2 I ( 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 , Y X,Y X,Y的熵:

H ( X ) = ∑ i i = n p ( x i ) I ( x i ) = ∑ i i = n l o g b 1 p ( x i ) = − ∑ i i = n p ( x i ) l o g b p ( x i ) 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=np(xi)I(xi)=ii=nlogbp(xi)1=ii=np(xi)logbp(xi) b = 2 b=2 b=2

还有一种理解方法,
NMI(A,B)= 2 I ( 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(AB)=H(B)H(BA);直觉上,如果已知了B的情况,A的信息熵相对于H(A|B)相对于H(A)就要小一点,因为不确定因素变小了嘛。即B能提供给A有用的信息,越有用越相近。

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

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

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


http://chatgpt.dhexx.cn/article/CPKaAShs.shtml

相关文章

Cesium 定位到图层(ImageryLayer)报错 DeveloperError: normalized result is not a number

Cesium 定位到图层(ImageryLayer)报错 DeveloperError: normalized result is not a number 错误原因调试定位问题过程问题解决总结 2023年4月19日更新—搞了一个 Cesium 镜像,欢迎使用:沙盒示例 和 API 在使用 Cesium 封装代码的…

normalize 函数

2. normalize 函数介绍 函数原型: void normalize(InputArray src,OutputArray dst, double alpha1, doublebeta0, int norm_typeNORM_L2, int dtype-1, InputArray masknoArray() ) 该函数归一化输入数组使它的范数或者数值范围在一定的范围内。 Parameters: src …

(六)Normalization

(六)Normalization why 从图中可以看出,当输入太小或者太大的时候,函数的取值随着输入的变化几乎为0。这样就会发生梯度离散的情况,因此我们很有必要把输入控制在一个小一点的区间内。所以我们通过normalization操作&…

【C++】Eigen中norm、normalize、normalized的区别

参考: https://blog.csdn.net/m0_56348460/article/details/117386857https://blog.csdn.net/huangjunsheng123/article/details/119274776?spm1001.2101.3001.6650.7&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7E…

理解各种 Normalization

引言 Batch Normalization(BN)似乎已经成为构建网络不可缺少的一部分,它是如此“熟悉”以至于我天天使用却不明白原理。对此,本文梳理了 BN 的意义,实现以及一系列变体:Layer Norm,Instance No…

Layer Normalization解析

原论文名称:Layer Normalization 原论文地址: https://arxiv.org/abs/1607.06450 之前有讲过Batch Normalization的原理,链接,今天来简单讲讲Layer Normalization。Layer Normalization是针对自然语言处理领域提出的,…

Eigen中norm、normalize、normalized的区别

Eigen中norm、normalize、normalized的区别 norm() 对于Vector&#xff0c;norm返回的是向量的二范数&#xff0c;即 例如&#xff1a; Vector2d vec(3.0,4.0); cout << vec.norm() << endl; //输出5 对于Matrix&#xff0c;norm返回的是矩阵的弗罗贝尼乌斯范数…

归一化函数 normalized()

1. 归一化定义与作用 归一化就是要把需要处理的数据经过处理后&#xff08;通过某种算法&#xff09;限制在你需要的一定范围内。 首先归一化是为了后面数据处理的方便&#xff0c;其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间…

手机锁屏后微信收款语音不播报?-by:nixs

荣耀10&#xff0c;之前用荣耀7x就没这毛病&#xff01; 我确认与设置无关&#xff0c;微信语音播报是开启状态&#xff0c;通知设置都是允许的&#xff0c;我更不会二到把手机关静音&#xff01; 反正就是黑屏待机时&#xff0c;没有任何声音&#xff0c;一但点亮屏幕就有语音…

App微信小程序测试流程及要点

1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间&#xff0c;一般测试时间为两三周&#xff08;即15个工作日&#xff09;&#xff0c;根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源…

微信小程序,分享如何封装一个全局支持暂停,拖动等各类操作的音视频等多媒体管理器

不知不觉埋头于业务已许久&#xff0c;距离上一篇分享应该很久很久以前&#xff0c;具体何时&#xff0c;已无从知晓。慢慢的开始觉得锅有点热&#xff0c;感觉呼吸有点困难&#xff0c;温水里面的青蛙趁着腿还没完全麻木的时候&#xff0c;也想着开始重拾旧梦&#xff0c;稍微…

html微信登录密码输入密码,不用输密码,只要8个数字就能登录你的微信

不知道大家有没有遇到过这样的问题&#xff0c;就是当我们换新手机之后&#xff0c;在登录微信的时候就需要密码了。 打开凤凰新闻&#xff0c;查看更多高清图片 可是有些人记性不好&#xff0c;经常忘记微信登录密码&#xff0c;这该怎么办呢&#xff1f;今天小Q来教大家一招可…

微信上隐藏着6个功能,实在是太厉害了,真令人相见恨晚

很多人都说微信不太好用,那是因为你还没有找到好用的功能,如果你只会聊天和付款那就太out了,今天才知道,微信上隐藏着6个功能实在是太厉害了。 一、无线极速传输 微信不仅方便了生活,在办公上也是一个小能手,无需数据线就能与电脑相互传输文件,找到文件传输助手,将文件…

基于微信小程序音乐播放器的设计与实现毕业设计源码271156

Springboot音乐播放小程序的设计与实现 摘 要 本文设计了一种基于微信小程序的音乐播放器&#xff0c;系统为人们提供了方便快捷、即用即搜的音乐搜索播放服务&#xff0c;包括音乐资讯、音乐库推荐、交流论坛、注册登录、最近播放列表功能等&#xff0c;用户不仅能够方便快捷地…

微信按钮翻译中英对照表

申明&#xff1a;发文方便自己查阅&#xff0c;当然如对看到的朋友有所帮助&#xff0c;也是乐事一件。 代码中需要调用微信&#xff0c;翻译连续翻车&#xff0c;比如朋友圈&#xff0c;做个记录方便查阅&#xff1a; /** * 微信 中英文对照 * 微信 wechat * 朋友圈…

微信更新了 版本8.0.30

这次新功能包括&#xff1a; 朋友圈扩展文字输入区域&#xff1a;发朋友圈或朋友圈评论时&#xff0c;编辑文案&#xff0c;文本区域会随文字数量而增大。长按订阅号可以取消关注&#xff1a;在订阅号列表中&#xff0c;此前长按封面只有悬浮功能&#xff0c;更新后现在加入了…

android微信消息无提醒,OPPO手机微信消息不提醒怎么办?(附多种解决方法)

微信来新消息不提醒&#xff0c;不能第一时间看到微信消息&#xff0c;一般是设置不到位。现在就可以通过以下几步来进行排除解决。 小编以R9手机为例&#xff0c;这就告诉你们相关设置哈&#xff0c;一起来学习吧~~ OPPO手机微信消息不提醒怎么办&#xff1f;(附多种解决方法)…

ipad如何与手机微信连接服务器地址,如何设置微信在手机和ipad同步 - 卡饭网

微信怎么设置空白头像和昵称?iPhone手机设置微信空白头像和昵称的方法介绍 微信怎么设置空白头像和昵称?iPhone手机设置微信空白头像和昵称的方法介绍 iPhone手机应该如何设置微信空白名字和头像?微信头像往往能反映出一个人的性格,让自己的微信头像和别人不一样,彰显出自己…

苹果微信密码服务器,苹果微信怎么记住密码的登录

满意答案 tanwandewo 2020.09.14 采纳率&#xff1a;48% 等级&#xff1a;6 已帮助&#xff1a;210人 在进行手机各类密码设置的时候&#xff0c;总是会有一种这辈子不会忘的错觉&#xff0c;于是怎么复杂怎么来&#xff0c;忘记密码就崴泥了&#xff0c;悔恨啊…… 是不是看…

微信能用声音作为密码来登录了,你的应用也可以

自从苹果在iPhone上普及了指纹解锁,以个人生理特征作为密码的生物识别已经成为了越来越流行的身份鉴别手段,冲击着使用多年的传统文字密码方式。 毕竟,在脑袋里记住密码,真的不如用你独一无二的身体特征直接作为密码那么方便。 就说我们每天都在用的微信,现在也赶上这个潮…