系统聚类法 - 数据挖掘算法(4)

(2017-04-17 银河统计)

聚类分析又称群分析,它是研究(样品或指标)分类问题的一种多元统计方法,也是数据挖掘技术的基本方法。所谓类,通俗地说,就是指相似元素的集合。聚类分析起源于分类学,在考古的分类学中,人们主要依靠经验和专业知识来实现分类。随着生产技术和科学的发展,人类的认识不断加深,分类越来越细,要求也越来越高,有时光凭经验和专业知识是不能进行确切分类的,往往需要定性和定量分析结合起来去分类,于是数学工具逐渐被引进分类学中,形成了数值分类学。后来随着多元分析的引进,聚类分析又逐渐从数值分类学中分离出来而形成一个相对独立的分支。

聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。这里介绍常用的系统聚类法。

正如样本之间的距离可以有不同的定义方法一样(欧氏距离、曼哈顿距离、马氏距离等),类与类之间的距离也有各种定义。例如可以定义类与类之间的距离为两类之间最近样本的距离,或者定义为两类之间最远样本的距离,也可以定义为两类重心之间的距离等等。类与类之间用不同的方法定义距离,就产生了不同的系统聚类方法。常用的八种系统聚类方法,即最短距离法、最长距离法、中间距离法、重心法、类平均法、可变类平均法、可变法、离差平方和法。系统聚类分析尽管方法很多,但归类的步骤基本上是一样的,所不同的仅是类与类之间的距离有不同的定义方法,从而得到不同的计算距离的公式。

一、系统聚类分析涉及的基本问题

现有10名学生六门课程成绩样本表(附表I)如下:

样本(学生)概率论统计学英语政治数据挖掘线性代数
S1S1676373754491
S2S2746966948155
S3S3769393797127
S4S4653885856145
S5S5803948754152
S6S6728070888643
S7S7605091954264
S8S8774969508955
S9S9658950709985
S10S10784155897128

1、样本间距离及距离矩阵

以欧氏距离为例,样本S1S1S3S3之间的距离D13D13的距离为,

D13=(7667)2+(9363)2+(9373)2+(7975)2+(7144)2+(2791)278.88D13=(7667)2+(9363)2+(9373)2+(7975)2+(7144)2+(2791)278.88

样本SiSiSjSj之间的距离DijDij的距离构成的矩阵表(附表II)为,

DijDijS1S1S2S2S3S3S4S4S5S5S6S6S7S7S8S8S9S9S10S10
S1S1056.2178.8857.2553.8567.5340.9365.2565.5476.31
S2S256.21049.1744.5456.8318.6052.7749.1750.3742.13
S3S378.8849.17060.5880.6135.7267.6466.8078.8465.22
S4S457.2544.5460.58046.3051.7332.0551.2884.2338.51
S5S553.8556.8380.6146.30067.1153.9959.0684.8941.58
S6S667.5318.6035.7251.7367.11062.5450.8352.7947.26
S7S740.9352.7767.6432.0553.9962.54071.3486.8562.24
S8S865.2549.1766.8051.2859.0650.8371.34059.2053.25
S9S965.5450.3778.8484.2384.8952.7986.8559.20083.02
S10S1076.3142.1365.2238.5141.5847.2662.2453.2583.020

2、按样本间距离矩阵最小距离聚类

样本间距离矩阵为对称矩阵,即Dij=DjiDij=Dji,并且对角线距离为0,即Dii=0Dii=0。所以,样本间距离矩阵最小距离只在下三角矩阵中寻找即可。表中D26=18.60D26=18.60为最小距离,说明样本S2S2S6S6相似性最大,可以首先归为同一类。把样本S2S2S6S6做为新类,计算新类和其它类距离,然后在降维距离矩阵中选择最小距离、再归类,直至把所有样本归为一类。

3、类与类之间的距离

我们可以把每个样本看成一个类,也可以把具有某种共同特征的几个样本分为一类,如按距离最小将样本S2S2S6S6归为一类。当按某种距离公式(如欧氏距离)计算出两两样本间距离矩阵后,在距离矩阵基础上,多个样本和一个样本、或多个样本和多个样本之间的距离称为类与类之间的距离。

