系统聚类法 - 数据挖掘算法(4)
(2017-04-17 银河统计)
聚类分析又称群分析,它是研究(样品或指标)分类问题的一种多元统计方法,也是数据挖掘技术的基本方法。所谓类,通俗地说,就是指相似元素的集合。聚类分析起源于分类学,在考古的分类学中,人们主要依靠经验和专业知识来实现分类。随着生产技术和科学的发展,人类的认识不断加深,分类越来越细,要求也越来越高,有时光凭经验和专业知识是不能进行确切分类的,往往需要定性和定量分析结合起来去分类,于是数学工具逐渐被引进分类学中,形成了数值分类学。后来随着多元分析的引进,聚类分析又逐渐从数值分类学中分离出来而形成一个相对独立的分支。
聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。这里介绍常用的系统聚类法。
正如样本之间的距离可以有不同的定义方法一样(欧氏距离、曼哈顿距离、马氏距离等),类与类之间的距离也有各种定义。例如可以定义类与类之间的距离为两类之间最近样本的距离,或者定义为两类之间最远样本的距离,也可以定义为两类重心之间的距离等等。类与类之间用不同的方法定义距离,就产生了不同的系统聚类方法。常用的八种系统聚类方法,即最短距离法、最长距离法、中间距离法、重心法、类平均法、可变类平均法、可变法、离差平方和法。系统聚类分析尽管方法很多,但归类的步骤基本上是一样的,所不同的仅是类与类之间的距离有不同的定义方法,从而得到不同的计算距离的公式。
一、系统聚类分析涉及的基本问题
现有10名学生六门课程成绩样本表(附表I)如下:
| 样本(学生) | 概率论 | 统计学 | 英语 | 政治 | 数据挖掘 | 线性代数 |
|---|---|---|---|---|---|---|
| S_1 | 67 | 63 | 73 | 75 | 44 | 91 |
| S_2 | 74 | 69 | 66 | 94 | 81 | 55 |
| S_3 | 76 | 93 | 93 | 79 | 71 | 27 |
| S_4 | 65 | 38 | 85 | 85 | 61 | 45 |
| S_5 | 80 | 39 | 48 | 75 | 41 | 52 |
| S_6 | 72 | 80 | 70 | 88 | 86 | 43 |
| S_7 | 60 | 50 | 91 | 95 | 42 | 64 |
| S_8 | 77 | 49 | 69 | 50 | 89 | 55 |
| S_9 | 65 | 89 | 50 | 70 | 99 | 85 |
| S_{10} | 78 | 41 | 55 | 89 | 71 | 28 |
1、样本间距离及距离矩阵
以欧氏距离为例,样本S_1和S_3之间的距离D_{13}的距离为,
样本S_i和S_j之间的距离D_{ij}的距离构成的矩阵表(附表II)为,
| D_{ij} | S_1 | S_2 | S_3 | S_4 | S_5 | S_6 | S_7 | S_8 | S_9 | S_{10} |
|---|---|---|---|---|---|---|---|---|---|---|
| S_1 | 0 | 56.21 | 78.88 | 57.25 | 53.85 | 67.53 | 40.93 | 65.25 | 65.54 | 76.31 |
| S_2 | 56.21 | 0 | 49.17 | 44.54 | 56.83 | 18.60 | 52.77 | 49.17 | 50.37 | 42.13 |
| S_3 | 78.88 | 49.17 | 0 | 60.58 | 80.61 | 35.72 | 67.64 | 66.80 | 78.84 | 65.22 |
| S_4 | 57.25 | 44.54 | 60.58 | 0 | 46.30 | 51.73 | 32.05 | 51.28 | 84.23 | 38.51 |
| S_5 | 53.85 | 56.83 | 80.61 | 46.30 | 0 | 67.11 | 53.99 | 59.06 | 84.89 | 41.58 |
| S_6 | 67.53 | 18.60 | 35.72 | 51.73 | 67.11 | 0 | 62.54 | 50.83 | 52.79 | 47.26 |
| S_7 | 40.93 | 52.77 | 67.64 | 32.05 | 53.99 | 62.54 | 0 | 71.34 | 86.85 | 62.24 |
| S_8 | 65.25 | 49.17 | 66.80 | 51.28 | 59.06 | 50.83 | 71.34 | 0 | 59.20 | 53.25 |
| S_9 | 65.54 | 50.37 | 78.84 | 84.23 | 84.89 | 52.79 | 86.85 | 59.20 | 0 | 83.02 |
| S_{10} | 76.31 | 42.13 | 65.22 | 38.51 | 41.58 | 47.26 | 62.24 | 53.25 | 83.02 | 0 |
2、按样本间距离矩阵最小距离聚类
样本间距离矩阵为对称矩阵,即D_{ij}=D_{ji},并且对角线距离为0,即D_{ii}=0。所以,样本间距离矩阵最小距离只在下三角矩阵中寻找即可。表中D_{26}=18.60为最小距离,说明样本S_2和S_6相似性最大,可以首先归为同一类。把样本和做为新类,计算新类和其它类距离,然后在降维距离矩阵中选择最小距离、再归类,直至把所有样本归为一类。
3、类与类之间的距离
我们可以把每个样本看成一个类,也可以把具有某种共同特征的几个样本分为一类,如按距离最小将样本和归为一类。当按某种距离公式(如欧氏距离)计算出两两样本间距离矩阵后,在距离矩阵基础上,多个样本和一个样本、或多个样本和多个样本之间的距离称为类与类之间的距离。
如果把样本和分为一类、即C_1\{S_2,S_6\},再把样本S_7、S_8和S_9分为一类、即C_2\{S_7,S_8,S_9\}。C_1和C_2之间的距离称为类间距离。
二、系统聚类方法
为了分析问题简便,将5名学生3门课程成绩样本(附表III)进行系统聚类分析。样本数据为,
| 样本(学生) | 概率论 | 统计学 | 英语 |
|---|---|---|---|
| S_1 | 67 | 63 | 73 |
| S_2 | 74 | 69 | 66 |
| S_3 | 76 | 93 | 93 |
| S_4 | 65 | 38 | 85 |
| S_5 | 80 | 39 | 48 |
样本和之间的距离的距离构成的矩阵表(附表IV)为,
| D_{ij} | S_1 | S_2 | S_3 | S_4 | S_5 |
|---|---|---|---|---|---|
| S_1 | |||||
| S_2 | 56.21 | ||||
| S_3 | 78.88 | 49.17 | |||
| S_4 | 57.25 | 44.54 | 60.58 | ||
| S_5 | 53.85 | 56.83 | 80.61 | 46.30 |
1、最短距离法
根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本和S_4归为一类。在矩阵表中将设置为第1行第1列,划去、对应行列,并计算和其它样本或类之间的最短距离,得矩阵表如下,
| D_{ij} | C_1(2,4) | S_1 | S_3 | S_5 |
|---|---|---|---|---|
| C_1(2,4) | ||||
| S_1 | 56.21 | |||
| S_3 | 49.17 | 78.88 | ||
| S_5 | 46.30 | 53.85 | 80.61 |
表中类和样本之间的最短距离为,min\{D_{12},D_{14}\}=min\{56.21,57.25\}=56.21,和其它样本之间的最短距离同理。
现在距离矩阵中和S_5最小距离为46.30,将两样本聚类为C_2(2,4,5),在矩阵表中将设置为第1行第1列,划去、对应行列,并计算和其它样本或类之间的最短距离,得矩阵表如下,
| D_{ij} | C_2(2,4,5) | S_1 | S_3 |
|---|---|---|---|
| C_2(2,4,5) | |||
| S_1 | 53.85 | ||
| S_3 | 49.17 | 78.88 |
表中和最短距离为,min\{D_{12},D_{14},D_{15}\}=min\{56.21.57.25,53.85\}=53.85。
按最小距离49.17将、聚类为C_3(2,3,4,5),
| D_{ij} | C_3(2,3,4,5) | S_1 |
|---|---|---|
| C_3(2,3,4,5) | ||
| S_1 | 53.85 |
表中和最短距离为,min\{D_{12},D_{13},D_{14},D_{15}\}=min\{56.21,78.88,57.25,53.85\}=53.85。
最后,和聚为一类。
上述并类过程可用下图表达,

