第六章 聚类分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
聚类分析
在实际工作中,我们经常遇到分类问题。若事先已经建立类别,则使用判别分析,若事先没有建立类别,则使用聚类分析。
聚类分析主要是研究在事先没有分类的情况下,如何将样本归类的方法。 聚类分析的内容包含十分广泛,有系统聚类法、动态聚类法、分裂法、最优分割法、模糊聚类法、图论聚类法、聚类预报等多种方法。
在Matlab 软件包中,主要使用系统聚类法。
系统聚类法是聚类分析中应用最为广泛的一种方法。它的基本原理是:首先将一定数量的样品(或指标)各自看成一类,然后根据样品(或指标)的亲疏程度,将亲疏程度最高的两类合并,如此重复进行,直到所有的样品都合成一类。衡量亲疏程度的指标有两类:距离、相似系数。
(1)常用距离 ①欧氏距离
假设有两个n 维样本()n x x x x 112111,,,⋅⋅⋅=和()n x x x x 222212,,,⋅⋅⋅=,则它们的欧氏距离为:()()∑=-=n
j j j
x x
x x d 1
2
2121,
②标准化欧氏距离
假设有两个n 维样本()n x x x x 112111,,,⋅⋅⋅=和()n x x x x 222212,,,⋅⋅⋅=,则它们的标准化欧氏距离为:
()()()T
x x D x x x x sd 2112121,--=-
其中,D 表示m 个样本的方差矩阵:(
)
2
2221,,,m diagonal D σσσ⋅⋅⋅=,其中2j
σ表
示第j 个样本的方差。
③马氏距离
假设共有n 个指标,第i 个指标共测得m 个数据(要求n m >):
⎪⎪⎪⎪⎪⎭
⎫
⎝⎛⋅⋅⋅=im i i i x x x x 21
于是,我们得到n m ⨯阶的数据矩阵()n x x x X ,,,21⋅⋅⋅=,每一行是一个样本数据。
n m ⨯阶数据矩阵X 的n n ⨯阶协方差矩阵记作()X Cov 。
两个n 维样本()n x x x x 112111,,,⋅⋅⋅=和()n x x x x 222212,,,⋅⋅⋅=的马氏距离如下:
()()()()()T x x X Cov x x x x mahal
211
2121,--=-
马氏距离考虑了各个指标量纲的标准化,是对其它几种距离的改进。马氏距
离不仅排除了量纲的影响,而且合理考虑了指标的相关性。
④布洛克(C ity Block )距离
两个n 维样本()n x x x x 112111,,,⋅⋅⋅=和()n x x x x 222212,,,⋅⋅⋅=的布洛克距离如下:
()∑=-=n
j j j x x x x b 1
2121,
⑤明可夫斯基(Minkowski )距离
两个n 维样本()n x x x x 112111,,,⋅⋅⋅=和()n x x x x 222212,,,⋅⋅⋅=的明可夫斯基距离:
()p
n
j p
j
j x x x x m 11
2121,⎪⎪⎭
⎫ ⎝⎛-=∑= 注意:1=p 时是布洛克距离,2=p 时是欧氏距离。
⑥余弦距离(Cosine distance )
()⎪
⎪⎭
⎫ ⎝⎛-
=T T T X X X X X X X X d 221121211, 这是受相似形几何原理启发而产生的一种标准,在识别图像和文字时,常用夹角余弦为标准。
⑦相似距离(Correlation distance )
()T
T
T
X X X X X X X X X X X X X X d ⎪⎭
⎫ ⎝⎛-⎪⎭⎫ ⎝⎛-⎪⎭
⎫ ⎝⎛-⎪⎭⎫ ⎝⎛-⎪⎭
⎫ ⎝⎛-⎪⎭⎫ ⎝⎛--
=-
--
--
-222211112211211,
(2)Matlab 中常用的计算距离的函数
假设我们有n m ⨯阶的数据矩阵()n x x x X ,,,21⋅⋅⋅=,每一行是一个样本数据。在Matlab 中计算样本点之间距离的内部函数为:
出。
(3)常用的聚类方法
常用的聚类方法主要有以下几种:最短距离法、最长距离法、中间距离法、重心法、平方和递增法等等。
(4)创建系统聚类树
假设已经得到样本点之间的距离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。
例1 在Matlab中写一个名字为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)
z=linkage(y,’centroid’)
h=dendrogram(z)
存盘后按F5键执行,得到结果:
yy =
0 2.3879 2.1983 1.6946 2.1684 2.2284
2.3879 0 2.6097 2.0616 0.2378 0.6255
2.1983 2.6097 0 0.6353 2.5522 2.0153
1.6946
2.0616 0.6353 0 1.9750 1.5106
2.1684 0.2378 2.5522 1.9750 0 0.6666
2.2284 0.6255 2.0153 1.5106 0.6666 0
0.8895 2.3778 2.9890 2.4172 2.1400 2.4517
z =
2.0000 5.0000 0.2378