如果把样本S2S2S6S6分为一类、即C1{S2,S6}C1{S2,S6},再把样本S7S7S8S8S9S9分为一类、即C2{S7,S8,S9}C2{S7,S8,S9}C1C1C2C2之间的距离称为类间距离。

二、系统聚类方法

为了分析问题简便,将5名学生3门课程成绩样本(附表III)进行系统聚类分析。样本数据为,

样本(学生)概率论统计学英语
S1S1676373
S2S2746966
S3S3769393
S4S4653885
S5S5803948

样本SiSiSjSj之间的距离DijDij的距离构成的矩阵表(附表IV)为,

DijDijS1S1S2S2S3S3S4S4S5S5
S1S1
S2S256.21
S3S378.8849.17
S4S457.2544.5460.58
S5S553.8556.8380.6146.30

1、最短距离法

根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本S2S2S4S4归为一类C1C1。在矩阵表中将C1C1设置为第1行第1列,划去S2S2S4S4对应行列,并计算C1C1和其它样本或类之间的最短距离,得矩阵表如下,

DijDijC1(2,4)C1(2,4)S1S1S3S3S5S5
C1(2,4)C1(2,4)
S1S156.21
S3S349.1778.88
S5S546.3053.8580.61

表中类C1C1和样本S1S1之间的最短距离为,min{D12,D14}=min{56.21,57.25}=56.21min{D12,D14}=min{56.21,57.25}=56.21C1C1和其它样本之间的最短距离同理。

现在距离矩阵中C1C1S5S5最小距离为46.30,将两样本聚类为C2(2,4,5)C2(2,4,5),在矩阵表中将C2C2设置为第1行第1列,划去C1C1S5S5对应行列,并计算C2C2和其它样本或类之间的最短距离,得矩阵表如下,

DijDijC2(2,4,5)C2(2,4,5)S1S1S3S3
C2(2,4,5)C2(2,4,5)
S1S153.85
S3S349.1778.88

表中C2(2,4,5)C2(2,4,5)S1S1最短距离为,min{D12,D14,D15}=min{56.21.57.25,53.85}=53.85min{D12,D14,D15}=min{56.21.57.25,53.85}=53.85

按最小距离49.17将C2(2,4,5)C2(2,4,5)S3S3聚类为C3(2,3,4,5)C3(2,3,4,5)

DijDijC3(2,3,4,5)C3(2,3,4,5)S1S1
C3(2,3,4,5)C3(2,3,4,5)
S1S153.85

表中C3(2,3,4,5)C3(2,3,4,5)S1S1最短距离为,min{D12,D13,D14,D15}=min{56.21,78.88,57.25,53.85}=53.85min{D12,D13,D14,D15}=min{56.21,78.88,57.25,53.85}=53.85

最后,C3(2,3,4,5)C3(2,3,4,5)S1S1聚为一类。

上述并类过程可用下图表达,

2、最长距离法

最长距离和最短距离方法的唯一区别是取类间各样本距离集合的最大值。例如,类C1(S2,S6)C1(S2,S6)C2(S8,S9,S10)C2(S8,S9,S10)之间的距离矩阵为,

DijDijS8S8S9S9S10S10
S2S249.1750.3742.13
S6S650.8352.7947.26

距离矩阵中最大距离为52.79,最小距离为42.13。运用最短距离法取最短距离42.13,而用最长距离法则取最大距离52.79。

根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本S2S2S4S4归为一类C1C1。在矩阵表中将C1C1设置为第1行第1列,划去S2S2S4S4对应行列,并计算C1C1和其它样本或类之间的最长距离,得矩阵表如下,

DijDijC1(2,4)C1(2,4)S1S1S3S3S5S5
C1(2,4)C1(2,4)
S1S157.25
S3S360.5878.88
S5S556.8353.8580.61

C1C1和样本S1S1之间的最长距离为,max{D12,D14}=max{56.21,57.25}=57.25max{D12,D14}=max{56.21,57.25}=57.25C1C1。其它样本之间的最长距离同理。

按最小距离53.85将S1S1S5S5聚类为C2(1,5)C2(1,5)

DijDijC2(1,5)C2(1,5)C1(2,4)C1(2,4)S3S3
C2(1,5)C2(1,5)
C1(2,4)C1(2,4)57.25
S3S380.6160.58