2、最长距离法
最长距离和最短距离方法的唯一区别是取类间各样本距离集合的最大值。例如,类C_1(S_2,S_6)和C_2(S_8,S_9,S_{10})之间的距离矩阵为,
| D_{ij} | S_8 | S_9 | S_{10} |
|---|---|---|---|
| S_2 | 49.17 | 50.37 | 42.13 |
| S_6 | 50.83 | 52.79 | 47.26 |
距离矩阵中最大距离为52.79,最小距离为42.13。运用最短距离法取最短距离42.13,而用最长距离法则取最大距离52.79。
根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本和归为一类。在矩阵表中将设置为第1行第1列,划去、对应行列,并计算和其它样本或类之间的最长距离,得矩阵表如下,
| D_{ij} | C_1(2,4) | S_1 | S_3 | S_5 |
|---|---|---|---|---|
| C_1(2,4) | ||||
| S_1 | 57.25 | |||
| S_3 | 60.58 | 78.88 | ||
| S_5 | 56.83 | 53.85 | 80.61 |
类和样本之间的最长距离为,max\{D_{12},D_{14}\}=max\{56.21,57.25\}=57.25,。其它样本之间的最长距离同理。
按最小距离53.85将、聚类为C_2(1,5),
| D_{ij} | C_2(1,5) | C_1(2,4) | S_3 |
|---|---|---|---|
| C_2(1,5) | |||
| C_1(2,4) | 57.25 | ||
| S_3 | 80.61 | 60.58 |
类和类之间的最长距离为,max\{D_{12},D_{14},D_{52},D_{54}\}=max\{56.21,57.25,56.83,46.30\}=57.25。和最长距离为,max\{D_{31},D_{35}\}=max\{78.88,80.61\}=80.61。
按最小距离57.25将、聚类为C_3(1,2,4,5),
| D_{ij} | C_3(1,2,4,5) | S_3 |
|---|---|---|
| C_3(1,2,4,5) | ||
| S_3 | 80.61 |
上述并类过程可用下图表达,

