资源简介

亲测k_means,使用c语言和matlab实现,matlab代码调试后可用!K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。

资源截图

代码片段和文件信息

clc;
clear;

% 第一类数据
% 均值
mu1 = [-2 -2];
% 协方差
S1 = [0.5 0; 0 0.5];
% 产生高斯分布数据
data1 = mvnrnd(mu1 S1 100);
% 第二类数据
mu2 = [2 -2];
S2 = [0.5 0; 0 0.5];
data2 = mvnrnd(mu2 S2 100);

% 第三类数据
mu3 = [-2 2];
S3 = [0.5 0; 0 0.5];
data3 = mvnrnd(mu3 S3 100);

% 第四类数据
mu4 = [2 2];
S4 = [0.5 0; 0 0.5];
data4 = mvnrnd(mu4 S4 100);


% 显示数据
figure();
hold on;
plot(data1(:1) data1(:2) ‘+‘);
plot(data2(:1) data2(:2) ‘r+‘);
plot(data3(:1) data3(:2) ‘g+‘);
plot(data4(:1) data4(:2) ‘b+‘);
grid on;


data = [data1; data2; data3; data4];
% 数据聚类
[idx ctr] = k_means(data 4 1000);
[m n] = size(idx);

% 显示聚类后的结果
figure();
hold on;
for i=1:m
    if idx(i 3) == 1
        plot(idx(i 1) idx(i 2) ‘r.‘ ‘MarkerSize‘ 12); 
    elseif idx(i

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

    .CA....      2310  2019-03-20 23:38  k_means.m

    .CA....      1206  2019-03-20 23:38  kmean_main.m

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

                 3516                    2


评论

共有 条评论