C2C2和类C1C1之间的最长距离为,max{D12,D14,D52,D54}=max{56.21,57.25,56.83,46.30}=57.25max{D12,D14,D52,D54}=max{56.21,57.25,56.83,46.30}=57.25C2C2S3S3最长距离为,max{D31,D35}=max{78.88,80.61}=80.61max{D31,D35}=max{78.88,80.61}=80.61

按最小距离57.25将C1C1C2C2聚类为C3(1,2,4,5)C3(1,2,4,5)

DijDijC3(1,2,4,5)C3(1,2,4,5)S3S3
C3(1,2,4,5)C3(1,2,4,5)
S3S380.61

上述并类过程可用下图表达,

3、中间距离法

类间中间距离采用“二和一”方式逐渐包含不同数量样本的类合为一类(这里为类GrGr)。如果在某一步将类GpGp与类GqGq合并为GrGr,任一类GkGkGrGr的中间距离公式为:

Dkr=D2kp2+D2kq2+β×D2pq14β0Dkr=D2kp2+D2kq2+β×D2pq14β0

例如,设β=14β=14,样本S2S2S6S6为一类CrCr,和样本S7S7的中间距离为,

D7r=D2272+D2672D2264=52.7722+62.542218.6024=57.11D7r=D2272+D2672D2264=52.7722+62.542218.6024=57.11

β=14β=14时,由初等几何知DkrDkr就是上面三角形的中线。由于中间距离公式中的量都是距离的平方,为了计算方便,可将距离矩阵(附表IV)各距离换算为平方。转换后距离矩阵如下,

DijDijS1S1S2S2S3S3S4S4S5S5
S1S1
S2S23159.56
S3S36222.052417.69
S4S43277.561983.813669.94
S5S52899.823229.656497.972143.69

按距离最小(最小距离平方为1983.81)将样本S2S2S4S4归为一类CrCr。在矩阵表中将CrCr设置为第1行第1列,划去S2S2S4S4对应行列,并计算CrCr和其它样本或类之间的中间距离,得矩阵表如下,

DijDijCr(2,4)Cr(2,4)S1S1S3S3S5S5
Cr(2,4)Cr(2,4)
S1S12722.61
S3S32547.866222.05
S5S52190.722899.826497.97

表中,按中间距离公式,

D21r=D2122+D2142D2244=3159.562+3277.5621983.814=2722.61D21r=D2122+D2142D2244=3159.562+3277.5621983.814=2722.61

D23r=D2322+D2342D2244=2417.692+3669.9421983.814=2547.86D23r=D2322+D2342D2244=2417.692+3669.9421983.814=2547.86

D25r=D2522+D2542D2244=3229.652+2143.6921983.814=2190.72D25r=D2522+D2542D2244=3229.652+2143.6921983.814=2190.72

按最小距离平方2190.72将Cr(2,4)Cr(2,4)S5S5聚类为Cs(2,4,5)Cs(2,4,5)

DijDijCs(2,4,5)Cs(2,4,5)S1S1S3S3
Cr(2,4,5)Cr(2,4,5)
S1S12263.54
S3S33975.246222.05

表中,按中间距离公式,

D21s=D21r2+D2152D25r4=2722.612+2899.8222190.724=2263.54D21s=D21r2+D2152D25r4=2722.612+2899.8222190.724=2263.54

D23s=D23r2+D2352D25r4=2547.862+6497.9722190.724=3975.24D23s=D23r2+D2352D25r4=2547.862+6497.9722190.724=3975.24

按最小距离平方2263.54将Cs(2,4,5)Cs(2,4,5)S1S1聚类为Ct(1,2,4,5)Ct(1,2,4,5)

DijDijCt(1,2,4,5)Ct(1,2,4,5)S3S3
Ct(1,2,4,5)Ct(1,2,4,5)
S3S36222.05

上述并类过程可用下图表达,

4、重心法

根据(附表I)数据,利用重心法计算类C1{S2,S6}C1{S2,S6}C2{S8,S9,S10}C2{S8,S9,S10}之间的距离,只需计算出各个类的重心坐标,然后计算重心坐标的欧氏距离或其它距离。

样本S2(74,69,66,94,81,55)S2(74,69,66,94,81,55)S6(72,80,70,88,86,43)S6(72,80,70,88,86,43)的重心为,

¯Sr=(74+722,69+802,66+702,94+882,81+862,55+432)=(73,74.5,68,91,83.5,49)¯¯¯¯Sr=(74+722,69+802,66+702,94+882,81+862,55+432)=(73,74.5,68,91,83.5,49)

样本S8(77,49,69,50,89,55)S8(77,49,69,50,89,55)S9(65,89,50,70,99,85)S9(65,89,50,70,99,85)S10(78,41,55,89,71,28)S10(78,41,55,89,71,28)的重心为,

¯Ss=(77+65+783,49+89+413,69+50+553,50+70+893,89+99+713,55+85+283)=(73.33,59.67,58,69.67,83.33,56)¯¯¯¯Ss=(77+65+783,49+89+413,69+50+553,50+70+893,89+99+713,55+85+283)=(73.33,59.67,58,69.67,83.33,56)

两个重心之间的欧氏距离为,

¯Drs=(7373.33)2+(74.559.67)2+(6858)2+(9169.67)2+(83.583.33)2+(4956)2=28.706¯¯¯¯¯Drs=(7373.33)2+(74.559.67)2+(6858)2+(9169.67)2+(83.583.33)2+(4956)2=28.706

根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本S2S2S4S4归为一类CrCr。在矩阵表中将CrCr设置为第1行第1列,划去S2S2S4S4对应行列,并计算CrCr和其它样本或类之间的重心距离,得矩阵表如下,

DijDijCr(2,4)Cr(2,4)S1S1S3S3S5S5
Cr(2,4)Cr(2,4)
S1S110.14
S3S343.6978.88
S5S532.8153.8580.61

表中,类CrCr的重心坐标为,

(74+652,69+382,66+852)=(69.5,53.5,75.5)(74+652,69+382,66+852)=(69.5,53.5,75.5)

CrCr重心和样本S1S1之间的欧氏距离为,

¯D1r=(69.567)2+(53.563)2+(75.573)2=10.14¯¯¯¯¯D1r=(69.567)2+(53.563)2+(75.573)2=10.14

和其它样本之间的重心距离同理。

按最小距离10.14将Cr(2,4)Cr(2,4)S1S1聚类为Cs(1,2,4)Cs(1,2,4)

DijDijCs(1,2,4)Cs(1,2,4)S3S3S5S5
Cs(1,2,4)Cs(1,2,4)
S3S341.35
S5S533.9480.61

表中,类CsCs的重心坐标为,

(74+65+673,69+38+633,66+85+733)=(68.67,56.67,74.67)(74+65+673,69+38+633,66+85+733)=(68.67,56.67,74.67)

CsCs和样本S3S3S5S5之间重心的欧氏距离为,

¯D3s=(68.6776)2+(56.6793)2+(74.6793)2=41.35¯¯¯¯¯D3s=(68.6776)2+(56.6793)2+(74.6793)2=41.35

¯D5s=(68.6780)2+(56.6739)2+(74.6748)2=33.94¯¯¯¯¯D5s=(68.6780)2+(56.6739)2+(74.6748)2=33.94

按最小距离33.94将Cs(1,2,4)Cs(1,2,4)S5S5聚类为Ct(1,2,4,5)Ct(1,2,4,5)

DijDijCt(1,2,4,5)Ct(1,2,4,5)S3S3
Ct(1,2,4,5)Ct(1,2,4,5)
S3S341.35

上述并类过程可用下图表达,

如果最初样品之间的距离采用欧氏距离,重心法聚类到某一步, 类GpGpGqGq分别有样本npnpnqnq个,将GpGpGqGq合并为GrGr,则GrGr内样本个数为nr=np+nqnr=np+nq,某一类nknk与新类GrGr的距离为,

Dkr=npnrD2kp+nqnrD2kqnpnrnqnrD2pqDkr=npnrD2kp+nqnrD2kqnpnrnqnrD2pq

5、类平均法

当聚类到某一步时,类GpGpGqGq分别有样本npnpnqnq个,将GpGpGqGq合并为GrGr,则GrGr内样本个数为nr=np+nqnr=np+nq,某一类nk与新类Gr的类平均距离公式为,

Dkr=npnrD2kp+nqnrD2kq

