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

📄 caa.m

📁 CA算法可以将数量型属性划分成若干个优化的区间
💻 M
字号:
function caa(filename)
%CAA 竞争聚集算法
%语法:
%
%[U,V] = caaa(a,n,t,filename)
%其中,输入e是任意小的数,n和t是固定的常数,filename是要进行聚类的数据文件名
%输出U是模糊c划分矩阵,V为聚类中心,
%

%代码行
%从文件中读取要聚类的数据
Data = csvread(filename);
ck = clock;
[r c] = size(Data);
par = [7 3.5 18;5 5 20;3.4 5 20;4 1 20;3 4 18;4 7 18;4 5.5 18;6.2 7 22;5 5 18;4 5 26];
[property_n data_n] = size(par);

fid = fopen('caa_result.txt','a+');
fprintf(fid,'*************************************************************************\n'); 
fprintf(fid,'%d-%d-%d %d:%d:%d',ck(1),ck(2),ck(3),ck(4),ck(5),ceil(ck(6)));
fprintf(fid,'开始运行\n');
fprintf(fid,'对给定的数据进行聚类,其各属性聚类结果如下:\n');

for i = 1 : property_n
    [U,V] = ca_clut(par(i,1),par(i,2),par(i,3),Data(:,i));
    %str = strcat(strcat('property',num2str(i)),'.txt');
    %csvwrite(str,U);
    center_length = length(V);
    [uc ur] = size(U);
    fprintf(fid,'属性 %i 共被分为 %i 类,其聚类中心为:\t',i,center_length);
    for j = 1 : center_length
        fprintf(fid,'%6.4f\t',V(j));
        if(j == center_length)
            fprintf(fid,'\n');
        end
    end
    fprintf(fid,'属性 %i 各类区间为:\n',i);
    for i = 1:uc
    fprintf(fid,'[');
    fprintf(fid,'%6.4f',U(i,1));
    fprintf(fid,',');
    fprintf(fid,'%6.4f',U(i,2));
    fprintf(fid,']\n');
    end    
end
fprintf(fid,'*************************************************************************\n');
fclose(fid);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -