聚类算法的性能度量

news2025/2/4 10:44:59

聚类算法的性能度量

聚类算法就是根据数据中样本与样本之间的距离或相似度,将样本划分为若干组/类/簇,其划分的原则:簇内样本相似、簇间样本不相似,聚类的结果是产生一个簇的集合。

其划分方式主要分为两种,

  • 嵌套类型

image-20231210183802857

  • 非嵌套类型

image-20231210183706349

其中簇往往分为三种情况

  1. 基于中心的簇:簇内的点和其“中心”较为相近(或相似),和其他簇的“中心”较远,这样的一组样本形成的簇
  2. 基于邻接的簇:相比其他任何簇的点,每个点都至少和所属簇的某一个点更近
  3. 基于密度的簇:簇是由高密度的区域形成的,簇之间是一些低密度的区域

簇的相似性与距离度量

若采用距离为度量

闵可夫斯基距离: d i s t ( x i , x j ) = ( ∑ d = 1 D ∣ x i , d − x j , d ∣ p ) 1 / p dist(x^i,x^j)=\left(\sum_{d=1}^D|x_{i,d}-x_{j,d}|^p\right)^{1/p} dist(xi,xj)=(d=1Dxi,dxj,dp)1/p
p = 2 p=2 p=2时,为欧氏距离 : d i s t ( x i , x j ) = ∑ d = 1 D ( x i , d − x j , d ) 2 :dist(x^i,x^j)=\sqrt{\sum_{d=1}^D\left(x_{i,d}-x_{j,d}\right)^2} :dist(xi,xj)=d=1D(xi,dxj,d)2
p = 1 p=1 p=1时,为曼哈顿距离: d i s t ( x i , x j ) = ∑ d = 1 D ∣ x i , d − x j , d ∣ dist(x^i,x^j)=\sum_{d=1}^D\left|x_{i,d}-x_{j,d}\right| dist(xi,xj)=d=1Dxi,dxj,d

这类距离函数对特征的旋转和平移变换不敏感,对数值尺度敏感

若采用余弦相似度量

两变量 x i , x j x^i,x^j xi,xj,看作D维空间的两个向量,这两个向量间的夹角余弦可用下式进行计算
s ( x i , x j ) = ∑ d = 1 D x i , d x j , d ∑ d = 1 D x i , d 2 ∑ d = 1 D x j , d 2 = ( x i ) T x j ∥ x i ∥ ∥ x j ∥ s(x^i,x^j)=\frac{\sum_{d=1}^Dx_{i,d}x_{j,d}}{\sqrt{\sum_{d=1}^Dx_{i,d}^2}\sqrt{\sum_{d=1}^Dx_{j,d}^2}}=\frac{(x^i)^Tx^j}{\|x^i\|\|x^j\|} s(xi,xj)=d=1Dxi,d2 d=1Dxj,d2 d=1Dxi,dxj,d=xi∥∥xj(xi)Txj
若采用相关系数
r ( x i , x j ) = c o v ( x i , x j ) σ x i σ x j = E [ ( x i − μ i ) ( x j − μ j ) ] σ x i σ x j = ∑ d = 1 D ( x i , d − μ i , d ) ( x j , d − μ j , d ) ∑ d = 1 D ( x i , d − μ i , d ) 2 ∑ d = 1 D ( x j , d − μ j , d ) 2 \begin{gathered} r(x^i,x^j)=\frac{cov(x^i,x^j)}{\sigma_{x_i}\sigma_{x_j}}=\frac{\mathbb{E}[(x^i-\mu^i)(x^j-\mu^j)]}{\sigma_{x_i}\sigma_{x_j}} \\ \begin{aligned}=\frac{\sum_{d=1}^D(x_{i,d}-\mu_{i,d})(x_{j,d}-\mu_{j,d})}{\sqrt{\sum_{d=1}^D\left(x_{i,d}-\mu_{i,d}\right)^2\sum_{d=1}^D\left(x_{j,d}-\mu_{j,d}\right)^2}}\end{aligned} \end{gathered} r(xi,xj)=σxiσxjcov(xi,xj)=σxiσxjE[(xiμi)(xjμj)]=d=1D(xi,dμi,d)2d=1D(xj,dμj,d)2 d=1D(xi,dμi,d)(xj,dμj,d)
当数据采用中心化处理后 μ i = μ j = 0 \mu_i=\mu_j=0 μi=μj=0,相关系数等于余弦相似度