根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本S2S4归为一类Cr。在矩阵表中将Cr设置为第1行第1列,划去S2S4对应行列,并计算Cr和其它样本或类之间的类平均距离,得矩阵表如下,

DijCr(2,4)S1S3S5
Cr(2,4)
S156.73
S355.1578.88
S551.8353.8580.61

表中,由类平均距离公式,

D1r=D2122+D2142=56.2122+57.2522=56.73

D3r=D2322+D2342=49.1722+60.5822=55.15

D5r=D2522+D2542=56.8322+46.3022=51.83

按最小距离51.83将Cr(2,4)S5聚类为Cs(2,4,5)

DijCs(2,4,5)S1S3
Cs(2,4,5)
S155.79
S364.7678.88

表中,

D1s=2D21r3+D2153=2×56.7323+53.8523=55.79

D3s=2D23r3+D2353=2×55.1523+80.6123=64.76

按最小距离55.79将Cs(2,4,5)S1聚类为Ct(1,2,4,5)

DijCt(1,2,4,5)S3
Ct(1,2,4,5)
S378.88

上述并类过程可用下图表达,

6、可变类平均法

由于类平均法公式中没有反映GpGq之间距离Dpq的影响,所以给出可变类平均法。此法定义两类之间的距离同上,只是将任一类Gk与新类Gr的距离改为如下形式:

Dkr=npnr(1β)D2kp+nqnr(1β)D2kq+βDpq

其中β是可变的且β<1

这里设β=14,根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本S2S4归为一类Cr。在矩阵表中将Cr设置为第1行第1列,划去S2S4对应行列,并计算Cr和其它样本或类之间的类平均距离,得矩阵表如下,

DijCr(2,4)S1S3S5
Cr(2,4)
S159.39
S357.5278.88
S553.5053.8580.61

表中,

D1r=12(1+14)D212+12(1+14)D21414D24=58×56.212+58×57.2521444.542=59.39

D3r=12(114)D232+12(114)D23414D24=58×49.172+58×60.58214×44.542=57.52

D5r=12(114)D252+12(114)D25414D24=58×56.832+58×46.30214×44.542=53.50

按最小距离53.50将Cr(2,4)S5聚类为Cs(2,4,5)

DijCs(2,4,5)S1S3
Cs(2,4,5)
S158.58
S368.9178.88

表中,

D1s=23(1+14)D21r+13(1+14)D21514D5r=56×59.392+512×53.85214×53.502=58.58

D3s=23(1+14)D23r+13(1+14)D23514D5r=56×57.522+512×80.61214×53.502=68.91

按最小距离58.58将Cs(2,4,5)S1聚类为Ct(1,2,4,5)

DijCt(1,2,4,5)S3
Ct(1,2,4,5)
S368.91

上述并类过程可用下图表达,

7、可变法

如果在某一步将类Gp与类Gq合并为Gr,任一类GkGr的中间距离公式为:

Dkr=1β2(D2kp+D2kq)+βD2pq

其中β是可变的且β<1。显然在可变类平均法中取npnr=nqnr=12,即为上式。可变类平均法与可变法的分类效果与 的选择关系极大,如果接近1,一般分类效果不好.在实际应用中β常取负值。下面的计算取β=14

根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本S2S4归为一类Cr。在矩阵表中将Cr设置为第1行第1列,划去S2S4对应行列,并计算Cr和其它样本或类之间的可变距离,得矩阵表如下,

DijCr(2,4)S1S3S5
Cr(2,4)
S159.39
S357.5278.88
S553.5053.8580.61

表中,

D1r=1+142(D212+D214)+βD24=58(56.212+57.252)14×44.542=59.39

D3r=1+142(D232+D234)+βD24=58(49.172+60.582)14×44.542=57.52

D5r=1+142(D252+D254)+βD24=58(56.832+46.302)14×44.542=53.50

按最小距离53.50将Cr(2,4)S5聚类为Cs(2,4,5)

DijCs(2,4,5)S1S3
Cs(2,4,5)
S157.46
S373.5878.88

表中,

D1s=1+142(D21r+D215)+βD5r=58(59.392+53.852)14×53.502=57.46

D3s=1+142(D23r+D235)+βD5r=58(57.522+80.612)14×53.502=73.58

按最小距离57.46将Cs(2,4,5)S1聚类为Ct(1,2,4,5)

