统计方法6聚类分析.docx

上传人:b****8 文档编号:28807544 上传时间:2023-07-19 格式:DOCX 页数:21 大小:109.41KB
下载 相关 举报
统计方法6聚类分析.docx_第1页
第1页 / 共21页
统计方法6聚类分析.docx_第2页
第2页 / 共21页
统计方法6聚类分析.docx_第3页
第3页 / 共21页
统计方法6聚类分析.docx_第4页
第4页 / 共21页
统计方法6聚类分析.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

统计方法6聚类分析.docx

《统计方法6聚类分析.docx》由会员分享,可在线阅读,更多相关《统计方法6聚类分析.docx(21页珍藏版)》请在冰豆网上搜索。

统计方法6聚类分析.docx

统计方法6聚类分析

统计万法6聚类分析

第一节基本概念

1•分类问题

直观解释:

聚类分析就是用某种准则将靠近的点集归为一类对样本(观测值)进行聚类,也可以对指标(变量)进行聚类。

 

8

6

4

2

i按距栢对点吆类二

[…■…:

■.

AL■…厂:

 

 

样品之间的距离

设p维空间内的点X(x「x2,…,Xp)及Y(yi,y2,...yp)

定义两点之间的距离

2

1/2

yi))

(i)欧氏距离

p

2

dxy((Xi

i1

(2)马氏距离

dXyxy(xy)

其中是数据矩阵的协方差阵。

马氏距离的优点是考虑了空间内的概率分布,在正态总体的情况下,有比较好的效果。

距离的定义比较灵活,只要满足条件都可以作为聚类时的距离。

变量之间的距离

变量之间的距离要考虑到变量之间的相互关系。

常用的距离如夹角余弦,相关系数等

类和类之间的距离

在聚类过程中,要涉及到类和类之间的合并,因此也要考虑类间的距离。

如类间最短距离

设dj是样本i和样本j之间的距离,Dpq是类Gp和类Gq之间的距离定义类间的最短距离

mindii

类似的可以定义类间的最长距离,平均距离等。

第二节系统聚类法

系统聚类方法是非常容易在计算机上实现的一种聚类方法,其聚类步骤为:

1)将空间各点各自视为一类,计算每类间的距离矩阵,将距离最小者归为一类。

2)对与新的类重新计算类与类间的距离矩阵,再将距离最小者归为一类。

3)这一过程一直进行下去,直到所有的点归为一类为止。

定义

例8.2.1:

设抽六个样,每个样本只有一个变量,即:

1,2,5,7,9,10。

距离为:

两点的绝对值。

试用最小距离法对它们进行系统聚类。

G1G2G3(

G4G5G6

G1

0

G2

1

0

1)

计算得距离矩阵D(0),为G3

4

3

0

G4

6

5

2

0

G5

8

7

4

2

0

G6

9

8

5

3

10

2)D(0)的最小距离时是1,对应元素D12=D56=1,则将

G1,G2并成G7;G5;G6并成G8。

3)计算G7,G8与其他类道距离,得D

(1)

G7G3G4G8

G70

G330

G4520

G87420

4)的D

(1)的最小距离是2,把G3,G4,G8合并为类G9,

5)把G7和G9合并为G10,聚类距离为3。

此时已将全部样本合并为一类,聚类结束。

可以按照聚类的距离,通过谱系图把聚类的过程表示出来。

C'l—f1<

&23

9丄一11;

GA⑴

G7

G10

旳为

G9

G6={10}

G8

1

-

234

最后,选择合适的阈值,确定聚类的个数。

如取阈值为2.5,则分为2类,G7和G9

第三节动态聚类法(k均值法)

k-均值法是一种划分方法。

函数kmeans把数据划分为k个互不相交的类,然后对每个观测返回类的标号。

对于大量的数据k-均值法比系统聚类法更合适。

Kmeans把数据集中的每一个数据视为占有空间中某个位置的对象。

k-均值法寻找划分

使得每一类内部的数据足够近而类之间的数据足够远。

函数提供了5种距离的测量。

步骤

Stepl:

选择k个样品作为初始凝聚点,或者将样品分为k个初始类,然后将其重心(均

值)作为初始凝聚点

Step2:

将每个样品归入离其凝聚点最近的类(通常采用欧氏距离)。

Step3:

重新计算每个类的重心(均值);

Step4:

重复Step2,直到各类重心不再变化,类不再变化为止。

 

动态聚类的结果严重依赖初始凝聚点的选取。

经验表明,聚类过程的绝大多数重要变化

均发生在第一次再分类中。

第四节MATLAB统计工具箱中的聚类分析

A系统聚类法

1.点点距离的计算命令pdist

Y=pdist(X)

Y=pdist(X,'metric')

Y=pdist(X,distfun)

Y=pdist(X,'minkowski',p)

这里:

X:

为数据矩阵

metric:

各种距离方法

‘euclidean'欧几里得距离Euclideandistanee(default)

