第六章 聚类分析Word格式.docx

上传人:b****4 文档编号:16446304 上传时间:2022-11-23 格式:DOCX 页数:20 大小:87.30KB
下载 相关 举报
第六章 聚类分析Word格式.docx_第1页
第1页 / 共20页
第六章 聚类分析Word格式.docx_第2页
第2页 / 共20页
第六章 聚类分析Word格式.docx_第3页
第3页 / 共20页
第六章 聚类分析Word格式.docx_第4页
第4页 / 共20页
第六章 聚类分析Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

第六章 聚类分析Word格式.docx

《第六章 聚类分析Word格式.docx》由会员分享,可在线阅读,更多相关《第六章 聚类分析Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

第六章 聚类分析Word格式.docx

计算样本点之间的相似距离

另外,内部函数yy=squareform(y)表示将样本点之间的距离用矩阵的形式输出。

(3)常用的聚类方法

常用的聚类方法主要有以下几种:

最短距离法、最长距离法、中间距离法、重心法、平方和递增法等等。

(4)创建系统聚类树

假设已经得到样本点之间的距离y,可以用linkage函数创建系统聚类树,格式为:

z=linkage(y),其中z为一个包含聚类树信息的(m–1)×

3的矩阵。

例如,

z=

2.0005.0000.2

3.0004.0001.28

则,z的第一行表示第2、第5样本点连接为一个类,它们的距离为0.2,z的第二行表示第3、第4样本点连接为一个类,它们的距离为1.28。

在Matlab中创建系统聚类树的函数为:

z=linkage(y)

表示用最短距离法创建系统聚类树

z=linkage(y,‘complete’)

表示用最长距离法创建系统聚类树

z=linkage(y,‘average’)

表示用平均距离法创建系统聚类树

z=linkage(y,‘centroid’)

表示用重心距离法创建系统聚类树

z=linkage(y,‘ward’)

表示用平方和递增法创建系统聚类树

例1在Matlab中写一个名字为opt_linkage_1的M—文件:

x=[31.7;

11;

23;

22.5;

1.21;

1.11.5;

31];

y=pdist(x,'

mahal'

);

yy=squareform(y)

z=linkage(y,’centroid’)

h=dendrogram(z)

存盘后按F5键执行,得到结果:

yy=

02.38792.19831.69462.16842.2284

2.387902.60972.06160.23780.6255

2.19832.609700.63532.55222.0153

1.69462.06160.635301.97501.5106

2.16840.23782.55221.975000.6666

2.22840.62552.01531.51060.66660

0.88952.37782.98902.41722.14002.4517

z=

2.00005.00000.2378

8.00006.00000.6353

3.00004.00000.6353

1.00007.00000.8895

9.000010.00002.1063

11.000012.00002.0117

按重心距离法得到的系统聚类树为:

其中,h=dendrogram(z)表示输出聚类树形图的冰状图。

(5)根据系统聚类树创建聚类

假设已经求出系统聚类树z,我们根据z来创建聚类,使用cluster函数。

例2在Matlab中写一个名字为opt_cluster_1的M—文件:

