matlab聚类分析

  • 格式:wps
  • 大小:33.00 KB
  • 文档页数:6

说明:如果是要用matlab做kmeans聚类分析,直接使用函数kmeans即可。

使用方法:kmeans(输入矩阵,分类个数k)。

转载一:MATLAB提供了两种方法进行聚类分析:1、利用clusterdata 函数对数据样本进行一次聚类,这个方法简洁方便,其特点是使用范围较窄,不能由用户根据自身需要来设定参数,更改距离计算方法;2、分步聚类:(1)用pdist函数计算变量之间的距离,找到数据集合中两辆变量之间的相似性和非相似性;(2)用linkage函数定义变量之间的连接;(3)用cophenetic函数评价聚类信息;(4)用cluster函数进行聚类。

下边详细介绍两种方法:1、一次聚类Clusterdata函数可以视为pdist、linkage与cluster的综合,一般比较简单。

【clusterdata函数:调用格式:T=clusterdata(X,cutoff)等价于Y=pdist(X,’euclid’); Z=linkage(Y,’single’); T=cluster(Z,cutoff) 】2、分步聚类(1)求出变量之间的相似性用pdist函数计算出相似矩阵,有多种方法可以求距离,若此前数据还未无量纲化,则可用zscore函数对其标准化【pdist函数:调用格式:Y=pdist(X,’metric’)说明:X是M*N矩阵,为由M个样本组成,每个样本有N个字段的数据集metirc取值为:’euclidean’:欧氏距离(默认)‘seuclidean’:标准化欧氏距离; ‘mahalanobis’:马氏距离…】pdist生成一个M*(M-1)/2个元素的行向量,分别表示M个样本两两间的距离。

这样可以缩小保存空间,不过,对于读者来说却是不好操作,因此,若想简单直观的表示,可以用squareform函数将其转化为方阵,其中x(i,j)表示第i个样本与第j个样本之的距离,对角线均为0.(2)用linkage函数来产生聚类树【linkage函数:调用格式:Z=linkage(Y,’method’)说明:Y为pdist函数返回的M*(M-1)/2个元素的行向量,method可取值:‘single’:最短距离法(默认);’complete’:最长距离法;‘average’:未加权平均距离法;’weighted’:加权平均法‘centroid’:质心距离法;‘median’:加权质心距离法;‘ward’:内平方距离法(最小方差算法)】返回的Z为一个(M-1)*3的矩阵,其中前两列为索引标识,表示哪两个序号的样本可以聚为同一类,第三列为这两个样本之间的距离。

另外,除了M个样本以外,对于每次新产生的类,依次用M+1、M+2、…来标识。

为了表示Z矩阵,我们可以用更直观的聚类数来展示,方法为:dendrogram(Z), 产生的聚类数是一个n型树,最下边表示样本,然后一级一级往上聚类,最终成为最顶端的一类。

纵轴高度代表距离列。

另外,还可以设置聚类数最下端的样本数,默认为30,可以根据修改dendrogram(Z,n)参数n来实现,1<n<M。

dendrogram(Z,0)则表n=M的情况,显示所有叶节点。

(3)用cophenetic函数评价聚类信息【cophenet函数: 调用格式:c=cophenetic(Z,Y)说明:利用pdist函数生成的Y和linkage函数生成的Z计算cophenet相关系数。

】cophene检验一定算法下产生的二叉聚类树和实际情况的相符程度,就是检测二叉聚类树中各元素间的距离和pdist计算产生的实际的距离之间有多大的相关性,另外也可以用inconsistent表示量化某个层次的聚类上的节点间的差异性。

(4)最后,用cluster进行聚类,返回聚类列。

转载二:Matlab 提供了两种方法进行聚类分析。

一种是利用clusterdata 函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法;另一种是分步聚类:(1 )找到数据集合中变量两两之间的相似性和非相似性,用pdist 函数计算变量之间的距离;(2 )用linkage 函数定义变量之间的连接;(3 )用cophenetic 函数评价聚类信息;(4 )用cluster 函数创建聚类。

1 .Matlab 中相关函数介绍1.1 pdist 函数调用格式:Y=pdist(X,’metric’)说明:用‘metric’指定的方法计算X 数据矩阵中对象之间的距离。

’X :一个m ×n 的矩阵,它是由m 个对象组成的数据集,每个对象的大小为n 。

metric’取值如下:‘euclidean’:欧氏距离(默认);‘seuclidean’:标准化欧氏距离;‘mahalanobis’:马氏距离;‘cityblock’:布洛克距离;‘minkowski’:明可夫斯基距离;‘cosine’:‘correlation’:‘hamming’:‘jaccard’:‘chebychev’:Chebychev 距离。

1.2 squareform 函数调用格式:Z=squareform(Y,..)说明:强制将距离矩阵从上三角形式转化为方阵形式,或从方阵形式转化为上三角形式。

1.3 linkage 函数调用格式:Z=linkage(Y,’method’)说明:用‘method ’参数指定的算法计算系统聚类树。

Y :pdist 函数返回的距离向量;method :可取值如下:‘single’:最短距离法(默认);‘complete’:最长距离法;‘average ’:未加权平均距离法;‘weighted ’:加权平均法;‘centroid’:质心距离法;‘median’:加权质心距离法;‘ward’:内平方距离法(最小方差算法)返回:Z 为一个包含聚类树信息的(m-1 )×3 的矩阵。

1.4 dendrogram 函数调用格式:[H ,T ,…]=dendrogram(Z,p ,…)说明:生成只有顶部p 个节点的冰柱图(谱系图)。

1.5 cophenet 函数调用格式:c=cophenetic(Z,Y)说明:利用pdist 函数生成的Y 和linkage 函数生成的Z 计算cophenet 相关系数。

1.6 cluster 函数调用格式:T=cluster(Z,…)说明:根据linkage 函数的输出Z 创建分类。

1.7 clusterdata 函数调用格式:T=clusterdata(X,…)说明:根据数据创建分类。

T=clusterdata(X,cutoff) 与下面的一组命令等价:Y=pdist(X,’euclid’);Z=linkage(Y,’single’);T=cluster(Z,cutoff);2. Matlab 程序2.1 一次聚类法X=[11978 12.5 93.5 31908;…;57500 67.6 238.0 15900];T=clusterdata(X,0.9)2.2 分步聚类Step1 寻找变量之间的相似性用pdist 函数计算相似矩阵,有多种方法可以计算距离,进行计算之前最好先将数据用zscore 函数进行标准化。

X2=zscore(X); % 标准化数据Y2=pdist(X2); % 计算距离Step2 定义变量之间的连接Z2=linkage(Y2);Step3 评价聚类信息C2=cophenet(Z2,Y2); //0.94698Step4 创建聚类,并作出谱系图T=cluster(Z2,6);H=dendrogram(Z2);分类结果:{ 加拿大} ,{ 中国,美国,澳大利亚} ,{ 日本,印尼} ,{ 巴西} ,{ 前苏联}剩余的为一类。

X=[0.008811372 0.240079413 0.7511092150.015781954 0.524716894 0.459501152 0.125663299 0.525034005 0.349302696 0.060263932 0.568859867 0.370876201 0.093838245 0.545552605 0.36060915 0.088370599 0.54053606 0.371093342 0.121158386 0.519904056 0.358937558 0.125658237 0.484650773 0.38969099 0.006649781 0.42050148 0.572848739 0.061317334 0.525134048 0.413548618 0.049078161 0.515755361 0.435166478 0.139895933 0.520790366 0.339313701 0.092533005 0.510468124 0.396998871 0.127705724 0.542031433 0.330262843 0.091608074 0.542214419 0.366177507 0.141089521 0.572759995 0.286150484 0.134459697 0.486437231 0.379103072 0.144999738 0.457863095 0.397137167 0.049702845 0.500173864 0.450123291 0.175035136 0.471447306 0.353517558 0.261482199 0.276580286 0.461937515 0.086476952 0.550006435 0.363516613 0.144476034 0.504622507 0.350901459 0.135812314 0.391133729 0.473053957 0.15342641 0.446208428 0.400365163 0.13541954 0.323020534 0.541559926 0.097639349 0.537967181 0.364393469 0.145429837 0.481701147 0.372869017 0.099908918 0.551402146 0.348688936 0.094273962 0.489989051 0.415736987 0.19836983 0.476719872 0.324910298]; X2=zscore(X); % 标准化数据Y2=pdist(X2);Z=squareform(Y2);Z2=linkage(Y2,'single')C2=cophenet(Z2,Y2)T=cluster(Z2,6)H=dendrogram(Z2)。