DijCt(1,2,4,5)S3
Ct(1,2,4,5)
S373.58

上述并类过程可用下图表达,

8、离差平方和法

这个方法是Ward提出来的,故又称为Ward法。

设将n个样品分成k类:G1,G2,,Gk, 用X(t)i表示Gt中的第i个样品(注意X(t)i是p维向量),nt表示Gt中的样品个数,¯X(t)Gt的重心,则Gt中样品的离差平方和为:

St=nti=1(X(t)i¯X(t))τ(X(t)i¯X(t))

例如,如果把样本S2(74,69,66)S4(65,38,85)归为一类Gr,其重心坐标为

Gr(74+652,69+382,66+852)=Gr(69.5,53.5,75.5)

Gr的离差平方和为,

Sr=[(7469.5)2+(6569.5)2]+[(6953.5)2+(3853.5)2]+[(6675.5)2+(8575.5)2]=701.5

根据(附表III),交叉样本离差平方和矩阵表为,

DijS1S2S3S4S5
S267
S3690.5654.5
S4386.5701.51605
S56856302478.5797.5

按最小离差平方和67将S1S2聚类为Cr(1,2)

DijCr(1,2)S3S4S5
Cr(1,2)
S3874.33
S47031605
S5854.332478.5797.5

在离差平方和矩阵基础上,当聚类到某一步时,类GpGq分别有样本npnq个,将GpGq合并为Gr,则Gr内样本个数为nr=np+nq,某一类nk与新类Gr的离差平方和距离公式为,

D2kr=nk+npnr+nkD2kp+nk+nqnr+nkD2kqnknr+nkD2pq

表中,

D23r=n3+n1nr+n3D231+n3+n2nr+n3D232n3nr+n3D212=1+12+1×690.5+1+12+1×654.512+1×67=874.33

D24r=n4+n1nr+n4D241+n4+n2nr+n4D242n4nr+n4D212=1+12+1×386.5+1+12+1×701.512+1×67=703

D25r=n5+n1nr+n5D241+n5+n2nr+n5D252n5nr+n5D212=1+12+1×685+1+12+1×63012+1×67=854.33

按最小距离703将GrS4聚类为Cs(1,2,4)

DijCs(1,2,4)S3S5
Cs(1,2,4)
S31683.75
S51063.122478.5

表中,

D23s=n3+nrns+n3D23r+n3+n4ns+n3D234n3ns+n3D24r=1+23+1×874.33+1+23+1×160513+1×703=1683.75

D25s=n5+nrns+n5D25r+n5+n4ns+n5D254n5ns+n5D24r=1+23+1×854.33+1+23+1×797.513+1×703=1063.12

按最小距离1063.12将GsS5聚类为Ct(1,2,4,5)

DijCt(1,2,4,5)S3
Ct(1,2,4,5)
S31683.75

上述并类过程可用下图表达,

三、系统聚类分析代码及样例

## 函数 - 系统聚类
    webTJ.Datamining.setCluster(arrs,drrs,type,k);
##参数
    【arrs,drrs,type,k】
    【样本数组,距离矩阵,距离或相似性类型,聚类组数】

注:聚类类型type取1、2、3、4、5、6、7,分别为R语言的最短距离法(single)、最长距离法(complete)、中间距离法(median)、相似法(mcquitty)、类平均法(average)、重心法(centroid)、离差平方和法(ward);聚类组数k为期望将样本分为几组

代码样例

webTJ.clear();
var oTxt="67,63,73,75,44,91|74,69,66,94,81,55|76,93,93,79,71,27|65,38,85,85,61,45|80,39,48,75,41,52|72,80,70,88,86,43|60,50,91,95,42,64|77,49,69,50,89,55|65,89,50,70,99,85|78,41,55,89,71,28";
var oArrs=webTJ.getArrs(oTxt,"|",",");
oArrs=webTJ.Array.getQuantify(oArrs);
var oDrrs=webTJ.Datamining.getOSDiss(oArrs); 
webTJ.Datamining.setCluster(oArrs,oDrrs,1,3);

四、案例分析

1、人口文化程度聚类分析