3、中间距离法
类间中间距离采用“二和一”方式逐渐包含不同数量样本的类合为一类(这里为类G_r)。如果在某一步将类G_p与类G_q合并为,任一类G_k和的中间距离公式为:
例如,设\beta=-\frac{1}{4},样本和为一类C_r,和样本的中间距离为,

当时,由初等几何知D_{kr}就是上面三角形的中线。由于中间距离公式中的量都是距离的平方,为了计算方便,可将距离矩阵(附表IV)各距离换算为平方。转换后距离矩阵如下,
| D_{ij} | S_1 | S_2 | S_3 | S_4 | S_5 |
|---|---|---|---|---|---|
| S_1 | |||||
| S_2 | 3159.56 | ||||
| S_3 | 6222.05 | 2417.69 | |||
| S_4 | 3277.56 | 1983.81 | 3669.94 | ||
| S_5 | 2899.82 | 3229.65 | 6497.97 | 2143.69 |
按距离最小(最小距离平方为1983.81)将样本和归为一类。在矩阵表中将设置为第1行第1列,划去、对应行列,并计算和其它样本或类之间的中间距离,得矩阵表如下,
| D_{ij} | C_r(2,4) | S_1 | S_3 | S_5 |
|---|---|---|---|---|
| C_r(2,4) | ||||
| S_1 | 2722.61 | |||
| S_3 | 2547.86 | 6222.05 | ||
| S_5 | 2190.72 | 2899.82 | 6497.97 |
表中,按中间距离公式,
按最小距离平方2190.72将C_r(2,4)、聚类为C_s(2,4,5),
| D_{ij} | C_s(2,4,5) | S_1 | S_3 |
|---|---|---|---|
| C_r(2,4,5) | |||
| S_1 | 2263.54 | ||
| S_3 | 3975.24 | 6222.05 |
表中,按中间距离公式,
按最小距离平方2263.54将、聚类为C_t(1,2,4,5),
| D_{ij} | C_t(1,2,4,5) | S_3 |
|---|---|---|
| C_t(1,2,4,5) | ||
| S_3 | 6222.05 |
上述并类过程可用下图表达,

