统计方法6聚类分析_第1页
统计方法6聚类分析_第2页
统计方法6聚类分析_第3页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、* *统计方法6 聚类分析第一节基本概念1 分类问题直观解释:聚类分析就是用某种准则将靠近的点集归为一类对样本(观测值)进行聚类,也可以对指标(变量 )进行聚类。2 距离样品之间的距离设 p 维空间内的点X( x1 , x2 ,., xp ) 及 Y( y1 , y2 ,.y p )定义两点之间的距离(1 )欧氏距离p2dxy 2( ( xi yi ) )1 / 2i 1( 2 )马氏距离d xy2xy( xy)其中是数据矩阵的协方差阵。马氏距离的优点是考虑了空间内的概率分布,在正态总体的情况下,有比较好的效果。* *距离的定义比较灵活,只要满足条件都可以作为聚类时的距离。变量之间的距离变量之

2、间的距离要考虑到变量之间的相互关系。常用的距离如夹角余弦,相关系数等类和类之间的距离在聚类过程中,要涉及到类和类之间的合并,因此也要考虑类间的距离。如 类间最短距离设 dij 是样本 i 和样本 j 之间的距离,D pq 是类 G p 和类 G q 之间的距离定义类间的最短距离为Dpq=imin dijp, j q类似的可以定义类间的最长距离,平均距离 等。第二节系统聚类法* *系统聚类方法是非常容易在计算机上实现的一种聚类方法,其聚类步骤为:1 )将空间各点各自视为一类,计算每类间的距离矩阵,将距离最小者归为一类。2 )对与新的类重新计算 类与类间 的距离矩阵,再将距离最小者归为一类。3 )

3、这一过程一直进行下去,直到所有的点归为一类为止。例 8.2.1 :设抽六个样,每个样本只有一个变量,即:1, 2,5,7,9,10。定义距离为:两点的绝对值。试用最小距离法对它们进行系统聚类。G1G2 G3G4 G5G6G10G2101 )计算得距离矩阵D(0) ,为 G3430G46520G587420G69853102 ) D(0) 的最小距离时是1 ,对应元素D12=D56=1,则将G1,G2 并成 G7;G5 ;G6 并成 G8。3 )计算 G7 , G8 与其他类道距离,得D ( 1)G7 G3 G4G8G70G330G4520G874204) 的 D (1)的最小距离是 2,把 G

4、3 , G4 , G8 合并为类 G9 ,5) 把 G7 和 G9 合并为 G10 ,聚类距离为 3 。此时已将全部样本合并为一类,聚类结束。可以按照聚类的距离,通过谱系图把聚类的过程表示出来。* *最后,选择合适的阈值,确定聚类的个数。如取阈值为2.5 ,则分为2 类, G7 和 G9第三节动态聚类法( k 均值法)k- 均值法是一种划分方法。函数kmeans把数据划分为k个互不相交的类,然后对每个观测返回类的标号。对于大量的数据k- 均值法比系统聚类法更合适。Kmeans把数据集中的每一个数据视为占有空间中某个位置的对象。K- 均值法寻找划分使得每一类内部的数据足够近而类之间的数据足够远。

5、函数提供了5 种距离的测量。步骤Step1 :选择 k 个样品作为初始凝聚点,或者将样品分为k 个初始类,然后将其重心(均值)作为初始凝聚点Step2 :将每个样品归入离其凝聚点最近的类(通常采用欧氏距离)。Step3 :重新计算每个类的重心(均值);Step4 :重复 Step2 ,直到各类重心不再变化,类不再变化为止。动态聚类的结果严重依赖初始凝聚点的选取。经验表明, 聚类过程的绝大多数重要变化* *均发生在第一次再分类中。第四节 MATLAB统计工具箱中的聚类分析A 系统聚类法1. 点点距离的计算命令 pdist Y = pdist(X)Y = pdist(X,'metric&#

6、39;) Y = pdist(X,distfun)Y = pdist(X,'minkowski',p)这里:X:为数据矩阵metric :各种距离方法euclidean:欧几里得距离Euclidean distance (default)seuclidean :标准欧几里得距离 .mahalanobis :马氏 距离 cityblock :绝对值距离minkowski :明可夫斯基距离cosine : cosine 角度距离(对变量聚类)correlation:相关系数距离.(对变量聚类)* *hamming : Hamming 距离(符号变量求距离)jaccard : Jac

7、card 系数距离(符号变量求距离) chebychev :切比雪夫距离2. 类类距离的计算命令 linkage ,基本语法为;Z = linkage(Y)Z = linkage(Y,'method')这里:Y:为 pdist输出的结果,即点点的距离矩阵。method :为计算类类间距离的方法。它们有: single': 最短距离法 (系统内定 )complete :最长距离法。 average :平均距离法。weighted :加权平均距离法。 centroid :中心距离法。median :加权重心法。3) 聚类命令 cluster ,语法为:T = cluster

8、(Z,'cutoff',c)T = cluster(Z,'maxclust',n)这里:Z:为 linkage输出的层次数据。cutoff :按某个值进行切割,值c 取( 0 , 1 )之间的值。maxclust:按最大聚类数聚类,n 为指定的聚类数。* *4) 作聚类图命令 dendrogram ,其语法为:H = dendrogram(Z)H = dendrogram(Z,p)H,T = dendrogram(.)H,T,perm = dendrogram(.). =dendrogram(.,'colorthreshold',t). = de

9、ndrogram(.,'orientation','orient'). = dendrogram(.,'labels', S)这里:Z:为 linkage输出的层次数据。p :原始结点个数的设置,p=0显示全部点。系统内定显示30 个点。colorthreshold :颜色设置,其值 t>0 。orientation :聚类图的位置,内定是从上到下。可选值为:top :从上到下 (default)bottom :从下到上 left :从左到右right :从右到左 labels :标号例 16 个地区 (' 北京 ',

10、9; 天津 ',' 河北 ',' 山西 ',' 内蒙古 ',' 辽宁 ',' 吉林 ',' 黑龙江 ',' 上海 ',' 江苏 ',' 浙江 ','安徽 ',' 福建 ',' 江西 ',' 山东 ',' 河南 )农民支出情况调查,指标为食品 ,衣着 ,燃料 ,住房 ,生活用品 ,文化生活服务 .* *x=190.33 43.77 9.73 60.54 49.01 9.04;

11、135.2 36.4 10.47 44.16 36.49 3.94;95.21 22.839.3 22.44 22.81 2.8;104.78 25.11 6.49.89 18.173.25;128.41 27.63 8.94 12.58 23.993.27;145.68 32.8317.79 27.29 39.093.47;159.37 33.38 18.37 11.81 25.295.22;116.2229.5713.2413.7621.756.04;221.1138.6412.53115.6550.825.89;144.9829.1211.6742.627.35.74;169.9232.

12、7512.7247.1234.355;153.1123.0915.6223.5418.186.39;144.9221.2616.9619.5221.756.73;140.5421.517.6419.1915.974.94;115.84 30.2612.2 33.61 33.77 3.85;101.1823.26 8.46 20.220.5 4.3;zx=zscore(x);y=pdist(zx);z=linkage(y,'average')z =12.000013.00000.66563.000016.00000.99314.000018.00001.071114.000017

13、.00001.203210.000011.00001.26705.000019.00001.2756* *2.000015.00001.283321.000023.00001.70886.00007.00001.82458.000020.00001.879924.000025.00002.330226.000027.00002.647622.000028.00002.96641.00009.00003.178829.000030.00005.2728s=' 北京 ',' 天津 ',' 河北 ',' 山西 ',' 内蒙古 &

14、#39;,' 辽宁 ',' 吉林 ',' 黑龙江 ',' 上海 ',' 江苏 ',' 浙江 ',' 安徽 ',' 福建',' 江西 ',' 山东 ',' 河南 'dendrogram(z,'orientation','right','labels',s)* *上海北京内蒙古山西河南河北吉林辽宁浙江江苏山东天津黑龙江江西福建安徽0.511.522.533.544.555.5T

15、=cluster(z,5)T =423332215* *2211123find(T=1)ans =8121314find(T=2)ans =267101115find(T=3)* *ans =34516find(T=4)ans =1find(T=5)ans =9或者:T = clusterdata(zx,'distance','euclid','linkage','average','maxclust',5)T =4233322* *152211123它与前面的cluster(z,5)相等B K 均值法函数 kme

16、ans把数据划分为k 个互不相交的类,然后对每个观测返回类的标号。Kmeans把数据集中的每一个数据视为占有空间中某个位置的对象。K- 均值法寻找划分使得每一类内部的数据足够近而类之间的数据足够远。函数提供了5 种距离的测量。IDX = kmeans(X,k)将 n 个点分为k 类,返回的idx 为每个点的类标号。IDX,C = kmeans(X,k)返回的 c 为每个类的中心。IDX,C,sumd = kmeans(X,k)Sumd返回类内的距离。IDX,C,sumd,D = kmeans(X,k)* *返回的 D 是一个矩阵,里边的元素dij 是第 i 个元素到第 j 类的距离。. = k

17、means(.,param1,val1,param2,val2,.)param1 为参数名, val1 为参数值。这些参数用来控制迭代算法。继续上例,采用K 均值法分类的结果为:IDX = kmeans(x,4)%分为 4 类IDX =134423321333* *3324分类的结果为:IDX = kmeans(x,5) %分为 5 类IDX =1522355345155* *532分类的结果为:轮廓图可以利用轮廓图作为评价分类结果的一种标准。Silhouette函数可以用来根据cluster,clusterdata,kmeans的聚类结果绘制轮廓图。从图上可以看每个点的分类是否合理。轮廓图上

18、第i 点的轮廓值定义为min( b)aS( i) =,i1.nmax a, min( b)其中, a 是第 i 个点与同类其它点的平均距离。b 是向量,其元素表示第i 个点与不同类的类内各点的平均距离。S(i) 的取值范围 -1 ,1 ,此值越大,说明该点的分类越合理。特别当s(i)<0是说明该点分类不合理。silhouette(X,clust)s = silhouette(X,clust) %此命令只返回轮廓值,不画轮廓图s,h = silhouette(X,clust). = silhouette(X,clust,metric). = silhouette(X,clust,distf

19、un,p1,p2,.)上例分为 4 类的情况* *s,h = silhouette(x,IDX)s =0.76230.39660.80800.81710.17710.70200.69550.72931.00000.65640.29270.76080.67570.50990.45820.8398* *上例分为 5 类的情况s,h = silhouette(x,IDX)s =0.76230.05550.80370.65830.48170.47470.5376* *0.05401.00000.49600.29270.62680.45060.19710.19930.8479比较两图 ,此例使用k 均值

20、法分四类要更合适第五节模糊聚类聚类分析是一种无监督的学习方法。很多的分类问题中,分类对象往往没有明确的界限。* *用传统的聚类方法,把样本点严格的分到某个类中,可能存在一定的不合理性。借助于模糊数学的思想,可以有模糊聚类的方法。使用模糊聚类将n 个样品划分为c 类,记 V(v1, v2 ,.vc ) 为 c 个类的聚类中心。 在模糊聚类中每个样品不是严格的划分到某一类,而是按照一定的隶属度属于某一类。c设 uik 表示第 k 个样品属于第i 类的隶属度,取值0 , 1 ,且uik 1。i 1ncuikm dik2定义目标函数 J (U ,V )k 1i 1其中 U 为隶属度矩阵, dikxkv

21、i所以该目标函数表示各类中样品到聚类中心的加权的距离平方和。模糊 C 均值聚类法的准则是求U ,V 使 J( U, V )得到最小值。具体步骤:( 1 )确定类的个数 c,幂指数 m (>1 )和初始隶属度矩阵 U (0) 。通常的做法是取 0 ,1 上的均匀分布随机数来确定初始隶属度矩阵。令l=1 表示第一步迭代。( 2 )通过下式计算第 l 步的聚类中心:n(uik (l 1) )m xk( l )k 1m , i 1,2,., cvin(uik l1 )k 1(3) 修正隶属度矩阵 U (l ) ,计算目标函数值 J( l ) 。其中uik(l )1 cl2,i 1,2,.C ;

22、k1,2,., n(dik)m1lj 1d jk(4) 对于迭代算法,给定隶属度终止容限u0 (或目标函数终止容限j0 ,或给定最大迭代* *步长 )。当 max uik(l )uik(l 1) u (或当 l>1, J (l )J (l 1)l ,或大于最大步长) ,停止迭代,否则 l=l+1, 返回( 2 )。经迭代可以求得最终的隶属度矩阵U 和聚类中心 V ,使目标函数达最小。根据最终的隶属度矩阵 U 中元素的取值来确定最终所有样品的归属,当u jkmaxuik 时,把 xk 归于第 j1 i c类。模糊逻辑工具箱中模糊C 聚类的函数:fcmcenter,U,obj_fcn = f

23、cm(data,cluster_n)center,U,obj_fcn =fcm(data,cluster_n,options)说明:cluster_n是类的个数。Options中的第一个参数是隶属度的幂指数,默认为2 ;第二个参数是最大迭代次数,默认值为100 ,第三个参数是目标函数的终止容限,默认值为10 5 。第四个参数用来控制是否显示中间迭代过程。取值为0 ,则不显示。输出参数center是cluster_n个类的类中心坐标矩阵(cluster_nX p )。 U是隶属度矩阵(cluster_n x n), uik 表示其元素第k 个样品属于第i 类的隶属度。 根据U 中每列元素的取值判

24、定元素的归属。obj_fcn是目标函数值向量,其第i 个元素表示第i 步迭代的目标函数值,它包含的元素总个数就是实际迭代的总步数。继续前面的例子x=190.33 43.77 9.73 60.54 49.01 9.04;135.2 36.4 10.47 44.16 36.49 3.94;95.21 22.839.3 22.44 22.81 2.8;104.78 25.11 6.4 9.89 18.17 3.25;128.41 27.63 8.94 12.58 23.993.27;145.68 32.83 17.79 27.29 39.09 3.47;159.37 33.38 18.37 11.81 25.29 5.22;116.2229.5713.2413.7621.756.04;221.1138.6412.53115.6550.8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论