【实践】数据挖掘DM课程课业打卡实验4 聚类算法

【实践】数据挖掘DM课程课业打卡实验4 聚类算法


叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
在这里插入图片描述

一、实验目的

(1)理解聚类算法的基本原理。
(2)掌握kmeans聚类算法的原理与实现。

二、实验内容

1、数据见data.mat,编程实现K means算法代码K_MeansMt,并写出详细注释。

data.mat  部分数据如下:

在这里插入图片描述
测试代码如下:

load 'data.mat';
[u re]=K_MeansMt(data,3);  %最后产生簇标号 re 
[m n]=size(re);
%最后显示聚类后的数据
figure;
hold on;
for i=1:m 
    if re(i)==1   
         plot(data(i,1),data(i,2),'ro'); 
    elseif re(i)==2
         plot(data(i,1),data(i,2),'go'); 
    else 
         plot(data(i,1),data(i,2),'bo'); 
    end
end
grid on;

(将执行正确的roc_plot函数代码粘贴在此处,核心代码要求有注释)

%数据一共分成K%data是输入的不带分类标号的数据
%是每一类的中心
%clusterID是返回的带分类标号的数据

function [u clusterID]=K_MeansMt(data, K)
[m n]=size(data); %m是数据个数, n是数据维数
ma=zeros(1, n);%每一维最大的数
mi=zeros(1, n);%每一维最小的数
u=zeros(K, n);%随机初始化,最终迭代到每一类的中心位置

for i=1:n
    ma(i)=max(data(:,i)); %每一维最大的数
    mi(i)=min(data(:,i)); %每一维最小的数
    for j=1:K
        u(j, i)=mi (i)+ (ma(i)-mi (i))*rand(); %随机初始化
    end
end

    while 1
        pre_u=u;  %上一次求得的质心位置
        coordinate_difference {m, K}=[];
        for i=1:m
            % data(i, :)-u(j, :),为计算质心做准备
            for j=1:K
                coordinate_difference{i, j}=data(i, :)-u(j,:);
            end
        end
        
        Dist=ones (m, K)*-1;
        for i=1:m     %计算质心
            c=zeros(1, K);
            for j=1:K
                c(j)=norm(coordinate_difference{i, j});
            end
            [cmin index]=min(c); %哪个类的距离最小(index为类号)
            Dist(i,index)=norm(coordinate_difference{i, index});
        end
        
        for i=1:K
            ind=find(Dist(:, i)>=0);
            u(i, :)=mean(data(ind, :));
        end
        
        if norm(pre_u-u)<0.1 %不断迭代直到位置不再变化
            break;
        end
    end
    
    clusterID=[];
    for i=1:m
        dist=[];
     for j=1:K
         dist=[dist norm(data(i, :)-u(j, :))]; %%每个点到稳定后的类中心距离
     end
     [x index]=min(dist); %% 选择距离最小的类别号
     clusterID= [clusterID; index];
    end
    
end    

实验结果截图如下:

在这里插入图片描述

在这里插入图片描述

Ending!
更多课程知识学习记录随后再来吧!

就酱,嘎啦!

在这里插入图片描述

注:
人生在勤,不索何获。

猜你喜欢

转载自blog.csdn.net/qq_43543789/article/details/106895422
今日推荐