4、重心法
根据(附表I)数据,利用重心法计算类和C_2\{S_8,S_9,S_{10}\}之间的距离,只需计算出各个类的重心坐标,然后计算重心坐标的欧氏距离或其它距离。
样本S_2(74,69,66,94,81,55)和S_6(72,80,70,88,86,43)的重心为,
样本S_8(77,49,69,50,89,55)、S_9(65,89,50,70,99,85)和S_{10}(78,41,55,89,71,28)的重心为,
两个重心之间的欧氏距离为,
根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本和归为一类。在矩阵表中将设置为第1行第1列,划去、对应行列,并计算和其它样本或类之间的重心距离,得矩阵表如下,
| D_{ij} | C_r(2,4) | S_1 | S_3 | S_5 |
|---|---|---|---|---|
| C_r(2,4) | ||||
| S_1 | 10.14 | |||
| S_3 | 43.69 | 78.88 | ||
| S_5 | 32.81 | 53.85 | 80.61 |
表中,类的重心坐标为,
类重心和样本之间的欧氏距离为,
和其它样本之间的重心距离同理。
按最小距离10.14将、聚类为C_s(1,2,4),
| D_{ij} | C_s(1,2,4) | S_3 | S_5 |
|---|---|---|---|
| C_s(1,2,4) | |||
| S_3 | 41.35 | ||
| S_5 | 33.94 | 80.61 |
表中,类C_s的重心坐标为,
类和样本、之间重心的欧氏距离为,
按最小距离33.94将、聚类为,
| D_{ij} | C_t(1,2,4,5) | S_3 |
|---|---|---|
| C_t(1,2,4,5) | ||
| S_3 | 41.35 |
上述并类过程可用下图表达,

如果最初样品之间的距离采用欧氏距离,重心法聚类到某一步, 类和分别有样本n_{_p}和n_{_q}个,将和合并为,则内样本个数为n_{_r}=n_{_p}+n_{_q},某一类n_{_k}与新类的距离为,
5、类平均法
当聚类到某一步时,类和分别有样本和个,将和合并为,则内样本个数为,某一类与新类的类平均距离公式为,
根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本和归为一类。在矩阵表中将设置为第1行第1列,划去、对应行列,并计算和其它样本或类之间的类平均距离,得矩阵表如下,
| D_{ij} | C_r(2,4) | S_1 | S_3 | S_5 |
|---|---|---|---|---|
| C_r(2,4) | ||||
| S_1 | 56.73 | |||
| S_3 | 55.15 | 78.88 | ||
| S_5 | 51.83 | 53.85 | 80.61 |
表中,由类平均距离公式,
按最小距离51.83将、聚类为,
| D_{ij} | C_s(2,4,5) | S_1 | S_3 |
|---|---|---|---|
| C_s(2,4,5) | |||
| S_1 | 55.79 | ||
| S_3 | 64.76 | 78.88 |
表中,
按最小距离55.79将、聚类为,
| D_{ij} | C_t(1,2,4,5) | S_3 |
|---|---|---|
| C_t(1,2,4,5) | ||
| S_3 | 78.88 |
上述并类过程可用下图表达,

6、可变类平均法
由于类平均法公式中没有反映和之间距离D_{pq}的影响,所以给出可变类平均法。此法定义两类之间的距离同上,只是将任一类与新类的距离改为如下形式:
其中\beta是可变的且\beta<1。
这里设,根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本和归为一类。在矩阵表中将设置为第1行第1列,划去、对应行列,并计算和其它样本或类之间的类平均距离,得矩阵表如下,
| D_{ij} | C_r(2,4) | S_1 | S_3 | S_5 |
|---|---|---|---|---|
| C_r(2,4) | ||||
| S_1 | 59.39 | |||
| S_3 | 57.52 | 78.88 | ||
| S_5 | 53.50 | 53.85 | 80.61 |
表中,
按最小距离53.50将、聚类为,
| D_{ij} | C_s(2,4,5) | S_1 | S_3 |
|---|---|---|---|
| C_s(2,4,5) | |||
| S_1 | 58.58 | ||
| S_3 | 68.91 | 78.88 |
表中,
按最小距离58.58将、聚类为,
| D_{ij} | C_t(1,2,4,5) | S_3 |
|---|---|---|
| C_t(1,2,4,5) | ||
| S_3 | 68.91 |
上述并类过程可用下图表达,