对聚类算法的性能评价指标

参考模型

设存在数据集 D = { x 1 , x 2 , . . . x N } D=\{x^1,x^2,...x^N\} D={x1,x2,...xN},聚类结果 : C = { C 1 , C 2 , . . . C K } :C=\{\mathcal{C}_1,\mathcal{C}_2,...\mathcal{C}_K\} :C={C1,C2,...CK},其中 C k \mathcal{C}_k Ck表示属于类别 k k k的样本的集合,其中参考模型的分类结果为 C ∗ = { C 1 ∗ , . . . , C K ∗ } \mathcal{C}^*=\{\mathcal{C}_1^*,...,\mathcal{C}_K^*\} C={C1,...,CK}, λ \lambda λ λ ∗ \lambda^* λ 分别为 c c c c ∗ c^* c 的标记向量

其中聚类结果有4种情况
a = { ( x i , x j ) ∣ x i , x j ∈ C k ; x i , x j ∈ C l ∗ } 在两种聚类结果中,两个样本的所属的簇相同 d = { ( x i , x j ) ∣ x i ∈ C k 1 , x j ∈ C k 2 ;   x i ∈ C l 1 ∗ , x j ∈ C l 2 ∗ } 在两种聚类结果中,两个样本的所属的簇不同 b = { ( x i , x j ) ∣ x i , x j ∈ C k ;   x i ∈ C l 1 ∗ , x j ∈ C l 2 ∗ } c = { ( x i , x j ) ∣ x i ∈ C k 1 , x j ∈ C k 2 ;   x i , x j ∈ C l ∗ } \begin{aligned} a=&\begin{Bmatrix}(x^i,x^j)|x^i,x^j\in\mathcal{C}_k;&x^i,x^j\in\mathcal{C}_l^*\end{Bmatrix}\\ &\text{在两种聚类结果中,两个样本的所属的簇相同}\\ d=&\{(x^i,x^j)|x^i\in\mathcal{C}_{k1},x^j\in\mathcal{C}_{k2};\:x^i\in\mathcal{C}_{l1}^*,x^j\in\mathcal{C}_{l2}^*\}\\ &\text{在两种聚类结果中,两个样本的所属的簇不同}\\ b=&\big\{(x^i,x^j)|x^i,x^j\in\mathcal{C}_k;\:x^i\in C_{l1}^*,x^j\in\mathcal{C}_{l2}^*\big\}\\ c=&\big\{(x^i,x^j)|x^i\in\mathcal{C}_{k1},x^j\in\mathcal{C}_{k2};\:x^i,x^j\in\mathcal{C}_l^*\big\} \end{aligned} a=d=b=c={(xi,xj)xi,xjCk;xi,xjCl}在两种聚类结果中,两个样本的所属的簇相同{(xi,xj)xiCk1,xjCk2;xiCl1,xjCl2}在两种聚类结果中,两个样本的所属的簇不同{(xi,xj)xi,xjCk;xiCl1,xjCl2}{(xi,xj)xiCk1,xjCk2;xi,xjCl}
每个样本对 ( x i , x j ) ( i < j ) (x_i,x_j)(i<j) (xi,xj)(i<j) 仅能出现在一个集合中,因此有 a + b + c + d = m ( m − 1 ) / 2 a+b+c+d=m(m-1)/2 a+b+c+d=m(m1)/2 成立

image-20231210195914914

