• 大小: 295KB
    文件类型: .tar
    金币: 2
    下载: 1 次
    发布日期: 2023-01-27
  • 语言: Matlab
  • 标签:

资源简介

模式识别作业__ISODATA聚类算法 报告AND源码 对鸢尾花的公开数据集,用ISODATA聚类。用MATLAB实现。

资源截图

代码片段和文件信息

clear;
clc;

%读入数据
load data_iris.mat;
IRIS = IRIS‘; 
Patterns = IRIS(1:4:);

%参数设置
c = 5;%预期的聚类中心数
Nc = 11;%初始聚类中心个数
Selta_n =5;%每一聚类域中最少的样本数目,若少于此数即不作为一个独立的聚类
Selta_s = 0.3;%一个聚类域中样本距离分布的标准差
Selta_D = 5;%两个聚类中心间的最小距离,若小于此数,两个聚类需进行合并
L = 1;%在一次迭代运算中可以合并的聚类中心的最多对数
I = 20;%迭代运算的次数

Classes=ISODATA(PatternsIRIS(5:)cNcSelta_nSelta_sSelta_DLI);
ret = zeros(3length(Classes));
for i=1:length(Classes)
    labs = getLabels(Classes(i));%test
    for j=1:length(labs)
        if labs(j) ~=0
            ret(labs(j)i) = 1+ret(labs(j)i);
        end
    end
end
ret

Classes=ISODATA(Patterns1:150cNcSelta_nSelta_sSelta_DLI);
ret_index=zeros(1150);
for i=1:length(Classes)
    labs = getLabels(Classes(i));%test
    for j=1:length(labs)
        if labs(j) ~=0
            ret_index(labs(j))=i;
        end
    end    
end
ret_index=[IRIS;ret_index]‘



评论

共有 条评论