7、可变法
如果在某一步将类与类合并为,任一类和的中间距离公式为:
其中是可变的且。显然在可变类平均法中取\frac{n_{_p}}{n_{_r}}=\frac{n_{_q}}{n_{_r}}=\frac{1}{2},即为上式。可变类平均法与可变法的分类效果与 的选择关系极大,如果接近1,一般分类效果不好.在实际应用中常取负值。下面的计算取。
根据距离矩阵(附表IV),按距离最小(最小距离44.54)将样本和归为一类。在矩阵表中将设置为第1行第1列,划去、对应行列,并计算和其它样本或类之间的可变距离,得矩阵表如下,
| D_{ij} | C_r(2,4) | S_1 | S_3 | S_5 |
|---|---|---|---|---|
| C_r(2,4) | ||||
| S_1 | 59.39 | |||
| S_3 | 57.52 | 78.88 | ||
| S_5 | 53.50 | 53.85 | 80.61 |
表中,
按最小距离53.50将、聚类为,
| D_{ij} | C_s(2,4,5) | S_1 | S_3 |
|---|---|---|---|
| C_s(2,4,5) | |||
| S_1 | 57.46 | ||
| S_3 | 73.58 | 78.88 |
表中,
按最小距离57.46将、聚类为,
| D_{ij} | C_t(1,2,4,5) | S_3 |
|---|---|---|
| C_t(1,2,4,5) | ||
| S_3 | 73.58 |
上述并类过程可用下图表达,

