实验三 K-Means 聚类算法
一、 实验目的
1) 加深对非监督学习的理解和认识
2) 掌握动态聚类方法 K-Means 算法的设计方法
二、 实验环境
1) 具有相关编程软件的 PC 机
三、 实验原理
1) 非监督学习的理论基础
2) 动态聚类分析的思想和理论依据
3) 聚类算法的评价指标
四、算法思想
K-均值算法的主要思想是先在需要分类的数据中寻找 K 组数据作为初始聚类中
心,然后计算其他数据距离这三个聚类中心的距离,将数据归入与其距离最近的
聚类中心,之后再对这 K 个聚类的数据计算均值,作为新的聚类中心,继续以上
步骤,直到新的聚类中心与上一次的聚类中心值相等时结束算法。
实验代码
function km(k,A)%函数名里不要出现“-”
warning off
[n,p]=size(A);%输入数据有 n 个样本,p 个属性
cid=ones(k,p+1);%聚类中心组成 k 行 p 列的矩阵,k 表示第几类,p 是属性
%A(:,p+1)=100;
A(:,p+1)=0;
for i=1:k
%cid(i,:)=A(i,:); %直接取前三个元祖作为聚类中心
m=i*floor(n/k)-floor(rand(1,1)*(n/k))
cid(i,:)=A(m,:);
cid;
end
Asum=0;
Csum2=NaN;
flags=1;
times=1;
while flags
flags=0;
times=times+1;
%计算每个向量到聚类中心的欧氏距离
for i=1:n
1