z=linkage(y,'

centroid'

t=cluster(z,3)

程序中“t=cluster(z,3)”表示分成3个聚类,需要分成几类由人工选择。

存盘后按F5键执行,得到:

t=

3

1

2

3

即,第1个样本点、第7个样本点为第3类,第2、第5、第6样本点为第1类,第3、第4样本点为第2类。

(6)根据原始数据创建分类

在Matlab软件包中,由内部函数clusterdata对原始数据创建分类,格式有两种:

1clusterdata(x,a),其中

,表示在系统聚类树中距离小于a的样本点归结为一类;

2clusterdata(x,b),其中

是整数,表示将原始数据x分为b类。

例3在Matlab中写一个名字为opt_clusterdata_1的M—文件:

t=clusterdata(x,0.5)

z=clusterdata(x,3)

4

其中,t的结果表示距离小于0.5的样本点归结为一类,这样,共有四类,第1类:

样本点2、5;

第2类:

样本点1、7;

第3类:

样本点6;

第4类:

样本点3、4。

而z的结果表示首先约定将原始数据x分为3类,然后计算,结果如下,第1类:

样本点3、4;

样本点2、5、6。

利用内部函数clusterdata对原始数据创建分类,其缺点是不能更改距离的计算方法。

比较好的方法是分步聚类法。

(7)分步聚类法

假设有样本数据矩阵x。

第1步对于不同的距离,利用pdist函数计算样本点之间的距离

y1=pdist(x)

y2=pdist(x,‘seuclid’)

y3=pdist(x,‘mahal’)

y4=pdist(x,‘cityblock’)

第2步计算系统聚类树以及相关信息

z1=linkage(y1)

z2=linkage(y2)

z3=linkage(y3)

z4=linkage(y4)

第3步利用cophenet函数计算聚类树信息与原始数据的距离之间的相关性,这个值越大越好。

t1=cophenet(z1,y1)

t2=cophenet(z2,y2)

t3=cophenet(z3,y3)

t4=cophenet(z4,y4)

z在前y在后,顺序不能颠倒。

第4步选择具有最大的cophenet值的距离进行分类。

利用函数clusterdata(x,a)对数据x进行分类,其中

,表示在系统聚类树中距离小于a的样本点归结为一类。

例4在Matlab中写一个名字为opt_cluster_2的M—文件:

y1=pdist(x);

y2=pdist(x,'

seuclid'

y3=pdist(x,'

y4=pdist(x,'

cityblock'

z1=linkage(y1);

z2=linkage(y2);

z3=linkage(y3);

z4=linkage(y4);

a1=cophenet(z1,y1)

a2=cophenet(z2,y2)

a3=cophenet(z3,y3)

a4=cophenet(z4,y4)

a1=

0.9291

a2=

0.9238

a3=

0.9191

a4=

0.9242

结果中a1=0.9291最大,可见此例利用欧氏距离最合适。

于是,在Matlab中另写一个名字为opt_cluster_3的M—文件:

z1=linkage(y1)

z1=

2.00005.00000.2000

3.00004.00000.5000

8.00006.00000.5099

1.00007.00000.7000

11.00009.00001.2806

12.000010.00001.3454

矩阵z1的第1行表示样本点2、5为一类,在系统聚类树上的距离为0.2,其它类推。

考察矩阵z1的第3列,系统聚类树上的6个距离,可以选择0.5作为聚类分界值。

在Matlab中另写一个名字为opt_cluster_4的M—文件:

b1=cluster(z1,0.5)

b1=

结果表示首先约定将原始数据x分为4类,然后计算,结果如下,第1类:

在Mathematica软件包中,作样本点的图像如下:

第1步执行<

<

Graphics`Graphics`

第2步输入以下程序

x={{3,1.7},{1,1},{2,3},{2,2.5},{1.2,1},{1.1,1.5},{3,1}};

t1=ListPlot[x,PlotStyle->

{RGBColor[0,1,1],PointSize[0.05]}

t2=TextListPlot[x]

Show[t1,t2]

执行后得到以下图像,

 

例5现有21国森林、草原资源数据如下:

序号

国别

森林面积

(万公顷)

森林覆盖率

(%)

林木蓄积量

(亿立方米)

草原面积

1

中国

11978

12.5

93.5

31908

2

美国

28446

30.4

202

23754

日本

2501

67.2

24.8

58

4

德国

1028

28.4

14

599

5

英国

210

8.6

1.5

1147

6

法国

1458

26.7

16

1288

7

意大利

635

21.1

3.6

514

8

加拿大

32613

32.7

192.8

2385

9

澳大利亚

10700

13.9

10.5

45190

10

前苏联

92000

41.1

841.5

37370

11

捷克

458

35.8

8.9

168

12

波兰

868

27.8

11.4

405

13

匈牙利

161

17.4

2.5

129

前南斯拉夫

929

36.3

640

15

罗马尼亚

634

11.3

447

保加利亚

385

34.7

200

17

印度

6748

20.5

29

1200

18

印度尼西亚

2180

84

33.7

19

尼日利亚

1490

16.1

0.8

2090

20

墨西哥

4850

24.6

32.6

7450

21

巴西

57500

67.6

238

15900

请将这些国家分类。

我们在matlab软件包中,编写一个名字为opt_cluster_country_1的M—文件:

x=[11978,12.5,93.5,31908;

28446,30.4,202,23754;

2501,67.2,24.8,58;

1028,28.4,14,599;

210,8.6,1.5,1147;

1458,26.7,16,1288;

635,21.1,3.6,514;

32613,32.7,192.8,2385;

10700,13.9,10.5,45190;

92000,41.1,841.5,37370;

458,35.8,8.9,168;

868,27.8,11.4,405;

161,17.4,2.5,129;

929,36.3,11.4,640;

634,26.7,11.3,447;

385,34.7,2.5,200;

6748,20.5,29,1200;

2180,84,33.7,1200;

1490,16.1,0.8,2090;

4850,24.6,32.6,7450;

57500,67.6,238,15900];

存盘后按F5键,执行后得到:

0.9393

0.9470

0.9131

0.9614

其中,“a4=0.9614”最大,说明此时应用cityblock距离最好。

于是,在matlab软件包中,编写一个名字为opt_cluster_country_2的M—文件:

z4=linkage(y4)

b4=cluster(z4,0.5)

h4=dendrogram(z4)

z4=

1.0e+004*

0.00070.00150.0081

0.00110.00160.0113

0.00040.00140.0150

0.00220.00120.0277

0.00240.00250.0305

0.00230.00130.0312

0.00260.00270.0466

0.00060.00190.0860

0.00290.00180.0885

0.00280.00050.1073

0.00310.00300.1123

0.00030.00320.1489

0.00330.00170.4636

0.00340.00200.8156

0.00010.00091.4644

0.00360.00022.4748

0.00370.00082.5547

0.00380.00352.7226

0.00390.00213.6981

0.00400.00105.6600

b4=

6

13

5

10

14

16

7

8

11

9

12

15

即,共分为16类,分类结果为:

第1类:

意大利、罗马尼亚

德国、前南斯拉夫

捷克、保加利亚

法国、尼日利亚

第5类:

日本、

第6类:

中国、澳大利亚

第7类:

第8类:

第9类:

第10类:

第11类:

第12类:

第13类:

第14类:

第15类:

第16类:

例6根据调查得到某地42所学校的数据如下:

单位

占地面积(

建筑面积(

教师总数

学生总数

学校1

2088

562.05

42

434

学校2

10344.8

4755

76

1279

学校3

2700

4100

56

820

学校4

3967

3751

67

990

学校5

5850.24

6173.25

78

1241

学校6

1803.26

5224.99

72

1180

学校7

2165

2391

47

671

学校8

3838

3815

104

1400

学校9

2268

8011

800

学校10

9809

3000

90

1597

学校11

2996

3889

61

745

学校12

2886

3372

65

1722

学校13

32000

18000

2000

学校14

11842

11106

143

2006

学校15

7610

5310

69

790

学校16

20518

30867

188

2658

学校17

7860

8313

77

852

学校18

5570

5579

103

1350

学校19

19600

8600

108

学校20

13351.47

8784

190

2580

学校21

9534

12446

142

1800

学校22

42080

19500

187

2609

学校23

2100

62

332

学校24

7928

7024

96

1267

学校25

26000

15000

160

学校26

12371

12173

128

1634

学校27

8561

6556

102

714

学校28

163

2904

学校29

18850

8332

85

1196

学校30

25244

10535

125

学校31

10000

8500

3700

学校32

15037

9523

133

1500

学校33

6579

7857

2285

学校34

30094

25027

175

2623

学校35

4238.73

8522.38

130

学校36

10846

8377

2300

学校37

27282.25

21614.04

2400

学校38

40000

13000

151

学校39

53333.3

16000

224

2132

学校40

60000

50000

360

学校41

100000

30000

1100

学校42

173333

420

2552

试将这些学校分类。

我们在matlab软件包中,编写一个名字为opt_school_1的M—文件:

x=[2088,562.05,42,434;

10344.8,4755,76,1279;

2700,4100,56,820;

3967,3751,67,990;

5850.24,6173.25,78,1241;

1803.26,5224.99,72,1180;

2165,2391,47,671;

3838,3815,104,1400;

2268,8011,56,800;

9809,3000,90,1597;

2996,3889,61,745;

2886,3372,65,1722;

32000,18000,200,2000;

11842,11106,143,2006;

7610,5310,69,790;

20518,30867,188,2658;

7860,8313,77,852;

5570,5579,103,1350;

19600,8600,108,1490;

13351.47,8784,190,2580;

9534,12446,142,1800;

42080,19500,187,2609;

2000,2100,62,332;

7928,7024,96,1267;

26000,15000,160,2000;

12371,12173,128,1634;

8561,6556,102,714;

11842,11106,163,29

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

当前位置:首页 > 表格模板 > 合同协议

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

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