Jaccard 系数(Jaccard Coefficient, 简称 JC)
JC = a a + b + c \text{JC}=\frac a{a+b+c} JC=a+b+ca
FM 指数(Fowlkes and Mallows Index, 简称 FMI)
F M I = a a + b ⋅ a a + c \mathrm{FMI}=\sqrt{\frac a{a+b}\cdot\frac a{a+c}} FMI=a+baa+ca
Rand 指数(Rand Index, 简称 RI$) $
R I = 2 ( a + d ) N ( N − 1 ) \mathrm{RI}=\frac{2(a+d)}{N(N-1)} RI=N(N1)2(a+d)
上述性能度量的结果值均在 [0,1] 区间,值越大越好

无参考模型

其要求簇内相似度越大越好,簇间相似度越小越好

平均距离:
a v g ( C k ) = 1 ∣ C k ∣ ( ∣ C k ∣ − 1 ) ∑ x i , x j ∈ C k d i s t ( x i , x j ) avg(\mathcal{C}_k)=\frac1{|\mathcal{C}_k|(|\mathcal{C}_k|-1)}\sum_{x^i,x^j\in\mathcal{C}_k}dist(x^i,x^j) avg(Ck)=Ck(Ck1)1xi,xjCkdist(xi,xj)
最大距离:
d i a m ( C k ) = max ⁡ x i , x j ∈ C k d i s t ( x i , x j ) diam\left(\mathcal{C}_k\right)=\max_{x^i,x^j\in\mathcal{C}_k}dist(\boldsymbol{x}^i,\boldsymbol{x}^j) diam(Ck)=xi,xjCkmaxdist(xi,xj)
簇的半径:
d i a m ( C k ) = 1 ∣ C k ∣ ∑ x i ∈ C k ( d i s t ( x i , μ k ) ) 2 diam(\mathcal{C}_k)=\sqrt{\frac1{|C_k|}\sum_{x^i\in\mathcal{C}_k}(dist(x^i,\mu^k))^2} diam(Ck)=Ck1xiCk(dist(xi,μk))2
其中 μ k = 1 ∣ C k ∣ ∑ x i ∈ C k x i \mu^{k}=\frac{1}{|\mathcal{C}_{k}|}\sum_{x^{i}\in\mathcal{C}_{k}}\boldsymbol{x}^{i} μk=Ck1xiCkxi

最小距离:
d m i n ( C k , C l ) = min ⁡ x i ∈ C k , x j ∈ C l d i s t ( x i , x j ) d_{min}(\mathcal{C}_k,\mathcal{C}_l)=\min_{x^i\in\mathcal{C}_k,x^j\in\mathcal{C}_l}dist(x^i,x^j) dmin(Ck,Cl)=xiCk,xjClmindist(xi,xj)
类中心的距离:
d c e n ( C k , C l ) = d i s t ( μ k , μ l ) , d_{cen}(\mathcal{C}_k,\mathcal{C}_l)=dist(\mathbf{\mu}^k,\mathbf{\mu}^l), dcen(Ck,Cl)=dist(μk,μl),
DB指数(DBI)【簇内距离/簇间距离】:
D B I = 1 K ∑ k = 1 K max ⁡ k ≠ l arg ⁡ ( C k ) + a v g ( C l ) d c e n ( C k , C l ) DBI=\frac1K\sum_{k=1}^K\max_{k\neq l}\frac{\arg(\mathcal{C}_k)+avg(\mathcal{C}_l)}{d_{cen}(\mathcal{C}_k,\mathcal{C}_l)} DBI=K1k=1Kk=lmaxdcen(Ck,Cl)arg(Ck)+avg(Cl)
其中DBI越小越好,即簇越小越远

