• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-07-15
  • 语言: 其他
  • 标签: Kmeans  

资源简介

k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。此资源实现了随机赋值,并且在此分类的结果。

资源截图

代码片段和文件信息

k=10;
mu1=[kk];%数学期望
mu2=[-k-k];%数学期望
mu3=[-kk];%数学期望
mu4=[k-k];%数学期望
sigma=[1 0;0 1];%协方差矩阵
N=2000;
p1=mvnrnd(mu1sigma0.25*N);%生成第一象限样本
p2=mvnrnd(mu2sigma0.25*N);%生成第三象限样本
p3=mvnrnd(mu3sigma0.25*N);%生成第二象限样本
p4=mvnrnd(mu4sigma0.25*N);%生成第四象限样本

plot(p1(:1)p1(:2)‘b*‘);hold on;
plot(p2(:1)p2(:2)‘b*‘);hold on;
plot(p3(:1)p3(:2)‘r*‘);hold on;
plot(p4(:1)p4(:2)‘r*‘);grid on;

fid=fopen(‘data.txt‘‘wt‘);%写入文件路径
%fprintf(fid‘%4.5f\n‘N);
[mn]=size(p1);                   %获取矩阵的大小,p为要输出的矩阵
%fprintf(fid‘first\n‘1);
for i=1:1:m
%     if mod(i100)==0
%         fprintf(fid‘water levle since %d hours\n‘i/100-1);
%     end
    for j=1:1:n
        if j==n                    %如果一行的个数达到n个则换行,否则空格
            fprintf(fid‘%4.5f\n‘p1(ij));
        else
            fprintf(fid‘%4.5f\t‘p1(ij));
        end
    end
end

[mn]=size(p2);                   %获取矩阵的大小,p为要输出的矩阵
%fprintf(fid‘second\n‘1);
for i=1:1:m
%     if mod(i100)==0
%         fprintf(fid‘water levle since %d hours\n‘i/100-1);
%     end
    for j=1:1:n
        if j==n                    %如果一行的个数达到n个则换行,否则空格
            fprintf(fid‘%4.5f\n‘p2(ij));
        else
            fprintf(fid‘%4.5f\t‘p2(ij));
        end
    end
end

[mn]=size(p3);                   %获取矩阵的大小,p为要输出的矩阵
%fprintf(fid‘third\n‘1);
for i=1:1:m
%     if mod(i100)==0
%         fprintf(fid‘water levle since %d hours\n‘i/100-1);
%     end
    for j=1:1:n
        if j==n                    %如果一行的个数达到n个则换行,否则空格
            fprintf(fid‘%4.5f\n‘p3(ij));
        else
            fprintf(fid‘%4.5f\t‘p3(ij));
        end
    end
end

[mn]=size(p4);                   %获取矩阵的大小,p为要输出的矩阵
%fprintf(fid‘forth\n‘1);
for i=1:1:m
%     if mod(i100)==0
%         fprintf(fid‘water levle since %d hours\n‘i/100-1);
%     end
    for j=1:1:n
        if j==n                    %如果一行的个数达到n个则换行,否则空格
            fprintf(fid‘%4.5f\n‘p4(ij));
        else
            fprintf(fid‘%4.5f\t‘p4(ij));
        end
    end
end
fclose(fid); 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8365  2011-11-22 12:51  K_means随机赋初值\EM.CPP

     文件       2289  2011-11-22 12:47  K_means随机赋初值\generate.m

     目录          0  2019-06-18 09:26  K_means随机赋初值

----------- ---------  ---------- -----  ----

                10654                    3


评论

共有 条评论