‘seuclidean':

标准欧几里得距离.

‘mahalanobis':

马氏距离

‘cityblock'绝对值距离

‘minkowski':

明可夫斯基距离

‘cosine'cosine角度距离(对变量聚类)

'correlation':

相关系数距离.(对变量聚类)

'hamming'Hamming距离(符号变量求距离)

‘jaccard':

Jaccard系数距离(符号变量求距离)

‘chebychev':

切比雪夫距离

2.类类距离的计算命令linkage,基本语法为;

Z=linkage(Y)

Z=linkage(Y,'method')

这里:

Y:

为pdist输出的结果,即点点的距离矩阵。

‘method'为计算类类间距离的方法。

它们有:

‘single':

最短距离法(系统内定)

‘complete'最长距离法。

'average'平均距离法。

‘weighted':

加权平均距离法。

'centroid':

中心距离法。

'median'加权重心法。

3)聚类命令cluster,语法为:

T=cluster(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)

[...]=dendrogram(...,'orientation','orient')

[...]=dendrogram(...,'labels',S)

这里:

Z:

为linkage输出的层次数据。

p:

原始结点个数的设置,p=0显示全部点。

系统内定显示30个点。

‘colorthreshold颜色设置,其值t>0。

‘orientation':

聚类图的位置,内定是从上到下。

可选值为:

‘top‘:

从上到下(default)

‘bottom':

从下到上

'left':

从左到右

‘right':

从右到左

'labels':

标号

例16个地区('北京','天津','河北','山西','内蒙古','辽宁','吉林','黑龙江','上海','江苏','浙江','

安徽','福建','江西','山东','河南)农民支出情况调查,指标为食品,衣着,燃料,住房,生活用品,文化生活服务x=[190.3343.779.7360.5449.019.04;135.236.410.4744.1636.493.94;95.2122.83

9.322.4422.812.8;104.7825.116.49.8918.173.25;128.4127.638.9412.5823.99

3.27;145.6832.8317.7927.2939.093.47;159.3733.3818.3711.8125.295.22;116.22

29.5713.2413.7621.756.04;221.1138.6412.53115.6550.825.89;144.9829.12

11.6742.627.35.74;169.9232.7512.7247.1234.355;153.1123.0915.6223.54

18.186.39;144.9221.2616.9619.5221.756.73;140.5421.517.6419.1915.97

4.94;115.8430.2612.233.6133.773.85;101.1823.268.4620.220.54.3];

zx=zscore(x);

y=pdist(zx);

z=linkage(y,'average')

z=

12.0000

13.0000

0.6656

3.0000

16.0000

0.9931

4.0000

18.0000

1.0711

14.0000

17.0000

1.2032

10.0000

11.0000

1.2670

5.0000

19.0000

1.2756

2.0000

15.0000

1.2833

21.0000

23.0000

1.7088

6.0000

7.0000

1.8245

8.0000

20.0000

1.8799

24.0000

25.0000

2.3302

26.0000

27.0000

2.6476

22.0000

28.0000

2.9664

1.0000

9.0000

3.1788

29.0000

30.0000

5.2728

s={'北京','天津','河北','山西','内蒙古','辽宁','吉林','黑龙江’,'上海','江苏','浙江','安徽','福建

','江西','山东','河南'}dendrogram(z,'orientation','right','labels',s)

T=cluster(z,5)

T=

4

2

3

3

3

2

2

2

2

1

1

1

2

3

find(T==1)

ans=

8

12

13

14

find(T==2)

ans=

2

6

7

10

11

15find(T==3)

ans=

3

4

5

16

find(T==4)

ans=

1

find(T==5)

ans=

9

或者:

T=clusterdata(zx,'distance','euclid','linkage','average','maxclust',5)

T=

4

2

3

3

3

1

5

2

2

1

1

1

2

3

它与前面的cluster(z,5)相等

BK均值法

函数kmeans把数据划分为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

返回的D是一个矩阵,里边的元素j是第i个元素到第j类的距离。

[...]=kmeans(...,param1,val1,param2,val2,...)

paraml…为参数名,vail…为参数值。

这些参数用来控制迭代算法。

继续上例,采用K均值法

分类的结果为:

IDX=kmeans(x,4)%分为4类

IDX=

1

3

4

4

2

3

3

2

1

3

3

3

2

4

分类的结果为:

分为5类

IDX=kmeans(x,5)%

IDX=

1

5

2

2

3

5

5

3

4

5

1

5

3

2

分类的结果为:

轮廓图

可以利用轮廓图作为评价分类结果的一种标准。

Silhouette函数可以用来根据cluster,clusterdata,kmeans的聚类结果绘制轮廓图。

从图

上可以看每个点的分类是否合理。

轮廓图上第i点的轮廓值定义为

min(b)a.,

S(i)=,i1...n

max[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,distfun,p1,p2,...)

上例分为4类的情况

[s,h]=silhouette(x,IDX)s=

0.7623

0.3966

0.8080

0.8171

0.1771

0.7020

0.6955

0.7293

1.0000

0.6564

0.2927

0.7608

0.6757

0.5099

0.4582

0.8398

00.2040.60.81

SihouetleValue

123Jamrlo

上例分为5类的情况

[s,h]=silhouette(x,IDX)

0.7623

0.0555

0.8037

0.6583

0.4817

0.4747

0.5376

0.0540

1.0000

0.4960

0.2927

0.6268

0.4506

0.1971

0.1993

0.8479

00.20.40.E0.81

SrihouetleValue

比较两图,此例使用k均值法分四类要更合适

第五节模糊聚类

聚类分析是一种无监督的学习方法。

很多的分类问题中,分类对象往往没有明确的界限。

用传统的聚类方法,把样本点严格的分到某个类中,可能存在一定的不合理性。

借助于模糊

数学的思想,可以有模糊聚类的方法。

使用模糊聚类将n个样品划分为c类,记V(Vi,V2,...Vc)为c个类的聚类中心。

在模糊聚类中每个样品不是严格的划分到某一类,而是按照一定的隶属度属于某一类。

c

设Uik表示第k个样品属于第i类的隶属度,取值[0,1],且Uik1。

i1

nc

定义目标函数J(U,V)umdi2

k1i1

其中U为隶属度矩阵,dikxkvi

所以该目标函数表示各类中样品到聚类中心的加权的距离平方和。

模糊C均值聚类法的准则是求u,v使J(u,v)得到最小值。

具体步骤:

(1)确定类的个数c,幕指数m(>1)和初始隶属度矩阵U®。

通常的做法是取[0,1]上的均匀分布随机数来确定初始隶属度矩阵。

令1=1表示第一步迭代。

n

(Uik(l1))mXkV⑴k1

(2)通过下式计算第I步的聚类中心:

i12c

nm

l1、

(Uik)

k1

其中

步长)。

当max^iJuk1〉}u(或当1>1,J(l)J(l1)i,或大于最大步长),停止迭

代,否则1=1+1,返回

(2)。

经迭代可以求得最终的隶属度矩阵u和聚类中心v,使目标函数达最小。

根据最终的隶属

度矩阵U中元素的取值来确定最终所有样品的归属,当Ujkmax{uik}时,把xk归于第j

J1ic

类。

模糊逻辑工具箱中模糊C聚类的函数:

fem

[center,U,obj_fcn]=fcm(data,cluster_n)

[center,U,obj_fcn]=fcm(data,cluster_n,options)

说明:

cluster_n是类的个数。

Options中的第一个参数是隶属度的幕指数,默认为2;第二个参数是最大迭代次数,默认

值为100,第三个参数是目标函数的终止容限,默认值为105。

第四个参数用来控制是否

显示中间迭代过程。

取值为0,则不显示。

输出参数center是cluster_n个类的类中心坐标矩阵(cluster_nXp)。

U是隶属度矩阵

(cluster_nxn),5k表示其元素第k个样品属于第i类的隶属度。

根据U中每列元素的取值判定元素的归属。

obj_fcn是目标函数值向量,其第i个元素表示第i步迭代的目标函数值,它包含的元素总个数就是实际迭代的总步数。

继续前面的例子

x=[190.3343.779.7360.5449.019.04;135.236.410.4744.1636.493.94;95.2122.83

9.322.4422.812.8;104.7825.116.49.8918.173.25;128.4127.638.9412.5823.99

3.27;145.6832.8317.7927.2939.093.47;159.3733.3818.3711.8125.295.22;116.22

29.5713.2413.7621.756.04;221.1138.6412.53115.6550.825.89;144.9829.12

11.6742.627.35.74;169.9232.7512.7247.1234.355;153.1123.0915.6223.54

18.186.39;144.9221.2616.9619.5221.756.73;140.5421.517.6419.1915.97

4.94;115.8430.2612.233.6133.773.85;101.1823.268.4620.220.54.3];

>>[center,U,obj_fcn]=fcm(x,4)

主要的结果:

U=

Columns1through7

0.0368

0.2318

0.9133

0.9276

0.4599

0.1061

0.0977

0.0828

0.4970

0.0601

0.0536

0.4735

0.7438

0.7479

0.7896

0.2392

0.0203

0.0146

0.0553

0.1350

0.1356

0.0907

0.0319

0.0062

0.0042

0.0113

0.0152

0.0187

Columns8through12

0.8561

0.0000

0.1251

0.0181

0.0441

0.1168

0.0000

0.6441

0.0691

0.8996

0.0219

0.0001

0.2090

0.9010

0.0495

0.0052

0.9998

0.0218

0.0119

0.0068

Columns13through16

从聚类结果看出,样品1(北京)在第三类的隶属度最大,所以把它归到第三类。

同属第三类的还

有样品11(浙江)。

这一类是经济发达地区。

同样的,可按隶属度对其他的各个样品进行分类。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1