Dunn 指数(DI)【最小簇间距离/最大簇的半径】:
D I = min ⁡ 1 ≤ k < l ≤ K d m i n ( C k , C l ) max ⁡ 1 ≤ k ≤ K d i a m ( C k ) DI=\min_{1\leq k<l\leq K}\frac{d_{min}(\mathcal{C}_k,\mathcal{C}_l)}{\max_{1\leq k\leq K}diam(\mathcal{C}_k)} DI=1k<lKminmax1kKdiam(Ck)dmin(Ck,Cl)
其中DI越大越好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1300029.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前后端联调神器《OpenAPI-Codegen》

在后端开发完接口之后&#xff0c;前端如果再去写一遍接口来联调的话&#xff0c;会很浪费时间&#xff0c;这个时候使用OpenAPI接口文档来生成Axios接口代码的话&#xff0c;会大大提高我们的开发效率。 Axios引入 Axios是一个基于Promise的HTTP客户端&#xff0c;用于浏览器…

leetcode每日一题39

122.买卖股票的最佳时机II 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][j] j0 不持有股票 j1持有股票 i&#xff1a;第i天 dp[i][j]&#xff1a;第i天&#xff0c;持有状态为j时的最大现金确定递推公式 dp[i][0]max(dp[i-1][0], dp[i-1][1]prices[i]); 第…

Linux权限(用户角色+文件权限属性)

Linux权限 文章目录 Linux权限一.文件权限1.快速掌握修改权限的方法&#xff08;修改文件权限属性&#xff09;2.对比权限的有无&#xff0c;以及具体的体现3.修改权限的第二套方法&#xff08;修改用户角色&#xff09;4.文件类型&#xff08;Linux下一切皆文件&#xff09; 二…

编辑拒稿理由是重复率高

大家好&#xff0c;今天来聊聊编辑拒稿理由是重复率高&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 编辑拒稿理由是重复率高 当作者提交论文到学术期刊后&#xff0c;编辑会对论文进行审核小发猫写作…

Vue3: 给表格多个字段添加排序功能

问题 在Vue3项目中&#xff0c;使用element-plus的表格组件绘制表格后&#xff0c;需要令表格的多个字段可以进行选择排序&#xff08;选择升序或者降序&#xff09;但是排序功能好像有时候会出错&#xff0c;需要排序的字段多了之后&#xff0c;排序功能有时候会不起作用 解…

算法专题一:双指针

算法专题一&#xff1a;双指针 一&#xff1a;移动零1.GIF题目解析&#xff1a; 二&#xff1a;复写零2.GIF题目解析&#xff1a; 三&#xff1a;快乐数3.GIF题目解析&#xff1a; 四&#xff1a;装水最多容器&#xff1a;4.GIF题目解析&#xff1a; 五&#xff1a;有效三角形的…

知识产权服务企业网站建设效果如何

知识产权服务也有较高的市场需求度&#xff0c;尤其如今互联网深入到各个行业&#xff0c;无论个人还是企业都会以不同的方式经营&#xff0c;相应的为保障自身权益&#xff0c;注册商标、专利等自然不可少&#xff0c;而对普通小白来说&#xff0c;想要完成这些流程也是有些难…

NSSCTF-Crypto靶场练习--第11-20题wp

文章目录 [SWPUCTF 2021 新生赛]traditional[LitCTF 2023]梦想是红色的 (初级)[SWPUCTF 2021 新生赛]crypto2[羊城杯 2021]Bigrsa[LitCTF 2023]Hex&#xff1f;Hex&#xff01;(初级)[SWPU 2020]happy[AFCTF 2018]BASE[安洵杯 2019]JustBase[鹤城杯 2021]Crazy_Rsa_Tech[SWPUCT…

mybatisPlus框架

1、特性 无侵入 &#xff1a;只做增强不做改变&#xff0c;引入它不会对现有工程产生影响&#xff0c;如丝般顺滑 损耗小 &#xff1a;启动即会自动注入基本 CURD &#xff0c;性能基本无损耗&#xff0c;直接面向对象操作 强大的 CRUD 操作 &#xff1a;内置通用 Mapper 、…