为了更深入了解我国人口的文化程度状况,现利用1990年全国人口普查数据对全国30个省、直辖市、自治区进行聚类分析。分析选用了三个指标:(1)大学以上文化程度的人口占全部人口的比例(DXBZ);(2)初中文化程度的人口占全部人口的比例(CZBZ);(3)文盲半文盲人口占全部人口的比例(WMBZ)、分别用来反映较高、中等、较低文化程度人口的状况,原始数据如下表:

1990年全国人口普查文化程度人口比例(%)
地区序号DXBZCZBZWMBZ
北京19.330.558.7
天津24.6729.388.92
河北30.9624.6915.21
山西41.3829.2411.3
内蒙51.4825.4715.39
辽宁62.632.328.81
吉林72.1526.3110.49
黑龙江82.1428.4610.87
上海96.5331.5911.04
江苏101.4726.4317.23
浙江111.1723.7417.46
安徽120.8819.9724.43
福建131.2316.8715.63
江西140.9918.8416.22
山东150.9825.1816.87
河南160.8526.5516.15
河北171.5723.1615.79
湖南181.1422.5712.1
广东191.3423.0410.45
广西200.7919.1410.61
海南211.2422.5313.97
四川220.9621.6516.24
贵州230.7814.6524.27
云南240.8113.8525.44
西藏250.573.8544.43
陕西261.6724.3617.62
甘肃271.116.8527.93
青海281.4917.7627.7
宁夏291.6120.2722.06
新疆301.8520.6612.75

数据处理过程如下,

I、将表格中数据部分转换为格式字符串(列由“,”分割、行由“|”分割)

9.3,30.55,8.7|4.67,29.38,8.92|0.96,24.69,15.21|1.38,29.24,11.3|1.48,25.47,15.39|2.6,32.32,8.81|2.15,26.31,10.49|2.14,28.46,10.87|6.53,31.59,11.04|1.47,26.43,17.23|1.17,23.74,17.46|0.88,19.97,24.43|1.23,16.87,15.63|0.99,18.84,16.22|0.98,25.18,16.87|0.85,26.55,16.15|1.57,23.16,15.79|1.14,22.57,12.1|1.34,23.04,10.45|0.79,19.14,10.61|1.24,22.53,13.97|0.96,21.65,16.24|0.78,14.65,24.27|0.81,13.85,25.44|0.57,3.85,44.43|1.67,24.36,17.62|1.1,16.85,27.93|1.49,17.76,27.7|1.61,20.27,22.06|1.85,20.66,12.75

步骤:

a. 用鼠标全选网页表格或WORD表格中的数据;
b. 复制、粘贴(选择只保留文本粘贴)所选数据到EXCEL文档中;
c. 删除标题行、省份和序号列;
c. 复制、粘贴数据到空白WORD文档中;
d. 在WORD文档中将数据列空格替换为列分隔符,如逗号“,”(复制数据列之间空格-打开文字替换菜单-粘贴空格到查找内容文本框中-在替换为文本框中输入列分隔符-点击全部替换)
e. 在WORD文档中将数据回车换行符替换为行分隔符,如符号“|”(打开文字替换菜单-在查找内容文本框中输入“^p”-在替换为文本框中输入行分隔符-点击全部替换)

II、代码

var oTxt="9.3,30.55,8.7|4.67,29.38,8.92|0.96,24.69,15.21|1.38,29.24,11.3|1.48,25.47,15.39|2.6,32.32,8.81|2.15,26.31,10.49|2.14,28.46,10.87|6.53,31.59,11.04|1.47,26.43,17.23|1.17,23.74,17.46|0.88,19.97,24.43|1.23,16.87,15.63|0.99,18.84,16.22|0.98,25.18,16.87|0.85,26.55,16.15|1.57,23.16,15.79|1.14,22.57,12.1|1.34,23.04,10.45|0.79,19.14,10.61|1.24,22.53,13.97|0.96,21.65,16.24|0.78,14.65,24.27|0.81,13.85,25.44|0.57,3.85,44.43|1.67,24.36,17.62|1.1,16.85,27.93|1.49,17.76,27.7|1.61,20.27,22.06|1.85,20.66,12.75";
var oArrs=webTJ.getArrs(oTxt,"|",",");
oArrs=webTJ.Array.getQuantify(oArrs);
oArrs=webTJ.Datamining.getYZarrs(oArrs,1);    //数据标准
var oDrrs=webTJ.Datamining.getOSDiss(oArrs);  //欧氏距离矩阵
webTJ.Datamining.setCluster(oArrs,oDrrs,2,5); //最长距离法(complete)、聚为5类