8、离差平方和法
这个方法是Ward提出来的,故又称为Ward法。
设将n个样品分成k类:G_1,G_2,\dots,Gk, 用X_i^{(t)}表示G_t中的第i个样品(注意是p维向量),n_{_t}表示中的样品个数,\overline{X}^{(t)}是的重心,则中样品的离差平方和为:
例如,如果把样本S_2(74,69,66)和S_4(65,38,85)归为一类,其重心坐标为
的离差平方和为,
根据(附表III),交叉样本离差平方和矩阵表为,
| D_{ij} | S_1 | S_2 | S_3 | S_4 | S_5 |
|---|---|---|---|---|---|
| S_2 | 67 | ||||
| S_3 | 690.5 | 654.5 | |||
| S_4 | 386.5 | 701.5 | 1605 | ||
| S_5 | 685 | 630 | 2478.5 | 797.5 |
按最小离差平方和67将、聚类为C_r(1,2),
| D_{ij} | C_r(1,2) | S_3 | S_4 | S_5 |
|---|---|---|---|---|
| C_r(1,2) | ||||
| S_3 | 874.33 | |||
| S_4 | 703 | 1605 | ||
| S_5 | 854.33 | 2478.5 | 797.5 |
在离差平方和矩阵基础上,当聚类到某一步时,类和分别有样本和个,将和合并为,则内样本个数为,某一类与新类的离差平方和距离公式为,
表中,
按最小距离703将、聚类为,
| D_{ij} | C_s(1,2,4) | S_3 | S_5 |
|---|---|---|---|
| C_s(1,2,4) | |||
| S_3 | 1683.75 | ||
| S_5 | 1063.12 | 2478.5 |
表中,
按最小距离1063.12将G_s、聚类为,
| D_{ij} | C_t(1,2,4,5) | S_3 |
|---|---|---|
| C_t(1,2,4,5) | ||
| S_3 | 1683.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年全国人口普查文化程度人口比例(%) | 地区| 序号| DXBZ| CZBZ| WMBZ |
| --- | --- | --- | --- | --- |
|---|---|---|---|---|
| 天津 | 2 | 4.67 | 29.38 | 8.92 |
| 河北 | 3 | 0.96 | 24.69 | 15.21 |
| 山西 | 4 | 1.38 | 29.24 | 11.3 |
| 内蒙 | 5 | 1.48 | 25.47 | 15.39 |
| 辽宁 | 6 | 2.6 | 32.32 | 8.81 |
| 吉林 | 7 | 2.15 | 26.31 | 10.49 |
| 黑龙江 | 8 | 2.14 | 28.46 | 10.87 |
| 上海 | 9 | 6.53 | 31.59 | 11.04 |
| 江苏 | 10 | 1.47 | 26.43 | 17.23 |
| 浙江 | 11 | 1.17 | 23.74 | 17.46 |
| 安徽 | 12 | 0.88 | 19.97 | 24.43 |
| 福建 | 13 | 1.23 | 16.87 | 15.63 |
| 江西 | 14 | 0.99 | 18.84 | 16.22 |
| 山东 | 15 | 0.98 | 25.18 | 16.87 |
| 河南 | 16 | 0.85 | 26.55 | 16.15 |
| 河北 | 17 | 1.57 | 23.16 | 15.79 |
| 湖南 | 18 | 1.14 | 22.57 | 12.1 |
| 广东 | 19 | 1.34 | 23.04 | 10.45 |
| 广西 | 20 | 0.79 | 19.14 | 10.61 |
| 海南 | 21 | 1.24 | 22.53 | 13.97 |
| 四川 | 22 | 0.96 | 21.65 | 16.24 |
| 贵州 | 23 | 0.78 | 14.65 | 24.27 |
| 云南 | 24 | 0.81 | 13.85 | 25.44 |
| 西藏 | 25 | 0.57 | 3.85 | 44.43 |
| 陕西 | 26 | 1.67 | 24.36 | 17.62 |
| 甘肃 | 27 | 1.1 | 16.85 | 27.93 |
| 青海 | 28 | 1.49 | 17.76 | 27.7 |
| 宁夏 | 29 | 1.61 | 20.27 | 22.06 |
| 新疆 | 30 | 1.85 | 20.66 | 12.75 |
数据处理过程如下,
I、将表格中数据部分转换为格式字符串(列由“,”分割、行由“|”分割)
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个国家信息基础设施表 | ID| country| call| movecall| fee| computer| mips| net |
| --- | --- | --- | --- | --- | --- | --- | --- |
|---|---|---|---|---|---|---|---|
| 2 | 日本 | 498.4 | 143.2 | 3.57 | 176 | 10223 | 6.26 |
| 3 | 德国 | 557.6 | 70.6 | 2.18 | 199 | 11571 | 9.48 |
| 4 | 瑞典 | 684.1 | 281.8 | 1.4 | 286 | 16660 | 29.39 |
| 5 | 瑞士 | 644 | 93.5 | 1.98 | 234 | 13621 | 22.68 |
| 6 | 丹麦 | 620.3 | 248.6 | 2.56 | 296 | 17210 | 21.84 |
| 7 | 新加坡 | 498.4 | 147.5 | 2.5 | 284 | 13578 | 13.49 |
| 8 | 中国台湾 | 469.4 | 56.1 | 3.68 | 119 | 6911 | 1.72 |
| 9 | 韩国 | 434.5 | 73 | 3.36 | 99 | 5795 | 1.68 |
| 10 | 巴西 | 81.9 | 16.3 | 3.02 | 19 | 876 | 0.52 |
| 11 | 智利 | 138.6 | 8.2 | 1.4 | 31 | 1411 | 1.28 |
| 12 | 墨西哥 | 92.2 | 9.8 | 2.61 | 31 | 1751 | 0.35 |
| 13 | 俄罗斯 | 174.9 | 5 | 5.12 | 24 | 1101 | 0.48 |
| 14 | 波兰 | 169 | 6.5 | 3.68 | 40 | 1796 | 1.45 |
| 15 | 匈牙利 | 262.2 | 49.4 | 2.66 | 68 | 3067 | 3.09 |
| 16 | 马来西亚 | 195.5 | 88.4 | 4.19 | 53 | 2734 | 1.25 |
| 17 | 泰国 | 78.6 | 27.8 | 4.95 | 22 | 1662 | 0.11 |
| 18 | 印度 | 13.60 | 0.30 | 6.28 | 2.00 | 101.00 | 0.01 |
| 19 | 法国 | 559.10 | 42.90 | 1.27 | 201.00 | 11702.00 | 4.76 |
| 20 | 英国 | 521.10 | 122.50 | 0.98 | 248.00 | 14461.00 | 11.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类
