文档详情

(第六章聚类分析.doc

发布:2017-01-17约1.22万字共15页下载文档
文本预览下载声明
聚类分析 在实际工作中,我们经常遇到分类问题。若事先已经建立类别,则使用判别分析,若事先没有建立类别,则使用聚类分析。 聚类分析主要是研究在事先没有分类的情况下,如何将样本归类的方法。 聚类分析的内容包含十分广泛,有系统聚类法、动态聚类法、分裂法、最优分割法、模糊聚类法、图论聚类法、聚类预报等多种方法。 在Matlab软件包中,主要使用系统聚类法。 系统聚类法是聚类分析中应用最为广泛的一种方法。它的基本原理是:首先将一定数量的样品(或指标)各自看成一类,然后根据样品(或指标)的亲疏程度,将亲疏程度最高的两类合并,如此重复进行,直到所有的样品都合成一类。衡量亲疏程度的指标有两类:距离、相似系数。 (1)常用距离 ①欧氏距离 假设有两个n维样本和,则它们的欧氏距离为: ②标准化欧氏距离 假设有两个n维样本和,则它们的标准化欧氏距离为: 其中,D表示m个样本的方差矩阵:,其中表示第j个样本的方差。 ③马氏距离 假设共有n个指标,第个指标共测得m个数据(要求): 于是,我们得到阶的数据矩阵,每一行是一个样本数据。阶数据矩阵X的阶协方差矩阵记作。 两个n维样本和的马氏距离如下: 马氏距离考虑了各个指标量纲的标准化,是对其它几种距离的改进。马氏距离不仅排除了量纲的影响,而且合理考虑了指标的相关性。 ④布洛克(City Block)距离 两个n维样本和的布洛克距离如下: ⑤明可夫斯基(Minkowski)距离 两个n维样本和的明可夫斯基距离: 注意:时是布洛克距离,时是欧氏距离。 ⑥余弦距离(Cosine distance) 这是受相似形几何原理启发而产生的一种标准,在识别图像和文字时,常用夹角余弦为标准。 ⑦相似距离(Correlation distance) (2)Matlab中常用的计算距离的函数 假设我们有阶的数据矩阵,每一行是一个样本数据。在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)表示将样本点之间的距离用矩阵的形式输出。 (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) 表示用最短距离法创建系统聚类树 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 2.1983 1.6946 2.1684 2.2284 2.3879
显示全部
相似文档