聚类有效性检验(Hubert'Γ )

2024-04-30 18:38
文章标签 检验 聚类 有效性 hubert

本文主要是介绍聚类有效性检验(Hubert'Γ ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题的提出

假设现在有N个样本需要聚类,根据某个聚类算法我们把这N个样本聚为K个簇,现在问题是怎么确定现在的聚类结果是有意义的,而不是仅仅通过随机得到的。下面我们将构造Hubert’Γ 统计量,通过假设检验的方法来解决这一问题。以下内容大部分出至Jain和Dubes的聚类教程《Algorithms for Clustering Data》。部分理解可能有误,欢迎指出错误。

所需用到的定义

在具体论述之前,我先直接给定义,具体说明放在后面。
先定义两个N*N大小的矩阵X和Y。
X(ij) 表示样本i和样本j的距离,是对称阵。
Y(ij) 的定义如下:

Y(i,j)={01if objects i and objects j have the same category label,if not.(1)

接下来根据上面2个矩阵构造Γ统计量
未标准化前:
Γ=i=1n1j=i+1nX(i,j)Y(i,j)(2)

标准化的Γ统计量:
Γ={(1/M)i=1n1j=i+1n[X(i,j)mx][Y(i,j)my]}/sxsy(3)

其中
M=n(n1)/2(4)

mx=(1/M)X(i,j)(5)

my=(1/M)Y(i,j)(6)

s2x=(1/M)X2(i,j)m2x(7)

s2y=(1/M)Y(2i,j)m2y(8)

所有的累加是在 {(i,j):1in1,ijn} 上进行的,M是矩阵右上角元素的个数(不包括对角线上的元素), mx,s2x 分别是矩阵X右上角元素的均值和标准差,同样的 my,s2y 分别是矩阵Y右上角元素的均值和标准差。

基于一个实例的解释

我们从一个具体的例子出发,假设我们要对4个样本 (x1.x2,x3,x4) 进行聚类,
现在根据某个聚类算法(比如k-means)得到如下的结果: x1 x3 被划分成一个簇,而 x2 x4 被划分被另一个簇。
我们的目的是想要知道这样的一个划分到达好不好,但聚类不同于有监督的学习,并没有一个标签来评判好坏。我们想要知道这个划分有多不寻常(unusualness),换句话说它与完全无意义的随机划分有多大的差别,因此我们需要构造前面定义过的Hubert’Γ 统计量来进行假设检验。

要搞清楚Γ统计量的意义,首先得清楚矩阵X和Y的意义。
原书中提到X和Y可以有多种定义,为方便理解,我只讲最常见的一种。

矩阵X

首先X是这4个样本两两之间的距离,比如说最常用的欧式距离,很明显X是一个对称阵,对角线上的元素为0(这个很好理解,自己和自己距离为0)。
假设在本例中

X=01.200.60.300.20.40.10(9)

矩阵Y

从上面描述的Y的定义可以看出,Y的元素和聚类的结果有关
Y(i,j)=0 表示样本 i j属于一个簇
Y(i,j)=1 表示样本 i j不属于一个簇
Y反应的聚类的情况。根据上面的例子Y矩阵如下:

Y=0100101010(10)

Γ统计量

在计算出矩阵X和Y后可由(2)式或(3)式得到统计量Γ的值,其实你会发现Γ的值就是矩阵X和Y右上角对应元素乘积的和,Γ越大意味着这两个矩阵相互之间更吻合。如果采用式(3)得到的Γ的区间为(-1,1)。
本例中根据式(2)得到: Γ=1.2+0.2+0.3+0.1=1.8

现在的问题是,我们想知道1.8是一个很不同寻常的值吗,如果这个聚类算法仅仅是随机进行聚类(瞎猜的),那么得到Γ=1.8的概率有多大。

现在要做的就是改变式(10)的横轴(和纵轴)的顺序,从而得到不同的Γ值
要知道式(10)是按排列 (x1.x2,x3,x4) 得到的,4个样本的排列数为4!=24
例如当排列为 (x2,x4,x1,x3) 时:

Y=0001101100(11)

Γ(2,4,1,3) = 0.6+0.2+0.3+0.4=1.5

24种排列的Γ的值的分布如下表:

Γ的值1.51.82.3
频数888

在知道了Γ的具体分布之后,就可以进行假设检验了
原假设H0:算法得到的Γ值只是Y随机排列的结果
我们发现Γ=1.8的概率为1/3, 也就是说瞎猜也有1/3的概率得到1.8的值,拒绝原假设的把握只有2/3,因此我们有理由任认为这个聚类算法其实没有任何意义。

当样本个数N取很大的值时该怎么办?

当N=4的时候,排列数为24,我们还可以算出每个Γ的值。但随着N的增长,其排列数呈指数增长, 8!=40320 ,N取12是时,其排列数超过了4亿。显然不可能计算出每种可能的Γ值,因此我们需要近似和估计统计量Γ的分布。

一种方法是对Γ的值进行随机抽样,比如抽取100个不同排列下的Γ值,先设置好不同的区间,统计落入不同区间的Γ的个数,然后画出直方图,这样就可以近似Γ的真实分布。当我们使用某种算法得到一个Γ值时,将其比较与其他100个点进行比较。

如果这个算法真的有效,那么统计量Γ的值应该足够大,比大多数随机得到的Γ[i]都要大,这样才能有足够把我拒绝原假设。

一种情况是如果随机模拟了100个Y,得到100个Γ[i],真正聚类得到的Γ只比42个Γ[i]大,那么拒绝原假设的把握只有0.42,因此有理由怀疑这个聚类没有任何意义。

另一种情况是真正聚类得到的Γ比所有的Γ[i]都要大很多,那么我们就有充分的理由拒绝原假设,认为聚类的结果是有意义的,至于有什么意义,还需要进一步研究。

http://blog.csdn.net/tyh70537/article/details/75451836
http://blog.csdn.net/tyh70537/article/details/75309042

这篇关于聚类有效性检验(Hubert'Γ )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/949620

相关文章

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering)

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering) Power Iteration Clustering (PIC) 是一种基于图的聚类算法,用于在大规模数据集上进行高效的社区检测。PIC 算法的核心思想是通过迭代图的幂运算来发现数据中的潜在簇。该算法适用于处理大规模图数据,特别是在社交网络分析、推荐系统和生物信息学等领域具有广泛应用。Spa

用Pytho解决分类问题_DBSCAN聚类算法模板

一:DBSCAN聚类算法的介绍 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,DBSCAN算法的核心思想是将具有足够高密度的区域划分为簇,并能够在具有噪声的空间数据库中发现任意形状的簇。 DBSCAN算法的主要特点包括: 1. 基于密度的聚类:DBSCAN算法通过识别被低密

2024年高教社杯数学建模国赛最后一步——结果检验-事关最终奖项

2024年国赛已经来到了最后一天,有必要去给大家讲解一下,我们不需要过多的去关注模型的结果,因为模型的结果的分值设定项最多不到20分。但是如果大家真的非常关注的话,那有必要给大家讲解一下论文结果相关的问题。很多的论文,上至国赛优秀论文下至不获奖的论文并不是所有的论文都可以进行完整的复现求解,大部分数模论文都为存在一个灰色地带。         白色地带即认为所有的代码均可运行、公开

Spark2.x 入门: KMeans 聚类算法

一 KMeans简介 KMeans 是一个迭代求解的聚类算法,其属于 划分(Partitioning) 型的聚类方法,即首先创建K个划分,然后迭代地将样本从一个划分转移到另一个划分来改善最终聚类的质量。 ML包下的KMeans方法位于org.apache.spark.ml.clustering包下,其过程大致如下: 1.根据给定的k值,选取k个样本点作为初始划分中心;2.计算所有样本点到每

医院检验系统LIS源码,LIS系统的定义、功能结构以及样本管理的操作流程

本文将对医院检验系统LIS进行介绍,包括LIS系统的定义、功能结构以及样本管理的操作流程方面。 LIS系统定义 LIS系统(Laboratory Information System)是一种专门为临床检验实验室开发的信息管理系统,其主要功能包括实验室信息管理、样本管理、检验结果管理、质量控制管理、数据分析等。其主要作用是管理医院实验室的各项业务,包括样本采集、检验、结果录入和报告生成等。Li

【ML--13】聚类--层次聚类

一、基本概念 层次聚类不需要指定聚类的数目,首先它是将数据中的每个实例看作一个类,然后将最相似的两个类合并,该过程迭代计算只到剩下一个类为止,类由两个子类构成,每个子类又由更小的两个子类构成。 层次聚类方法对给定的数据集进行层次的分解,直到某种条件满足或者达到最大迭代次数。具体又可分为: 凝聚的层次聚类(AGNES算法):一种自底向上的策略,首先将每个对象作为一个簇,然后合并这些原子簇为越来

第L8周:机器学习|K-means聚类算法

本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 | 接辅导、项目定制 🚀 文章来源:K同学的学习圈子深度学习 聚类算法的定义: 聚类就是将一个庞杂数据集中具有相似特征的数据自动归类到一起,称为一个簇,簇内的对象越相似,聚类的效果越好。“相似”这一概念,是利用距离标准来衡量的,我们通过计算对象与对象之间的距离远近来判断它们是否属于同一类别,即是否是同一个簇。 聚类是

Springboot中基于X509完成SSL检验的原理与实践

前言 各位对HTTPS不陌生吧?几乎涉及安全的领域,均要求通过HTTPS协议进行数据传输。而在传输过程中,又涉及到了SSL证书的使用。既然提到了SSL证书,那咱们先了解了解什么是SSL证书: SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layerSSL,安全套接层)安全协议是由Netscape Communication公司设计开发。该安

自然语言处理系列五十三》文本聚类算法》文本聚类介绍及相关算法

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列五十三文本聚类算法》文本聚类介绍及相关算法K-means文本聚类算法原理 总结 自然语言处理系列五十三 文本聚类算法》文本聚类介绍及相关算法 分类和聚类都是文本挖掘中常使用的方法,他们的目的都是将相