聚类分析

今天还是比较开心的,因为学到了如何聚类分析,而且还没有出错,主要是比较简单啦!

聚类函数clusterdata

数据聚类函数clusterdata,优点是概括性,功能性强大,使用方便,缺点是采用默认的欧式距离,方法是最短距离法——选择余地少;输出的结果简单。
语法格式 T=clusterdata(X,cutoff)
X表示聚类n*m原始数据矩阵,n行表示n个样品,m列表示m个变量。
Cutoff表示聚类谱系图上的截断参数,数值范围限定在(0,1]之间,当接近于1时,则输出的类别越少。

子程序pdist

pdist用于计算成对距离
D=pdist(X)
D=pdist(X,'metric')
D=pdist(X,'minkowski',r)
metric表示距离度量方法选择项

聚类分析_第1张图片
image.png

注意事项:1 距离测度对于字母大小写没有特别的规定 ;2.距离的表示可以全称,也可以缩写

距离列阵函数squareform

功能将pdist计算的两两距离排列成方阵
squareform(D)

层次聚类函数linkage

功能基于距离方阵M的结果采用某种方法进行分类
Z=linkage(M)
Z=linkage(M,'method')

树形图函数dendrogram

1.图形的局部显示
H=dendrogram(Z,n)
2.图形颜色的局部改变
H=dendrogram(Z,'colorthreshold',T)
T 属于(0,Z)
T值太小或者太大,谱系显示的是纯一的颜色
缺省参数的语法格式H=dendrogram(Z,‘color’,‘default’)
3.图形方向的调整
H=dendrogram(Z,‘orientation’,orient)
top:自上而下 ;bottom:自下而上
left:自左而右; right:自右而左
4.样品标签的添加
S=['xx'; ……];
H=denddrogram(Z,'Labels',S);

分类定义函数

用于指定分类数目和结果
T=cluster(Z,p)
%层次聚类分析
%最长距离法%欧式距离
X=[16.2 1492 2000 -8.2 6.2
15.7 970 2209 -20.6 1.9
16.3 1260 2085 -17.3 2.8
17.2 1422 1726 -9.5 4.6
18.8 1874 1709 -4.9 8.0
17.9 1698 1848 -4.5 7.5
16.3 976 1239 -4.6 5.6];
D=pdist(X,'euclid');%计算样品之间的欧式距离
M=squareform(D);%排出距离矩阵
Z=linkage(D,'complete');%根据最长距离法聚类
H=dendrogram(Z);%画出聚类谱系图
xlabel('City');%谱系图的横轴标签
ylabel('Scale');
C=cophenet(Z,D);
T=cluster(Z,3);

find函数

find(T==q)

%层次聚类分析
%最短距离法%欧式距离
X=[16.2 1492 2000 -8.2 6.2
15.7 970 2209 -20.6 1.9
16.3 1260 2085 -17.3 2.8
17.2 1422 1726 -9.5 4.6
18.8 1874 1709 -4.9 8.0
17.9 1698 1848 -4.5 7.5
16.3 976 1239 -4.6 5.6];
D=pdist(X,'euclid');%计算样品之间的欧式距离
M=squareform(D);%排出距离矩阵
Z=linkage(D,'single');%根据最长距离法聚类
H=dendrogram(Z);%画出聚类谱系图
xlabel('City');%谱系图的横轴标签
ylabel('Scale');
C=cophenet(Z,D);
T=cluster(Z,'cutoff',0.8);

你可能感兴趣的:(聚类分析)