作者:柴继贵
来源:《科技资讯》 2012年第1期
柴继贵
(成都电子机械高等专科学校 成都 610031)
摘 要:多元统计聚类方法已被广泛应用于自然科学和社会科学的各个领域,而在现实处理多元数据聚类分析中,离不开统计软件的支持;软件由于其免费、开源、强大的统计分析及其完美的作图功能已得到越来越多人的关注与应用;本文结合实例介绍了软件在多元统计系统分析中的应用。
关键词:软件 系统聚类分析 应用
中图分类号:TP39 文献标识码:A 文章编号:1672-3791(2012)01(a)-0021-01
1 系统聚类分析
聚类分析又称群分析,它是研究(样品或指标)分类问题的一种多元统计方法,所谓类,通俗地说,就是指相似元素的集合。在社会经济领域中存在着大量分类问题,比如若对某些大城市的物价指数进行考察,而物价指数很多,有农用生产物价指数、服务项目价指数、食品消费物价指数、建材零售价格指数等等。由于要考察的物价指数很多,通常先对这些物价指数进行分类。总之,需要分类的问题很多,因此聚类分析这个有用的工具越来越受到人们的重视,它在许多领域中都得到了广泛的应用。
聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等;最常用最成功的聚类分析为系统聚类法,系统聚类法的基本思想为先将n个样品各自看成一类,然后规定样品之间的“距离”和类与类之间的距离。选择距离最近的两类合并成一个新类,计算新类和其他类(各当前类)的距离,再将距离最近的两类合并。这样,每次合并减少一类,直至所有的样品都归成一类为止。
系统聚类法的基本步骤:计算n个样品两两间的距离。构造n个类,每个类只包含一个样品。合并距离最近的两类为一新类。计算新类与各当前类的距离。重复步骤前两步,合并距离最近的两类为新类,直到所有的类并为一类为止。画聚类谱系图。决定类的个数和类。
系统聚类方法:最短距离法;最长距离法;中间距离法;重心法;类平均法;离差平方和法(Ward法)。
2 基于软件的系统聚类分析程序
软件及其相关包提供了各种聚类方法,主要是系统聚类方法、快速聚类方法、模糊聚类方法,常用的是系统聚类方法。
软件实现系统聚类的程序如下。
hclust(d,method=\"complete\
其中,d是由“dist”构成的距离结构,具体包括绝对值距离、欧氏距离、切比雪夫距离、马氏距离、兰氏距离等,默认为欧氏距离;method包括类平均法average、重心法centroid、中间距离法median、最长距离法complete、最短距离法single、离差平方和法ward等,默认是最长距离法complete。
3 应用举例
3.1 用Matlab编程实现
运用Matlab中的一些基本矩阵计算方法,通过自己编程实现聚类算法,在此只讨论根据最短距离规则聚类的方法。
调用函数:
min1.m为求矩阵最小值,返回最小值所在行和列以及值的大小;
min2.m为比较两数大小,返回较小值;
std1.m为用极差标准化法标准化矩阵;
ds1.m为用绝对值距离法求距离矩阵;
cluster.m为应用最短距离聚类法进;行聚类分析
print1.m为调用各子函数,显示聚类结果。
聚类分析算法:
假设距离矩阵为vector, a阶,矩阵中最大值为max,令矩阵上三角元素等于max。
聚类次数=a-1,以下步骤作a-1次循环:
求改变后矩阵的阶数,计作c;
求矩阵最小值,返回最小值所在行e和列f以及值的大小g;
for l=1:c,为vector(c+1,l)赋值,产生新类。
令第c+1列元素,第e行和第f行所有元素为,第e列和第f列所有元素为max。
3.2 直接调用Matlab函数实现
3.2.1 调用函数
层次聚类法(Hierarchical Clustering)的计算步骤:
①计算n个样本两两间的距离{dij},记D。
②构造n个类,每个类只包含一个样本。
③合并距离最近的两类为一新类。
④计算新类与当前各类的距离;若类的个数等于1,转到5);否则回3)。
⑤画聚类图。
⑥决定类的个数和类。
Matlab软件对系统聚类法的实现(调用函数说明):
cluster
从连接输出(linkage)中创建聚类
clusterdata
从数据集合(x)中创建聚类
dendrogram
画系统树状图
linkage
连接数据集中的目标为二元群的层次树
pdist
计算数据集合中两两元素间的距离(向量)
squareform
将距离的输出向量形式定格为矩阵形式
zscore
对数据矩阵 X 进行标准化处理
3.2.2 举例说明
设某地区有八个观测点的数据,样本距离矩阵如表1所示,根据最短距离法聚类分析。
%最短距离法系统聚类分析
X=[7.90 39.77 8.49 12.94 19.27 11.05 2.04 13.29;
7.68 50.37 11.35 13.3 19.25 14.59 2.75 14.87;
9.42 27.93 8.20 8.14 16.17 9.42 1.55 9.76;
9.16 27.98 9.01 9.32 15.99 9.10 1.82 11.35;
10.06 28.64 10.52 10.05 16.18 8.39 1.96 10.81];
BX=zscore(X); % 标准化数据矩阵
Y=pdist(X)
% 用欧氏距离计算两两之间的距离
D=squareform(Y) % 欧氏距离矩阵
Z = linkage(Y)
% 最短距离法
T = cluster(Z,3) 等价于 { T=clusterdata(X,3) }
find(T==3) % 第3类集合中的元素
[H,T]=dendrogram(Z)
% 画聚类图
4 结语
在系统聚类分析中,利用软件是最方便、最简单、最易学的,而且根据不同的情况,可以自己修改别人的程序,比较方便;可以在处理多元数据聚类分析中,利用软件具有很大的优势。
参考文献
[1] 王斌会.多元统计分析及语言建模[M].广州:暨南大学出版社,2010.
[2] 汤银才.软件与统计分析[M].北京:高等教育出版社,2005.
[3] 高惠璇.应用多元统计分析[M].北京:北京大学出版社,2005.
[4] 李卫东.应用多元统计分析[M].北京:北京大学出版社,2008.
因篇幅问题不能全部显示,请点此查看更多更全内容