Matlab供给系列函数用于聚类分析,归纳起来详细办法有如下:
办法一:直接聚类,使用clusterdata函数对样本数据进行一次聚类,其缺陷为可供用户挑选的面较窄,不能更改间隔的核算办法,该办法的使用者无需了解聚类的原理和进程,可是聚类作用受限制。
办法二:层次聚类,该办法较为灵敏,需求进行细节了解聚类原理,详细需求进行如下进程处理:(1)找到数据调集中变量两两之间的相似性和非相似性,用pdist函数核算变量之间的间隔;(2)用 linkage函数界说变量之间的衔接;(3)用 copheneTIc函数点评聚类信息;(4)用cluster函数创立聚类。
办法三:区分聚类,包括K均值聚类和K中心聚类,相同需求系列进程完结该进程,要求使用者对聚类原理和进程有较明晰的知道。
接下来,介绍Matlab中的相关函数和相关聚类办法。
1.Matlab中相关函数介绍
1.1 pdist函数
调用格局:Y=pdist(X,’metric’)
阐明:用 ‘metric’指定的办法核算 X 数据矩阵中目标之间的间隔。’
X:一个m&TImes;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)&TImes;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.94698
Step4 创立聚类,并作出谱系图