第九章 聚类分析和判别分析 讲过
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第九章 聚类分析与判别分析
在实际工作中,我们经常遇到分类问题.若事先已经建立类别,则使用判别分析,若事先没有建立类别,则使用聚类分析.
聚类分析主要是研究在事先没有分类的情况下,如何将样本归类的方法.聚类分析的内容包含十分广泛,有系统聚类法、动态聚类法、分裂法、最优分割法、模糊聚类法、图论聚类法、聚类预报等多种方法.
聚类分析指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的分析过程。它是一种重要的人类行为。聚类分析的目标就是在相似的基础上收集数据来分类。聚类源于很多领域,包括数学,计算机科学,统计学,生物学和经济学。在不同的应用领域,很多聚类技术都得到了发展,这些技术方法被用作描述数据,衡量不同数据源间的相似性,以及把数据源分类到不同的簇中。
聚类与分类的不同在于,聚类所要求划分的类是未知的。 聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。
从统计学的观点看,聚类分析是通过数据建模简化数据的一种方法。
§9.1 聚类分析基本知识介绍
在MA TLAB 软件包中,主要使用的是系统聚类法.
系统聚类法是聚类分析中应用最为广泛的一种方法.它的基本原理是:首先将一定数量的样品(或指标)各自看成一类,然后根据样品(或指标)的亲疏程度,将亲疏程度最高的两类合并,然后重复进行,直到所有的样品都合成一类.衡量亲疏程度的指标有两类:距离、相似系数.
一、常用距离
1)欧氏距离
假设有两个n 维样本),,,(112111n x x x x =和),,,(222212n x x x x =,则它们的欧氏距离为
∑=-=
n
j j j
x x
x x d 1
22121)(),(
2)标准化欧氏距离
假设有两个n 维样本),,,(112111n x x x x =和),,,(222212n x x x x =,则它们的标准化欧氏距离为
T x x D x x x x sd )()(),(2112121--=-
其中:D 表示n 个样本的方差矩阵,),,,(22221n diagonal D σσσ =,2
j σ表示第j 列的方差.
3)马氏距离
假设共有n 个指标,第i 个指标共测得m 个数据(要求n m >):
⎪⎪⎪⎪
⎪⎭⎫ ⎝⎛=im i i i x x x x 21, 1121112
2121212(,,
,)n n n m
m
nn x x x x
x x X x x x x x x ⎛⎫ ⎪ ⎪
== ⎪ ⎪⎝⎭
于是,我们得到n m ⨯阶的数据矩阵),,,(21n x x x X =,每一行是一个样本数据.n m ⨯阶数据矩阵X 的n n ⨯阶协方差矩阵记做)(X Cov .
两个n 维样本),,,(112111n x x x x =和),,,(222212n x x x x =的马氏距离如下:
T x x X Cov x x x x mahal )())()((),(2112121--=-
马氏距离考虑了各个指标量纲的标准化,是对其它几种距离的改进.马氏距离不仅排除了量纲的影响,而且合理考虑了指标的相关性.
4)布洛克距离
两个n 维样本),,,(112111n x x x x =和),,,(222212n x x x x =的布洛克距离如下:
∑=-=n
j j j x x x x b 1
2121||),(
5)闵可夫斯基距离
两个n 维样本),,,(112111n x x x x =和),,,(222212n x x x x =的闵可夫斯基距离如下:
p
n j p j j x x x x m 1
12121||),(⎪⎪⎭
⎫ ⎝⎛-=∑= 注:1=p 时是布洛克距离;2=p 时是欧氏距离. 6)余弦距离
⎪⎪⎭
⎫ ⎝
⎛-=T
T T x x x x x x x x d 221121211),( 这是受相似性几何原理启发而产生的一种标准,在识别图像和文字时,常用夹角余弦为标准.
7)相似距离
T
T
T
x x x x x x x x x x x x x x d )
)(()
)(())((1),(22221111221121-------
=
二、MATLAB 中常用的计算距离的函数
假设我们有n m ⨯阶数据矩阵),,,(21n x x x x =,每一行是一个样本数据. 在MATLAB 中计算样本点之间距离的内部函数为
y=pdist(x) 计算样本点之间的欧氏距离
y=pdist(x,'seuclid') 计算样本点之间的标准化欧氏距离 y=pdist(x,'mahal') 计算样本点之间的马氏距离 y=pdist(x,'cityblock') 计算样本点之间的布洛克距离 y=pdist(x,'minkowski') 计算样本点之间的闵可夫斯基距离
y=pdist(x,'minkowski',p) 计算样本点之间的参数为p 的闵可夫斯基距离
y=pdist(x,'cosine') 计算样本点之间的余弦距离
y=pdist(x,'correlation') 计算样本点之间的相似距离
另外,内部函数yy=squareform(y)表示将样本点之间的距离用矩阵的形式输出.
三、常用的聚类方法
常用的聚类方法主要有以下几种:最短距离法、最长距离法、中间距离法、重心法、平方和递增法等等.
四、创建系统聚类树
假设已经得到样本点之间的距离y,可以用linkage函数创建系统聚类树,格式为z=linkage(y).
其中:z为一个包含聚类树信息的(m-1) 3的矩阵.例如:
z=
2.000 5.000 0.2
3.000
4.000 1.28
则z的第一行表示第2、第5样本点连接为一个类,它们距离为0.2;则z的第二行表示第3、第4样本点连接为一个类,它们距离为1.28.
在MA TLAB中创建系统聚类树的函数为
z=linkage(y) 表示用最短距离法创建系统聚类树
z=linkage(y,'complete') 表示用最长距离法创建系统聚类树
z=linkage(y,'average') 表示用平均距离法创建系统聚类树
z=linkage(y,'centroid') 表示用重心距离法创建系统聚类树
z=linkage(y,'ward') 表示用平方和递增法创建系统聚类树
§9.2 聚类分析示例
例1 在MA TLAB中写一个名为opt_linkage_1的M文件:
x=[3 1.7;1 1;2 3; 2 2.5; 1.2 1; 1.1 1.5; 3 1];
y=pdist(x,'mahal');
yy=squareform(y)%Reformat a distance matrix between upper triangular and square form z=linkage(y,'centroid')
h=dendrogram(z) %Plot dendrogram graphs 画树状图
存盘后按F5键执行,得到结果如下:
yy =
0 2.3879 2.1983 1.6946 2.1684 2.2284 0.8895
2.3879 0 2.6097 2.0616 0.2378 0.6255 2.3778
2.1983 2.6097 0 0.6353 2.5522 2.0153 2.9890
1.6946
2.0616 0.6353 0 1.9750 1.5106 2.4172
2.1684 0.2378 2.5522 1.9750 0 0.6666 2.1400
2.2284 0.6255 2.0153 1.5106 0.6666 0 2.4517
0.8895 2.3778 2.9890 2.4172 2.1400 2.4517 0
z =
2.0000 5.0000 0.2378
6.0000 8.0000 0.6353
3.0000
4.0000 0.6353