⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xtjl.m

📁 实现了25种系统聚类的方法
💻 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 + -