代码解释:

a. 格式字符串导入数组并量化

var oArrs=webTJ.getArrs(oTxt,"|",","); oArrs=webTJ.Array.getQuantify(oArrs);

b. 数据标准化

var oYZarrs=webTJ.Datamining.getYZarrs(oArrs,1);

其它标准化方法参见银河统计博文:数据标准化 - 数据挖掘算法(1)

c. 计算距离矩阵

var oDrrs=webTJ.Datamining.getOSDiss(oArrs);

其它距离矩阵计算方法参见银河统计博文:相似性度量 - 数据挖掘算法(2)

d. 聚类分析

webTJ.Datamining.setCluster(oArrs,oDrrs,1,3); 

e. 结果提取

可以将结果排序的聚类样本表复制、粘贴到EXCEL。

2、根据信息基础设施的发展状况,对世界20个国家和地区进行分类

这里选取了发达国家、新兴工业化国家、拉美国家、亚洲发展中国家、转型国家等不同类型的20个国家作Q型聚类分析。描述信息基础设施的变量主要有六个:

I、 Call—每千人拥有电话线数,
II、 movecall—每千房居民蜂窝移动电话数,
III、fee—高峰时期每三分钟国际电话的成本,
IV、 Computer—每千人拥有的计算机数,
V、 mips—每千人中计算机功率《每秒百万指令》,
VI、 net—每千人互联网络户主数。数据摘自《世界竞争力报告—1997》。

20个国家信息基础设施表
IDcountrycallmovecallfeecomputermipsnet
1美国631.6161.90.364032607335.34
2日本498.4143.23.57176102236.26
3德国557.670.62.18199115719.48
4瑞典684.1281.81.42861666029.39
5瑞士64493.51.982341362122.68
6丹麦620.3248.62.562961721021.84
7新加坡498.4147.52.52841357813.49
8中国台湾469.456.13.6811969111.72
9韩国434.5733.369957951.68
10巴西81.916.33.02198760.52
11智利138.68.21.43114111.28
12墨西哥92.29.82.613117510.35
13俄罗斯174.955.122411010.48
14波兰1696.53.684017961.45
15匈牙利262.249.42.666830673.09
16马来西亚195.588.44.195327341.25
17泰国78.627.84.952216620.11
18印度13.600.306.282.00101.000.01
19法国559.1042.901.27201.0011702.004.76
20英国521.10122.500.98248.0014461.0011.91

代码

var oTxt="631.6,161.9,0.36,403,26073,35.34|498.4,143.2,3.57,176,10223,6.26|557.6,70.6,2.18,199,11571,9.48|684.1,281.8,1.4,286,16660,29.39|644,93.5,1.98,234,13621,22.68|620.3,248.6,2.56,296,17210,21.84|498.4,147.5,2.5,284,13578,13.49|469.4,56.1,3.68,119,6911,1.72|434.5,73,3.36,99,5795,1.68|81.9,16.3,3.02,19,876,0.52|138.6,8.2,1.4,31,1411,1.28|92.2,9.8,2.61,31,1751,0.35|174.9,5,5.12,24,1101,0.48|169,6.5,3.68,40,1796,1.45|262.2,49.4,2.66,68,3067,3.09|195.5,88.4,4.19,53,2734,1.25|78.6,27.8,4.95,22,1662,0.11|13.6,0.3,6.28,2,101,0.01|559.1,42.9,1.27,201,11702,4.76|521.1,122.5,0.98,248,14461,11.91|13.60,0.30,6.28,2.00,101.00,0.01|559.10,42.90,1.27,201.00,11702.00,4.76|521.10,122.50,0.98,248.00,14461.00,11.91";
var oArrs=webTJ.getArrs(oTxt,"|",",");
oArrs=webTJ.Array.getQuantify(oArrs);
var oDrrs=webTJ.Datamining.getMAHDiss(oArrs); //马氏距离矩阵
webTJ.Datamining.setCluster(oArrs,oDrrs,7,5); //离差平方和法(ward)、聚为5类
posted @   银河统计  阅读(9503)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示