5 聚类分析
- 格式:doc
- 大小:110.00 KB
- 文档页数:11
五种常用系统聚类分析方法及其比较胡雷芳一、系统聚类分析概述聚类分析是研究如何将对象按照多个方面的特征进行综合分类的一种统计方法[1]。
然而在以往的分类学中,人们主要靠经验和专业知识作定性分类处理,许多分类不可避免地带有主观性和任意性,不能揭示客观事物内在的本质差别和联系;或者人们只根据事物单方面的特征进行分类,这些分类虽然可以反映事物某些方面的区别,但却往往难以反映各类事物之间的综合差异。
聚类分析方法有效地解决了科学研究中多因素、多指标的分类问题[2]。
在目前的实际应用中,系统聚类法和K均值聚类法是聚类分析中最常用的两种方法。
其中,K均值聚类法虽计算速度快,但需要事先根据样本空间分布指定分类的数目,而当样本的变量数超过3个时,该方法的可行性就较差。
而系统聚类法(Hierarchicalclusteringmethods,也称层次聚类法)由于类与类之间的距离计算方法灵活多样,使其适应不同的要求。
该方法是目前实践中使用最多的。
这该方法的基本思想是:先将n个样本各自看成一类,并规定样本与样本之间的距离和类与类之间的距离。
开始时,因每个样本自成一类,类与类之间的距离与样本之间的距离是相同的。
然后,在所有的类中,选择距离最小的两个类合并成一个新类,并计算出所得新类和其它各类的距离;接着再将距离最近的两类合并,这样每次合并两类,直至将所有的样本都合并成一类为止。
这样一种连续并类的过程可用一种类似于树状结构的图形即聚类谱系图(俗称树状图)来表示,由聚类谱系图可清楚地看出全部样本的聚集过程,从而可做出对全部样本的分类[3]。
二、五种常用系统聚类分析方法系统聚类法在进行聚类的过程中,需要计算类与类之间的距离。
根据类与类之间的距离计算方法的不同,我们可以将系统聚类法分为单连接法、完全连接法、平均连接法、组平均连接法与离差平方和法等。
1.单连接法(Singlelinkage)单连接法又称最短距离法。
该方法首先将距离最近的样本归入一类,即合并的前两个样本是它们之间有最小距离和最大相似性;然后计算新类和单个样本间的距离作为单个样本和类中的样本间的最小距离,尚未合并的样本间的距离并未改变。
数据分析方法五种数据分析是指通过对已有数据的收集、整理、加工和统计等一系列过程,来获取其中的有用信息并进行理解和解释的过程。
在现代社会的各行各业中,数据分析被广泛应用于帮助决策、改善业务流程和优化资源配置等方面。
本文将介绍五种常用的数据分析方法,包括描述统计、推断统计、数据挖掘、机器学习和时间序列分析。
一、描述统计描述统计是数据分析中最基本的方法之一,其目的在于通过计算、整理和展示数据的基本统计特征,帮助我们对数据集进行初步的了解。
描述统计常用的指标有:均值、中位数、众数、标准差、方差、四分位数等。
常用的描述统计方法有:1. 均值均值是指所有数据的算术平均数,用于表示数据的集中趋势。
通过计算所有数据的总和再除以数据的个数,即可得到均值。
2. 中位数中位数是指将数据按照大小排列后,处于中间位置的数值。
如果数据有偶数个,则取中间两个数的均值作为中位数。
3. 众数众数是指数据集中出现次数最多的数值。
一个数据集可以有一个或多个众数。
4. 标准差标准差是衡量数据离散程度的指标。
标准差越大,表示数据的离散程度越大;标准差越小,表示数据的离散程度越小。
5. 方差方差是标准差的平方,用于衡量数据与均值差异的平方。
6. 四分位数四分位数将数据分为四个等份,分别是最小值、25%分位数、50%分位数(中位数)和75%分位数。
四分位数可以帮助我们了解数据的分布情况。
二、推断统计推断统计是通过对样本数据进行分析和推断,来对总体数据进行估计和假设检验的方法。
推断统计的目的在于通过对样本数据的分析,推断出总体数据的特征和关系。
常用的推断统计方法有:1. 抽样抽样是指从总体中随机选择一部分样本,然后对样本进行分析和推断。
通过合理和随机的抽样方法,可以保证样本具有代表性。
2. 参数估计参数估计是通过对样本数据进行分析,对总体数据的参数进行估计。
常用的参数估计方法有点估计和区间估计。
3. 假设检验假设检验是通过对样本数据进行统计推断,来验证某个关于总体的假设是否成立。
1聚类分析内涵1.1聚类分析定义聚类分析(Cluste.Analysis)是一组将研究对象分为相对同质的群组(clusters)的统计分析技术.也叫分类分析(classificatio.analysis)或数值分类(numerica.taxonomy), 它是研究(样品或指标)分类问题的一种多元统计方法, 所谓类, 通俗地说, 就是指相似元素的集合。
聚类分析有关变量类型:定类变量,定量(离散和连续)变量聚类分析的原则是同一类中的个体有较大的相似性, 不同类中的个体差异很大。
1.2聚类分析分类聚类分析的功能是建立一种分类方法, 它将一批样品或变量, 按照它们在性质上的亲疏、相似程度进行分类.聚类分析的内容十分丰富, 按其聚类的方法可分为以下几种:(1)系统聚类法: 开始每个对象自成一类, 然后每次将最相似的两类合并, 合并后重新计算新类与其他类的距离或相近性测度. 这一过程一直继续直到所有对象归为一类为止. 并类的过程可用一张谱系聚类图描述.(2)调优法(动态聚类法): 首先对n个对象初步分类, 然后根据分类的损失函数尽可能小的原则对其进行调整, 直到分类合理为止.(3)最优分割法(有序样品聚类法): 开始将所有样品看成一类, 然后根据某种最优准则将它们分割为二类、三类, 一直分割到所需的K类为止. 这种方法适用于有序样品的分类问题, 也称为有序样品的聚类法.(4)模糊聚类法: 利用模糊集理论来处理分类问题, 它对经济领域中具有模糊特征的两态数据或多态数据具有明显的分类效果.(5)图论聚类法: 利用图论中最小支撑树的概念来处理分类问题, 创造了独具风格的方法.(6)聚类预报法:利用聚类方法处理预报问题, 在多元统计分析中, 可用来作预报的方法很多, 如回归分析和判别分析. 但对一些异常数据, 如气象中的灾害性天气的预报, 使用回归分析或判别分析处理的效果都不好, 而聚类预报弥补了这一不足, 这是一个值得重视的方法。
聚类分析专题§引言俗话说,“物以类聚,人以群分”,在自然科学和社会科学等各领域中,存在着大量的分类问题。
分类学是人类认识世界的基础科学,在古老的分类学中,人们主要靠经验和专业知识进行定性的分类,很少利用数学工具进行定量的分类。
随着人类科学技术的发展,对分类的要求越来越高,以致有时仅凭经验和专业知识难以确切地进行分类,于是人们逐渐地把数学工具引用到了分类学中,这便形成了数值分类学这一学科,之后又将多元分析的技术引入到数值分类学,便又从数值分类学中分离出一个重要分支──聚类分析。
与多元分析的其它分析方法相比,聚类分析方法较为粗糙,理论上还不够完善,正处于发展阶段。
但是,由于该方法应用方便,分类效果较好,因此越来越为人们所重视。
这些年来聚类分析的方法发展较快,内容越来越丰富。
判别分析与聚类分析都是研究事物分类的基本方法,它们有着不同的分类目的,彼此之间既有区别又有联系。
各种判别分析方法都要求对类有事先的了解,通常是每一类都有一个样本,据此得出判别函数和规则,进而可对其它新的样品属于哪一类作出判断。
对类的事先了解和确定常常可以通过聚类分析得到。
聚类分析的目的是把分类对象按一定规则分成若干类,这些类不是事先给定的,而是根据数据的特征确定的。
在同一类里的这些对象在某种意义上倾向于彼此相似,而在不同类里的对象倾向于不相似。
聚类分析能够用来概括数据而不只是为了寻找“自然的”或“实在的”分类。
例如,在选拔少年运动员时,对少年的身体形态、身体素质、生理功能的各种指标进行测试,据此对少年进行分类,分在同一类里的少年这些指标较为相近。
类确定好之后,可以根据各类的样本数据得出选材的判别规则,作为选材的依据。
又如,根据啤酒中含有的酒精成分、纳成分、所含的热量“卡路里”数值,可以对啤酒进行分类。
聚类分析根据分类对象不同分为Q型聚类分析和R型聚类分析。
Q型聚类分析是指对样品进行聚类,R型聚类分析是指对变量进行聚类。
本章我们主要讨论Q型聚类。
聚类分析目录一.系统聚类 (1)二.快速聚类(k均值聚类) (7)一.系统聚类R中,系统聚类的函数为hclust(),dist()函数用来计算距离矩阵,plot()函数可以画出系统聚类的谱系图,rect.hclust()函数用来给定类的个数或给定阈值来确定聚类的情况。
(1)dist()的使用方法:dist(x,method="euclidean",diag=F,upper=F,p=2)其中,x为数据矩阵或数据框。
method为计算方法,包括:euclidean(欧氏距离)、maximum (切比雪夫距离)、manhattan(绝对值距离)、nberra(兰氏距离)、minkoeski(明氏距离)。
diag为是否包含对角线元素。
upper为是否需要上三角。
p为明氏距离的幂次。
(2)hclust()的使用方法:hclust(d,method="ward.D",….)其中,d为距离矩阵。
method为系统聚类方法:single(最短距离法)、complete(最长距离法,缺省)、average(类平均法)、median(中间距离法)、centroid(重心法)、ward.D(ward 法)。
(3)plot()的使用方法:plot(x, labels = NULL, hang = 0.1,axes = TRUE, frame.plot = FALSE, ann = TRUE,main = "Cluster Dendrogram",sub = NULL, xlab = NULL, ylab = "Height", ...)其中,x是由hclust()函数生成的对象。
hang是表明谱系图中各类所在的位置,当hang取负值时,谱系图中的类从底部画起。
其他参数见帮助文档。
(4)rect.hclust()的使用方法:rect.hclust(tree, k = NULL, which = NULL, x = NULL, h = NULL,border = 2, cluster = NULL)其中,tree是由hclust()生成的结构。
第五讲聚类分析聚类分析是一种无监督学习方法,旨在将样本数据划分为具有相似特征的若干个簇。
它通过测量样本之间的相似性和距离来确定簇的划分,并试图让同一簇内的样本点相似度较高,而不同簇之间的样本点相似度较低。
聚类分析在数据挖掘、模式识别、生物信息学等领域有着广泛的应用,它可以帮助我们发现隐藏在数据中的模式和规律。
在实际应用中,聚类分析主要包含以下几个步骤:1.选择合适的距离度量方法:距离度量方法是聚类分析的关键,它决定了如何计算样本之间的相似性或距离。
常用的距离度量方法包括欧氏距离、曼哈顿距离、切比雪夫距离等。
2.选择合适的聚类算法:聚类算法的选择要根据具体的问题和数据特点来确定。
常见的聚类算法有K-means算法、层次聚类算法、DBSCAN算法等。
3.初始化聚类中心:对于K-means算法等需要指定聚类中心的方法,需要初始化聚类中心。
初始化可以随机选择样本作为聚类中心,也可以根据领域知识或算法特点选择合适的样本。
4.计算样本之间的相似度或距离:根据选择的距离度量方法,计算样本之间的相似度或距离。
相似度越高或距离越小的样本越有可能属于同一个簇。
5.按照相似度或距离将样本划分为不同的簇:根据计算得到的相似度或距离,将样本划分为不同的簇。
常用的划分方法有硬聚类和软聚类两种。
硬聚类将样本严格地分到不同的簇中,而软聚类允许样本同时属于不同的簇,并给出属于每个簇的概率。
6.更新聚类中心:在K-means等迭代聚类算法中,需要不断迭代更新聚类中心,以找到最优划分。
更新聚类中心的方法有多种,常用的方法是将每个簇内的样本的均值作为新的聚类中心。
7.评估聚类结果:通过评估聚类结果的好坏,可以判断聚类算法的性能。
常用的评估指标有轮廓系数、Dunn指数、DB指数等。
聚类分析的目标是让同一簇内的样本点尽量相似,而不同簇之间的样本点尽量不相似。
因此,聚类分析常常可以帮助我们发现数据中的分组结构,挖掘出数据的内在规律。
聚类分析在市场细分、社交网络分析、基因表达数据分析等领域都有广泛的应用。
聚类分析(五)——基于密度的聚类算法OPTICS 1 什么是OPTICS算法在前⾯介绍的DBSCAN算法中,有两个初始参数E(邻域半径)和minPts(E邻域最⼩点数)需要⽤户⼿动设置输⼊,并且聚类的类簇结果对这两个参数的取值⾮常敏感,不同的取值将产⽣不同的聚类结果,其实这也是⼤多数其他需要初始化参数聚类算法的弊端。
为了克服DBSCAN算法这⼀缺点,提出了OPTICS算法(Ordering Points to identify theclustering structure)。
OPTICS并不显⽰的产⽣结果类簇,⽽是为聚类分析⽣成⼀个增⼴的簇排序(⽐如,以可达距离为纵轴,样本点输出次序为横轴的坐标图),这个排序代表了各样本点基于密度的聚类结构。
它包含的信息等价于从⼀个⼴泛的参数设置所获得的基于密度的聚类,换句话说,从这个排序中可以得到基于任何参数E和minPts的DBSCAN算法的聚类结果。
2 OPTICS两个概念核⼼距离:对象p的核⼼距离是指是p成为核⼼对象的最⼩E’。
如果p不是核⼼对象,那么p的核⼼距离没有任何意义。
可达距离:对象q到对象p的可达距离是指p的核⼼距离和p与q之间欧⼏⾥得距离之间的较⼤值。
如果p不是核⼼对象,p和q之间的可达距离没有意义。
例如:假设邻域半径E=2, minPts=3,存在点A(2,3),B(2,4),C(1,4),D(1,3),E(2,2),F(3,2)点A为核⼼对象,在A的E领域中有点{A,B,C,D,E,F},其中A的核⼼距离为E’=1,因为在点A的E’邻域中有点{A,B,D,E}>3;点F到核⼼对象点A的可达距离为,因为A到F的欧⼏⾥得距离,⼤于点A的核⼼距离1.3 算法描述OPTICS算法额外存储了每个对象的核⼼距离和可达距离。
基于OPTICS产⽣的排序信息来提取类簇。
算法描述如下:算法:OPTICS输⼊:样本集D, 邻域半径E, 给定点在E领域内成为核⼼对象的最⼩领域点数MinPts输出:具有可达距离信息的样本点输出排序⽅法:1 创建两个队列,有序队列和结果队列。
例:有一混合样本集,如下图所示,试用ISODATA 进行聚类分析。
解:如下图所示,样本数目8=n ,取类型数目初始值1=c ,执行ISODATA 算法:⑴ 给定参数(可以通过迭代过程修正这些参数):4,0,4,1,2,2======I L K c s n θθθ预选1x 为聚合中心,即:TZ )0,0(1=。
令1=J ,迭代次数。
⑵ 聚类:因只有一个聚合中心TZ )0,0(1=,故},..,,{:82111x x x X w =,81=n 。
⑶ 因n n θ>=81,没有子集抛弃。
⑷ 计算新聚合中心:∑∈=1811X x x Z T )75.2,38.3()858621,8610821(=++++++++=⑸ 计算类内平均距离:∑∈-=1||||1111X x Z x n D ++++++++=22222222)82()85()86()811()814()819()822()827([8122222222)818()821()810()813()810()85()82()813(+++++++26.2=⑹ 计算类内总平均距离:26.21==D D 。
⑺ 不是最后一次迭代,且2kc =转⑻⑻ 计算聚合1X 中的标准偏差1σ:T ),(12111σσσ=∑∈-=j X x ji J Z x 2111))((81σ])8276()8275()8274()8275()8274()8272()8271()8270[(8122222222-+-+-+-+-+-+-+-=56.1])818()810()810()822()82()86()814()822[(812222222212=+++++++=σ T )56.1,99.1(1=σ⑼ 1σ中的最大偏差分量为99.111=σ,即99.1max 1=σ。
⑽ 因为s θσ>max 1,且2K c =。
所以把聚合分裂成两个子集,5.0=K ,则:T r )0,1(1=,故新的聚合中心分别为:T Z )75.2,38.4(1=+,T Z )75.2,38.2(1=-为方便起见,+1Z 和-1Z 改写为1Z 和2Z ,令1+=c c ,21=+=J J ,返回到⑵。
聚类分析定义及分析⽅法聚类分析聚类分析(Cluster Analysis)是根据事物本⾝的特性研究个体分类的⽅法。
聚类分析的原则是同⼀类中的个体有较⼤的相似性,不同类的个体差异很⼤。
根据分类对象不同分为样品聚类和变量聚类。
样品聚类在统计学中⼜称为Q型聚类。
⽤SPSS的术语来说就是对事件(cases)进⾏聚类,或是说对观测量进⾏聚类。
是根据被观测的对象的各种特征,即反映被观测对象的特征的各变量值进⾏分类。
变量聚类在统计学中有称为R型聚类。
反映事物特点的变量有很多,我们往往根据所研究的问题选择部分变量对事物的某⼀⽅⾯进⾏研究。
SPSS中进⾏聚类和判别分析的统计过程是由菜单Analyze---Classify导出的选择Classify 可以显⽰三个过程命令:1 K-Means Cluster进⾏快速聚类过程。
2 Hierarchical Cluster进⾏样本聚类和变量聚类过程。
3 Discriminant进⾏判别分析过程。
通常情况下在聚类进⾏之前 Proximitice 过程先根据反映各类特性的变量对原始数据进⾏预处理,即利⽤标准化⽅法对原始数据进⾏⼀次转换。
并进⾏相似性测度或距离测度。
然后 Cluster 过程根据转换后的数据进⾏聚类分析。
在SPSS for Windows 中分层聚类各⽅法都包含了 Proximitice 过程对数据的处理和Cluster 过程。
对数据的分析给出的统计量可以帮助⽤户确定最好的分类结果。
1.1 主要功能聚类的⽅法有多种,最常⽤的是分层聚类法。
根据聚类过程不同⼜分为凝聚法和分解法。
分解法:聚类开始把所有个体(观测量或变量)都视为属于⼀⼤类,然后根据距离和相似性逐层分解,直到参与聚类的每个个体⾃成⼀类为⽌。
凝聚法:聚类开始把参与聚类的每个个体(观测量或变量)视为⼀类,根据两类之间的距离或相似性逐步合并直到合并为⼀个⼤类为⽌。
⽆论哪种⽅法,其聚类原则都是近似的聚为⼀类,即距离最近或最相似的聚为⼀类。
2.ISODATA聚类算法ISODATA算法:Iterative Self-Organizing Data Analysis Technigues Algorithm,迭代自组织的数据分析算法。
ISODATA算法特点:可以通过类的自动合并(两类合一)与分裂(一类分为二),得到较合理的类型数目c。
具体算法步骤:⑴给定控制参数K:预期的聚类中心数目。
nθ:每一聚类中最少的样本数目,如果少于此数就不能作为一个独立的聚类。
sθ:一个聚类域中样本距离分布的标准差(阈值)。
cθ:两个聚类中心之间的最小距离,如果小于此数,两个聚类合并。
L:每次迭代允许合并的最大聚类对数目。
I:允许的最多迭代次数。
给定n个混合样本,令1=J(迭代次数),预选c个起始聚合中心,) (J Zj ,cj,...,2,1=。
⑵计算每个样本与聚合中心距离:))(,(JZxDjk。
若:},...,2,1)),(,({min))(,(,...,2,1nkJZxDJZxDjkcjjk===,则:ikwx∈。
把全部样本划分到c个聚合中去,且jn表示各子集j X中的样本数目。
⑶判断:若njnθ<,cj,...,2,1=则舍去子集j X,1-=cc,返回②。
⑷计算修改聚合中心:∑==jnkjkjjxnJZ1)(1)(,cj,...,2,1=。
⑸计算类内距离平均值jD:∑==jn k j j k jj J Z x D n D 1)())(,(1,c j ,...,2,1= ⑹ 计算类内总平均距离(全部样本对其相应聚类中心的总平均距离):∑=⋅=cj j j D n n D 11 ⑺ 判别分裂、合并及迭代运算等步骤。
(a )如迭代运算次数已达I 次,即最后一次迭代,置0=c θ,跳到⑾,运算结束。
(b )如2K c ≤,即聚类中心的数目等于或不到规定值的一半,则转⑻,将已有的聚类分裂。
(c )如迭代运算的次数是偶数,或K c 2≥,则不进行分裂,跳到⑾,若不符合上述两个条件,则进入⑻,进行分裂处理。
聚类分析在实际工作中,我们经常遇到分类问题.若事先已经建立类别,则使用判别分析,若事先没有建立类别,则使用聚类分析。
聚类与分类的不同在于,聚类所要求划分的类是未知的。
聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。
在MA TLAB 软件包中,主要使用的是系统聚类法。
系统聚类法是聚类分析中应用最为广泛的一种方法.它的基本原理是:首先将一定数量的样品(或指标)各自看成一类,然后根据样品(或指标)的亲疏程度,将亲疏程度最高的两类合并,然后重复进行,直到所有的样品都合成一类。
衡量亲疏程度的指标有两类:距离、相似系数。
Matlab 提供了两种方法进行聚类分析: 一种是利用clusterdata 函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法; 另一种是分步聚类:Step1 寻找变量之间的相似性用pdist 函数计算相似矩阵,有多种方法可以计算距离,进行计算之前最好先将数据用zscore 函数进行标准化。
X2=zscore(X); %标准化数据 Y=pdist(X2); %计算距离 Step2 定义变量之间的连接 Z=linkage(Y);Step3 评价聚类信息 C=cophenet(Z,Y);Step4 创建聚类,并作出谱系图 T=cluster(Z,6); H=dendrogram(Z);一、常用距离 1)欧氏距离假设有两个n 维样本),,,(112111n x x x x =和),,,(222212n x x x x =,则它们的欧氏距离为∑=-=nj j jx xx x d 122121)(),(2)标准化欧氏距离 3)马氏距离 4)布洛克距离 5)闵可夫斯基距离 6)余弦距离 7)相似距离二、MATLAB 中常用的计算距离的函数假设我们有n m ⨯阶数据矩阵),,,(21n x x x x =,每一行是一个样本数据. 在MA TLAB 中计算样本点之间距离的内部函数为y=pdist(x) 计算样本点之间的欧氏距离(默认)y=pdist(x,'seuclid') 计算样本点之间的标准化欧氏距离y=pdist(x,'mahal') 计算样本点之间的马氏距离y=pdist(x,'cityblock') 计算样本点之间的布洛克距离y=pdist(x,'minkowski') 计算样本点之间的闵可夫斯基距离y=pdist(x,'minkowski',p) 计算样本点之间的参数为p的闵可夫斯基距离y=pdist(x,'cosine') 计算样本点之间的余弦距离y=pdist(x,'correlation') 计算样本点之间的相似距离另外,内部函数yy=squareform(y)表示将样本点之间的距离用矩阵的形式输出。
例:x=[3 1.7;1 1;2 3; 2 2.5; 1.2 1; 1.1 1.5; 3 1] % 7×2,每行一个样本y=pdist(x,'mahal') %每两个样本的马氏距离yy=squareform(y)%样本点之间的距离用矩阵的形式输出x =3.0000 1.70001.0000 1.00002.00003.00002.0000 2.50001.2000 1.00001.1000 1.50003.0000 1.0000y =Columns 1 through 132.3879 2.1983 1.6946 2.1684 2.2284 0.8895 2.6097 2.0616 0.2378 0.6255 2.3778 0.6353 2.5522Columns 14 through 212.0153 2.9890 1.9750 1.5106 2.4172 0.6666 2.1400 2.4517yy =0 2.3879 2.1983 1.6946 2.1684 2.2284 0.88952.3879 0 2.6097 2.0616 0.2378 0.6255 2.37782.1983 2.6097 0 0.6353 2.5522 2.0153 2.98901.69462.0616 0.6353 0 1.9750 1.5106 2.41722.1684 0.2378 2.5522 1.9750 0 0.6666 2.14002.2284 0.6255 2.0153 1.5106 0.6666 0 2.45170.8895 2.3778 2.9890 2.4172 2.1400 2.4517 0三、常用的聚类方法常用的聚类方法主要有以下几种:最短距离法、最长距离法、平均距离法、重心法、平方和递增法等等.四、创建系统聚类树假设已经得到样本点之间的距离y,可以用linkage函数创建系统聚类树,格式为z=linkage(y).其中:z为一个包含聚类树信息的(m-1) 3的矩阵.例如:z=2.000 5.000 0.23.0004.000 1.28则z的第一行表示第2、第5样本点连接为一个类,它们距离为0.2;则z的第二行表示第3、第4样本点连接为一个类,它们距离为1.28.在MA TLAB中创建系统聚类树的函数为z=linkage(y) 表示用最短距离法创建系统聚类树(默认)z=linkage(y,'complete') 表示用最长距离法创建系统聚类树z=linkage(y,'average') 表示用平均距离法创建系统聚类树z=linkage(y,'centroid') 表示用重心距离法创建系统聚类树z=linkage(y,'ward') 表示用平方和递增法创建系统聚类树例:z=linkage(y,'average') %用平均距离法创建系统聚类树z =2.0000 5.0000 0.23783.00004.0000 0.63536.0000 8.0000 0.64601.0000 7.0000 0.88959.0000 10.0000 2.120711.0000 12.0000 2.3053另外,内部函数h=dendrogram(z)画出由Z描述的聚类树谱系图,谱系图由许多U型线连接,U型线的高表示所连接两点之间的距离。
dendrogram默认最多画30个最底层节点,可设置参数改变这个限制,比如dendrogram(Z,0)就会把所有数据点索引下标都标出来,但对于成千上万的数据集合,这样的结果必然是图形下方非常拥挤。
h=dendrogram(z) % 输出聚类树形谱系图h =349.0054351.0048352.0048353.0048354.0048355.0048五、计算聚类树信息与原始数据的距离之间的相关性cophenetic函数用于评价聚类信息,利用pdist函数生成的y和linkage函数生成的z计算聚类树信息与原始数据的距离之间的相关性(值在0-1之间),这个值越接近1,表示聚类效果越好。
调用格式:c=cophenet(z,y)c=cophenet(z,y)c =0.9239六、根据系统聚类树创建聚类假设已经求出系统聚类树z,我们根据z来创建聚类,使用cluster函数。
调用格式:t=cluster(z,n) 其中n>1为正整数,表示将原始数据分为n类;t=cluster(z,cutoff) 0<cutoff<1为对Z切割分类的阈值,表示在系统聚类树中距离小于a的样本点归结为一类;t=cluster(z,3) %n为正整数,是分类数量t =3211223t=cluster(z,0.8) %以阈值0.8对Z切割分类t =2311332七、一次聚类根据数据一次创建分类调用格式:t=clusterdata(x,…)t=clusterdata(x,cutoff)与下面的一组命令等价:y=pdist(x,’euclid’);z=linkage(y,’single’);t=cluster(z,cutoff);t=clusterdata(x,0.8)t =3211223聚类分析示例:1. 平面上点的聚类X=randn(8,2) %在平面上随机生成8个点plot(X(:,1),X(:,2),'bo') %给个图,将来对照聚类结果s=['1';'2';'3';'4';'5';'6';'7';'8'];text(X(:,1)+0.05,X(:,2),s)X =-1.3813 -1.13980.3155 -0.21111.5532 1.19020.7079 -1.11621.9574 0.63530.5045 -0.60141.8645 0.5512-0.3398 -1.0998Y=pdist(X)Y =Columns 1 through 131.9343 3.74702.08933.7812 1.9612 3.6599 1.0422 1.8697 0.9865 1.8472 0.4336 1.7264 1.1042Columns 14 through 262.4565 0.6865 2.0760 0.7108 2.9712 2.1515 0.5535 2.0293 1.0478 1.9079 0.1253 2.8788 1.7827Columns 27 through 280.9805 2.7541Y不是很容易看懂,可以用squareform把Y转换成方阵形式,方阵中<i,j>位置的数值就是X中第i和第j点之间的距离,显然这个方阵应该是个对角元素为0的对称阵。
squareform(Y)ans =0 1.9343 3.7470 2.0893 3.7812 1.9612 3.6599 1.04221.9343 0 1.8697 0.9865 1.8472 0.4336 1.7264 1.10423.7470 1.8697 0 2.4565 0.6865 2.0760 0.7108 2.97122.0893 0.9865 2.4565 0 2.1515 0.5535 2.0293 1.04783.7812 1.8472 0.6865 2.1515 0 1.9079 0.1253 2.87881.9612 0.43362.0760 0.5535 1.9079 0 1.7827 0.98053.6599 1.7264 0.7108 2.0293 0.1253 1.7827 0 2.75411.0422 1.10422.9712 1.0478 2.8788 0.9805 2.7541 0Z=linkage(Y) %平面上点的聚类中最经常使用的就是欧氏距离H=dendrogram(Z); % 输出聚类树形谱系图Z =5.0000 7.0000 0.12532.0000 6.0000 0.43364.0000 10.0000 0.55353.0000 9.0000 0.68658.0000 11.0000 0.98051.0000 13.0000 1.042212.0000 14.0000 1.72642. 设某地区有八个观测点的数据,样本距离矩阵如X所示,根据最短距离法聚类分析。