没有合适的资源?快使用搜索试试~ 我知道了~
第六章 聚类分析.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 158 浏览量
2021-10-11
15:25:37
上传
评论
收藏 204KB DOCX 举报
温馨提示
试读
15页
。。。
资源推荐
资源详情
资源评论
聚类分析
在实际工作中,我们经常遇到分类问题。若事先已经建立类别,则使用判别
分析,若事先没有建立类别,则使用聚类分析。
聚类分析主要是研究在事先没有分类的情况下,如何将样本归类的方法。
聚类分析的内容包含十分广泛,有系统聚类法、动态聚类法、分裂法、最优
分割法、模糊聚类法、图论聚类法、聚类预报等多种方法。
在 Matlab 软件包中,主要使用系统聚类法。
系统聚类法是聚类分析中应用最为广泛的一种方法。它的基本原理是:首先
将一定数量的样品(或指标)各自看成一类,然后根据样品(或指标)的亲疏程
度,将亲疏程度最高的两类合并,如此重复进行,直到所有的样品都合成一类。
衡量亲疏程度的指标有两类:距离、相似系数。
(1)常用距离
①欧氏距离
假设有两个 n 维样本 x x , x ,, x 和 x x , x ,, x ,则它们的欧
1
11
12
1n
2
21
22
2n
n
氏距离为:
d x x
,
x
x
2
1
2
1 j
2 j
j1
②标准化欧氏距离
假设有两个 n 维样本 x x , x ,, x 和 x x , x ,, x ,则它们的标
1
11
12
1n
2
21
22
2n
准化欧氏距离为:
sd x , x x x D
x x
1
T
1
2
1
2
1
2
其中,D 表示 m 个样本的方差矩阵: D diagonal
, , ,
,其中
表
2
2
2
2
1
2
m
j
示第 j 个样本的方差。
③马氏距离
假设共有 n 个指标,第i 个指标共测得 m 个数据(要求 ):
m n
x
i1
x
x
i
i
2
x
im
于是,我们得到 阶的数据矩阵 X x , x ,, x ,每一行是一个样本数据。
m n
1
2
n
m n
阶数据矩阵 X 的 阶协方差矩阵记作Cov X 。
n n
两个 n 维样本 x x , x ,, x 和 x x , x ,, x 的马氏距离如下:
1
11
12
1n
2
21
22
2n
1
mahal x , x x x Cov X
1
x x
T
1
2
1
2
1
2
马氏距离考虑了各个指标量纲的标准化,是对其它几种距离的改进。马氏距
离不仅排除了量纲的影响,而且合理考虑了指标的相关性。
④布洛克(City Block)距离
两个 n 维样本 x x , x ,, x 和 x x , x ,, x 的布洛克距离如下:
1
11
12
1n
2
21
22
2n
n
b x , x
x
1 j
x
1
2
2 j
j1
⑤明可夫斯基(Minkowski)距离
两个 n 维样本 x x , x ,, x 和 x x , x ,, x 的明可夫斯基距离:
1
11
12
1n
2
21
22
2n
1
n
p
m x , x
x x
1 j
p
1
2
2 j
j1
注意: p 1时是布洛克距离, p 2 时是欧氏距离。
⑥余弦距离(Cosine distance)
X X
1
T
d X , X 1
2
1
2
X X
1
X X
2
T
T
1
2
这是受相似形几何原理启发而产生的一种标准,在识别图像和文字时,常用
夹角余弦为标准。
⑦相似距离(Correlation distance)
T
X X X
X
1
1
2
2
d X , X 1
1
2
T
T
X X X
X X
X X
X
1
1
1
1
2
2
2
2
(2)Matlab 中常用的计算距离的函数
假设我们有 阶的数据矩阵 X x , x ,, x ,每一行是一个样本数据。
m n
1
2
n
在 Matlab 中计算样本点之间距离的内部函数为:
y = pdist(X)
y = pdist(X, ‘seuclid’)
y = pdist(X, ‘mahal’)
计算样本点之间的欧氏距离
计算样本点之间的标准化欧氏距离
计算样本点之间的马氏距离
2
计算样本点之间的布洛克距离
计算样本点之间的明可夫斯基距离
计算样本点之间的参数为 p 的明可夫斯基距离
计算样本点之间的余弦距离
y = pdist(X, 'correlation')
计算样本点之间的相似距离
另外,内部函数 yy = squareform(y)表示将样本点之间的距离用矩阵的形式输
出。
(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。
在 Matlab 中创建系统聚类树的函数为:
表示用最短距离法创建系统聚类树
表示用最长距离法创建系统聚类树
表示用平均距离法创建系统聚类树
表示用重心距离法创建系统聚类树
表示用平方和递增法创建系统聚类树
z = linkage(y, ‘complete’)
z = linkage(y, ‘average’)
z = linkage(y, ‘centroid’)
z = linkage(y, ‘ward’)
例 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
0
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
2.2284
0.6255
2.0153
1.5106
0.6666
0
2.3879
2.1983
1.6946
2.1684
2.2284
0.8895
2.6097
2.0616
0.2378
0.6255
2.3778
0.6666
2.1400
2.4517
z =
2.0000
5.0000
0.2378
3
剩余14页未读,继续阅读
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功