awentang的个人空间 https://bbs.21ic.com/?466870 [收藏] [复制] [RSS]

日志

Matlab中的聚类分析

已有 7402 次阅读2009-4-6 13:06 |系统分类:DSP| Matlab, 聚类分析

Matlab提供系列函数用于聚类分析,归纳起来具体方法有如下:


    方法一:直接聚类,利用clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法,该方法的使用者无需了解聚类的原理和过程,但是聚类效果受限制。


    方法二:层次聚类,该方法较为灵活,需要进行细节了解聚类原理,具体需要进行如下过程处理:(1)找到数据集合中变量两两之间的相似性和非相似性,用pdist函数计算变量之间的距离;(2)用 linkage函数定义变量之间的连接;(3)用 cophenetic函数评价聚类信息;(4)用cluster函数创建聚类。


    方法三:划分聚类,包括K均值聚类和K中心聚类,同样需要系列步骤完成该过程,要求使用者对聚类原理和过程有较清晰的认识。


    接下来,介绍Matlab中的相关函数和相关聚类方法。


1Matlab中相关函数介绍


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’参数指定的算法计算系统聚类树。


Ypdist函数返回的距离向量;


method:可取值如下:


‘single’:最短距离法(默认); ‘complete’:最长距离法;


average’:未加权平均距离法; weighted’: 加权平均法;


‘centroid’:质心距离法; ‘median’:加权质心距离法;


‘ward’:内平方距离法(最小方差算法)


返回:Z为一个包含聚类树信息的(m-1)×3的矩阵。


1.4 dendrogram函数


调用格式:[HT…]=dendrogram(Z,p…)


说明:生成只有顶部p个节点的冰柱图(谱系图)。


1.5 cophenet函数


调用格式:c=cophenetic(Z,Y)


说明:利用pdist函数生成的Ylinkage函数生成的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.94698


Step4 创建聚类,并作出谱系图


T=cluster(Z2,6);


H=dendrogram(Z2);


     以上内容整理,是在网上朋友工作的基础上,进行简单调整,在此说明。具体实例,如有需要,大家可直接联系我。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)