Oracle(2-12)User-Managed Complete Recovery

文章目录 一、基础知识1、Media Recovery 介质恢复2、Recovery Steps 恢复步骤3、恢复4、Recovery in ARCHIVELOG 在ARCHIVELOG中恢复5、Complete Recovery完全恢复6、CR in ARCHIVELOG Mode 归档日志模式下的完全恢复7、Determine Files Need Recovery确定需要恢复的文件8、Ab…

JDK8新特性:Lambda表达式规则及用法,方法引用

目录 Lambda表达式是JDK8新增的一种语法格式 1.作用 2.用法规则&#xff1a; 3.方法引用 Lambda表达式是JDK8新增的一种语法格式 1.作用 简化匿名内部类的代码写法 Lambad用法前提&#xff1a;只能简化函数式接口&#xff08;一般加有Funcationallnterface&#xff09;&a…

2023年11月10日 Go生态洞察:十四年Go的成长之路

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

STL(八)(总结篇)

###以四道题来总结 题号:lanqiao OJ 3226 1.宝藏排序II ### 这道题主要考察sort,非常简单输出就是升序不需要自定义比较函数 #include<bits/stdc.h> using namespace std; const int N1e55; //这里用int就足够了不需要开long long int a[N]; int main(){ios::sync_with…

TCP的滑动窗口机制

网络的错误检测和补偿机制非常复杂。 一、等待超时时间&#xff08;返回ACK号的等待时间&#xff09; 当网络繁忙时会发生拥塞&#xff0c;ACK号的返回变慢&#xff0c;较短的等待时间会导致频繁的数据重传&#xff0c;导致本就拥塞的网络雪上加霜。如果等待时间过长&#xf…

查看mysql是否开启远程端口

这个命令&#xff1a; sudo netstat -tlnp | grep mysqld如果是 就说明只开启了本地的&#xff0c;要更改这个设置&#xff0c;你需要编辑 MySQL 的配置文件&#xff0c;并确保 bind-address 设置为 0.0.0.0。打开 MySQL 的配置文件&#xff08;通常是 /etc/mysql/mysql.conf…

二叉排序树的判断(二叉树的顺序存储):2022年408算法题

对于采用顺序存储方式保存的二叉树&#xff0c;根结点保存在SqBiTNode[0]中&#xff1b;当某结点保存SqBiTNode[i]中时&#xff0c;若有左孩子&#xff0c;则其值保存在SqBiTNode [2i1]中&#xff1b;若有右孩子&#xff0c;则其值保存在SqBiTNode[2i2]中&#xff1b;若有双亲结…

SD之lora训练

目录 为什么要训练自己的模型 SD模型微调方法 准备素材 1 确定要训练的LoRA类型 2 图片收集 3 图片预处理 4 图片标注 安装Koyha_ss 训练lora 1.准备参数和环境 2.启动训练 使用模型 1 拷贝训练过的lora模型 2 启动SD WebUI进行图像生成 为什么要训练自己的模型 …

来聊聊java8的数值流

简介 java8为我提供的简单快捷的数值流计算API&#xff0c;本文就基于几个常见的场景介绍一下数值流API的使用。 基础示例 我们以一个食物热量计算的功能展开演示&#xff0c;如下所示&#xff0c;可以看到Dish类它记录了每一个食物的名称、热量、类型等信息: public class…

百科词条可以删除吗?如何删除自己的百度百科?

近日&#xff0c;小马识途营销顾问接到不少客户删除自己百科词条的咨询&#xff0c;有不少人自己并没有去建立百科词条&#xff0c;但是网上已经有了&#xff0c;有的信息不正确&#xff0c;甚至有的信息是负能量的&#xff0c;对当事人自己造成一定的困扰&#xff0c;所以寻求…

【Proteus仿真】【51单片机】光照强度检测系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使共阴数码管&#xff0c;PCF8591 ADC模块、光敏传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;数码管显示光传感器采集光照强度值&#xff…