📄 xtjl.m
字号:
%分步系统聚类程序,利用多种聚类方法,然后取效果最好者作为最终聚类方法。
function f=xtjl(x,k)
[n,m]=size(x);
metric={'Euclid','SEuclid','Mahal','CityBlock','Minkowski'};
%各种距离
method={'single','complete','average','centroid','ward'};
%各种系统聚类方法
for i=1:5
y{i}=pdist(x,metric{i}); %用指定方法计算距离
squareform(y{i}); %将距离向量化为矩阵
for j=1:5
z{i,j}=linkage(y{i},method{j}); %定义变量之间的连接
c(i,j)=cophenet(z{i,j},y{i}); %评价聚类方法
end
end
i0=1;j0=1;c0=c(1,1);
for i=1:5
for j=1:5
if c(i,j)>=c0
i0=i;j0=j;c0=c(i,j);
end
end
end
zm=z{i0,j0};
disp('各种系统聚类方法评价系数最大值为:')
c0
disp('最佳系统聚类方法对应的距离计算方法为:')
metric{i0}
disp('最佳系统聚类方法对应的聚类准则为:')
method{j0}
dendrogram(zm); %生成聚类树
disp('最佳系统聚类方法所得结果为:')
disp('第i类的样本序号用u{i}显示:')
t=cluster(zm,k); %将所有变量分为2类
for i=1:k
u{i}=find(t==i)';
end
celldisp(u)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -