聚类分析的案例分析教程
杨威
yangweipyf@
西安建筑科技大学
“人以类聚, 物以群分”。对事物进行分类,是人们认识事物 的出发点,也是人们认识世界的一种重要方法。因此,分类学 已成为人们认识世界的一门基础学科。
聚类分析又称群分析,它是研究(样品或指标)分类问题的一 种多元统计方法,所谓类,通俗地说,就是指相似元素的集合。
矩阵D中的第3行第2列为12763,表示上海与山西的欧氏 距离为12763, 其余类推.
若想得到下三角阵,则有命令:
S = tril(squareform(d1))
S=1.0e+004 *
0
0
0
0
0
0.3462 0
0
0
0
1.0293 1.2763 0
0
0
1.1575 1.3932 0.1428
0
0
(3) C C
相似系数中最常用的是相关系数与夹角余弦.
例1.2. 计算例1.1中各指标之间的相关系数与夹角余弦
解:x=[…];
%与例6.1.1数据相同
R=corrcoef(x); %指标之间的相关系数
Cij
(x x )( y y) (x x)2 (y y)2
其中x表示第i行元素,y表示第j行元素。
陕西
8354.63
638.76
65.33
2610.61
新疆
9422.22
938.15
141.75
1976.49
为了研究上述5个省、区、市的城镇居民收入差异, 需要利用统计资料对其进行分类,指标变量有4个, 计算各省、区、市之间的前6种距离
解:x=[18738.96 778.36 452.75 7707.87
Dp2k
nq nk nr nk
Dq2k
nk nr nk
Dp2q
2谱系聚类与K均值聚类
2.1 谱系聚类
谱系聚类法是目前应用较为广泛的一种聚类法. 谱系聚 类是根据生物分类学的思想对研究对象进行 分类的方法. 在 生物分类学中,分类的单位是: 门、纲、目、科、属、种, 其中种是分类的基本单位,分类单位越小,它所包含的生物 就越少,生物之间的共同特征就越多. 利用这种思想,谱系 聚类首先将各样品自成一类,然后把最相似(距离最近或相似 系数最大)的样品聚为小类,再将已聚合的小类按各类之间的 相似性(用类间距离度量)进行再聚合,随着相似性的减弱, 最后将一切子类都聚为一大类,从而得到一个按相似性大小 聚结起来的一个谱系图.
D= squareform(d1); % 注意此时d1必须 是一个行向量,结果为实对称矩阵
D = 1.0e+004 * 0 0.3462 1.0293 1.1575 1.0944
0.3462 0 1.2763 1.3932 1.3080 1.0293 1.2763 0 0.1428 0.1639 1.1575 1.3932 0.1428 0 0.1280 1.0944 1.3080 0.1639 0.1280 0
本次主要介绍谱系聚类、K均值聚类、模糊C均值聚类和模糊 减法聚类及其MATLAB实现.
1 距离聚类
1.1聚类的思想 在社会经济领域中存在着大量分类问题,比如对我
国30个省市自治区独立核算工业企业经济效益进行分 析,一般不是逐个省市自治区去分析,而较好地做法 是选取能反映企业经济效益的代表性指标,如:百元 固定资产实现利税、资金利税率、产值利税率、百元 销售收入实现利润、全员劳动生产率等等,根据这些 指标对30个省市自治区进行分类,然后根据分类结果 对企业经济效益进行综合评价,就易于得出科学的分 析。
表 省(区、市)城镇居民人均家庭收入
省(市)
工薪收入 (元/人)
经营净收入(元/ 人)
财产性收入(元/ 人)
转移性收入(元/ 人)
北京
18738.96
778.36
452.75
7707.87
上海
21791.11
1399.14
369.12
6199.77
安徽
9302.38
959.43
293.92
3603.72
由于要考察的物价指数很多,通常先对这些物价指数进行 分类。总之,需要分类的问题很多,因此聚类分析这个有 用的数学工具越来越受到人们的重视,它在许多领域中都 得到了广泛的应用。
聚类问题的一般提法是:设有n 个样品的 p元观测数据
组成一个数据矩阵
X
xx1211
x 12
x 22
xn1 xn2
x1p x2p
d3=pdist(x, 'minkowski',3); %计算明氏距离,d3为1行10列 的行向量 d4=pdist(x,'chebychev') %计算切氏距离. d5=pdist(x,'seuclidean') %计算方差加权距离. d6=pdist(x,'mahalanobis') %计算马氏距离
其中 为样品的协方差矩阵.
在MATLAB中,计算距离的命令是pdist. 调用格式 Y =pdist(X,distance)
输入的 X是一个矩阵,行为个体,列为指标,distance 是距离的类型。若缺省distance,则输出的Y是一个行向量 ,向量的长度为(N-1)*N/2,其中N是样本的容量,Y的元素 分别为个体(1,2),(1,3),..., (1,N), (2,3),...(2,N),.....(N-1,N)之 间的欧氏距离。
向量的距离
设有 n 个样品的 p 元观测数据
xi (xi1, xi2, , xip )T , i 1, 2, , n.
这时,每个样品可看成 n 元空间的一个点,也即一 个 维向量,两个向量之间的距离记为,满足如下 条件:
(1)(非负性) d (xi , x j ) 0, 且d (xi , x j ) 0当且仅当 xi x j
xnp
其中每一行表示一个样品,每一列表示一个指标,xij 表示
第 i个样品关于第 j项指标的观测值,要根据观测值矩阵X
对样品或指标进行分类。
分类的思想:在样品之间定义距离,在指标之间定义相 似系数. 样品距离表明样品之间的相似度,指标之间的相似 系数刻画指标之间的相似度.
聚类分析的基本思想: 将样品(或变量)按相似度的大小逐 一归类,关系密切的聚集到较小的一类,关系疏远的聚集到 较大的一类,直到所有的样品(或变量)都聚集完毕。
设 d ij 表示两个样品 xi,xj 之间的距离,
G p , Gq 分别表示两个类别,各自含有 np,nq 个样品.
(1)最短距离
Dpq
min
iGp , jGq
dij
即用两类中样品之间的距离最短者作为两类间距离.
(2)最长距离
Dpq
max iGp , jGq
dij
即用两类中样品之间的距离最长者作为两类间距离.
(3)类平均距离
1
Dpq npnq iGp jGq dij
即用两类中所有两两样品之间距离的平均作为 两类间距离.
(4)重心距离
Dpq d (x p , xq ) (x p xq )T (x p xq )
其中 x p , xq 分别是G p , Gq 的重心,这是用 两类重心之间的欧氏距离作为类间距离. 一组数据 的平均数即为这组数据的重心。
%计算夹角余弦
J=
1.0000 0.9536 0.9609 0.9797
0.9536 1.0000 0.9026 0.8990
0.9609 0.9026 1.0000 0.9833
0.9797 0.8990 0.9833 1.0000
3类间距离与递推公式 前面,我们介绍了两个向量之间的距离,下面我们 介绍两个类别之间的距离:
2.绝对距离
p
d (xi , x j ) | xik x jk | k 1
3.明可夫斯基(Minkowski) 距离
p
d (xi , x j ) [ | xik x jk |m ]1/ m k 1
其中m(m>0)为常数。
4.切贝雪夫(Chebyshev)距离
d (xi , x j ) max | xik x jk |
(2)(对称性)
d (xi , x j ) d (x j , xi )
(3)(三角不等式) d (xi , x j ) d (xi , xk ) d (xk , x j )
在聚类分析中最常用的是欧氏距离。
1.欧氏(Euclidean)距离
p
d (xi , x j ) [ (xik x jk )2 ]1/ 2 k 1
R= [1.0000 0.6183 0.8138 0.8931 0.6183 1.0000 0.4287 0.2927 0.8138 0.4287 1.0000 0.9235 0.8931 0.2927 0.9235 1.0000]
x1=normc(x); % 将x的各列化为单位向量
J=x1'*x1
1k p
5.方差加权(seuclidean)距离
p
d (xi , x j ) [ (xik x jk )2 / sk2 ]1/ 2 k 1
其中
s
2 k
1 n 1
n
(x jk
j 1
Xk )2, Xk
1 n
n
x jk .
j 1
6.马氏(mahalanobis)距离
d(xi , xj ) (xi xj )T 1(xi xj )
聚类分析方法不仅可以对样品进行分类,而且可以对变量进 行分类,在对变量进行分类时,常常采用相似系数来度量变量
之间的相似性。对 p个指标变量进行聚类时,用相似系数来衡
量变量之间的相似程度(关联度),若用C 表示变量 , 之间 的相似系数,则应满足: