• 大小: 19KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-08-09
  • 语言: 其他
  • 标签: MATLAB  聚类  

资源简介

各种聚类程序,包括生成聚类树、k-means,模糊k-means等,中文注解

资源截图

代码片段和文件信息

%--------------------------------------------------------------------------
%                             例9.1   系统聚类
%--------------------------------------------------------------------------

%******************************计算例9.1的距离矩阵*************************
x = [1 2 6 8 11]‘;    %例9.1中的观测数据
y = pdist(x)    %计算样品间欧氏距离
D = squareform(y)    %将距离向量转为距离矩阵


%**************************根据原始数据创建系统聚类树************************
x = [1 2 6 8 11]‘;    % 例9.1中的观测数据
Z = linkage(x ‘single‘ ‘cityblock‘)    %利用最短距离法创建系统聚类树


%***************************分步聚类,绘制聚类树形图*************************
x = [1 2 6 8 11]‘;    % 例9.1中的观测数据
y = pdist(x‘cityblock‘);    % 计算样品间绝对值距离
z = linkage(y);    % 利用最短距离法创建系统聚类树
% 设定每个观测的标签
obslabel = {‘G1 = {1}‘;‘G2 = {2}‘;‘G3 = {6}‘;‘G4 = {8}‘;‘G5 = {11}‘};
% 创建聚类树形图,方向为从右至左,叶节点标签在左边
[HT] = dendrogram(z‘orientation‘‘Right‘‘labels‘obslabel);
set(H‘LineWidth‘2‘Color‘‘k‘)    % 设置线宽为2,颜色为黑色
xlabel(‘并类距离‘)      % 设定X轴标签
text(1.11.65‘G6‘)    % 在点(1.11.65)处放置字符串‘G6‘
text(2.13.65‘G7‘)    % 在点(2.13.65)处放置字符串‘G7‘
text(3.14.4‘G8‘)     % 在点(3.14.4)处放置字符串‘G8‘
text(4.13‘G9‘)       % 在点(4.13)处放置字符串‘G9‘



%*******************计算7种系统聚类法对应的Cophenetic相关系数****************
x = [1 2 6 8 11]‘;    % 例9.1中的观测数据
y = pdist(x‘cityblock‘);    % 计算样品间绝对值距离
% 定义元胞数组method,各元胞分别对应不同系统聚类法
method={‘average‘‘centroid‘‘complete‘‘median‘‘single‘‘ward‘‘weighted‘};
% 通过循环计算7种系统聚类法对应的Cophenetic相关系数
for i = 1:7
    Z = linkage(ymethod{i});    % 利用第i种系统聚类法创建聚类树
    c(i) = cophenet(Zy);    % 计算第i种系统聚类法对应的Cophenetic相关系数
end
c    % 查看Cophenetic相关系数值

Z = linkage(y ‘average‘);    % 利用类平均法创建聚类树
[c d] = cophenet(Zy)    % 计算Cophenetic相关系数c和cophenetic距离向量d
RHO = corr(y‘d‘)    % 计算y和d的线性相关系数


%*************************调用cluster函数进行系统聚类************************
x = [1 2 6 8 11]‘;    % 例9.1中的观测数据
y = pdist(x‘cityblock‘);    % 计算样品间绝对值距离
z = linkage(y);    % 利用最短距离法创建聚类树
T = cluster(z‘maxclust‘3)    % 将原始样品聚为3类


%***********************调用clusterdata函数进行系统聚类**********************
x = [1 2 6 8 11]‘;    % 例9.1中的观测数据
T = clusterdata(x‘maxclust‘3)    % 将原始样品聚为3类


%--------------------------------------------------------------------------
%                           例9.1   K均值聚类
%--------------------------------------------------------------------------

x = [1 2 6 8 11]‘;    % 例9.1中的观测数据
opts = statset(‘Display‘‘final‘);    % 显示每次聚类的最终结果
% 将原始的5个点聚为3类,距离采用绝对值距离,重复聚类5次,显示每次聚类的最终结果
idx = kmeans(x3‘Distance‘‘city‘‘Replicates‘5‘Options‘opts)


%****************************绘制聚类轮廓图*********************************
x = [1 2 6 8 11]‘;    % 例9.1中的观测数据
% 将原始的5个点聚为3类,距离采用绝对值距离,重复聚类5次
idx = kmeans(x3‘Distance‘‘city‘‘Replicates‘5);   
[S H] = silhouette(xidx)    % 绘制轮廓图,并返回轮廓值向量S和图形句柄H

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-09-02 23:39  聚类分析程序\
     文件       21504  2009-09-18 15:52  聚类分析程序\examp09_02.xls
     文件       16896  2009-09-24 20:54  聚类分析程序\examp09_03.xls
     文件       19456  2009-09-25 21:47  聚类分析程序\examp09_04.xls
     文件       20480  2009-12-05 16:41  聚类分析程序\examp09_05.xls
     文件        3348  2010-01-20 17:05  聚类分析程序\example09_01.m
     文件        1496  2010-05-13 02:36  聚类分析程序\example09_02.m
     文件        1020  2010-01-20 17:07  聚类分析程序\example09_03.m
     文件        1272  2010-01-20 17:07  聚类分析程序\example09_04.m
     文件        1226  2010-01-20 17:07  聚类分析程序\example09_05.m

评论

共有 条评论