浅谈Matlab中的聚类分析Matlab聚类程序的设计

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

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

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

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

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

    1       .   Matlab     中相关函数介绍  

 1.1 pdist  函数

 调用格式:     Y=pdist(X,&   rs     quo;metric&   rs     quo;)  

 说明:用     ‘metric’    指定的方法计算     X    数据矩阵中对象之间的距离。     ’  

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

 metric’  取值如下:

 ‘euclidean’  :欧氏距离(默认);     ‘seuclidean’    :标准化欧氏距离;

 ‘mahalanobis’  :马氏距离;     ‘cityblock’    :布洛克距离;

 ‘minkowski’  :明可夫斯基距离;     ‘cosine’    :

 ‘correla     TI    on’  :     ‘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    )&     TI    mes;     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);

    浅谈Matlab中的聚类分析Matlab聚类程序的设计_设计制作_MEMS/传感技术  

    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  创建聚类,并作出谱系图

92
34
0
75

相关资讯

  1. 1、投资7.5亿的电影,票房预售却不足千万,网友:又一部封神传奇1757
  2. 2、又一部刷新你认知的泰国爆款电影来了!4736
  3. 3、《私人订制》造梦贺岁白百何大银幕百变迎新2079
  4. 4、《魔警》首映张家辉耍“狠”吴彦祖“把妹”549
  5. 5、赵丽颖冯绍峰晒结婚证官宣,看来怀孕传闻也要成事实了2991
  6. 6、张亮挺电影处女作:三理由必看《爸爸去哪儿》4003
  7. 7、《谢天谢地》被称“新闻寓言”单元剧关注热点2692
  8. 8、影评人激辩:《无人区》是值得等4年的神片吗?2575
  9. 9、《大江大河2》:不负期待的年终爆款3630
  10. 10、汤姆·克鲁斯个人电影全球票房超过100亿美元大关!1556
全部评论(0)
我也有话说
0
收藏
点赞
顶部