资源简介
Matlab实现K-means算法,该算法是针对Iris鸢尾花数据集的实验
代码片段和文件信息
function result=K_means(datakinitset)
[rowscolumns]=size(data);%获取数据的行列
for i=1:k
data(initset(i)columns+1)=i;%初始聚簇代表确定
oldClusetCenter(i:)=data(initset(i)1:columns);
oldClusterRows{i}=initset(i);%初始第i簇的行号
end
%结束标记
flag=1;
%迭代次数
iteratenum=0;
while(flag==1)
iteratenum=iteratenum+1;
fprintf(‘-第%d次迭代:\n‘iteratenum);
flag=0;
%计算欧几里得距离,划分簇
for ii=1:rows
for jj=1:k
res=(data(ii1:columns)-oldClusetCenter(jj:)).*(data(ii1:columns)-oldClusetCenter(jj:));
dist(jj)=sqrt(sum(res));%dist矩阵存放欧几里得距离
end
data(iicolumns+1)=find(dist==min(dist));%最小欧几里得距离,划分簇
dist(1:k)=0;%距离置零
- 上一篇:扩张状态观测器程序
- 下一篇:MATLAB多目标遗传算法
评论
共有 条评论