实验三
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