下载此文档

实验三K均值聚类算法实验报告.docx


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
实验三 K-Means 聚类算法
实验目的
加深对非监督学习的理解和认识
掌握动态聚类方法K-Means 算法的设计方法
实验环境
具有相关编程软件的 PC 机
实验原理
非监督学习的理论基础
动态聚类分析的思想和理论依据
实验三 K-Means 聚类算法
实验目的
加深对非监督学习的理解和认识
掌握动态聚类方法K-Means 算法的设计方法
实验环境
具有相关编程软件的 PC 机
实验原理
非监督学习的理论基础
动态聚类分析的思想和理论依据
聚类算法的评价指标
四、算法思想
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
for j=1:k
dist(i,j尸sqrt(sum((A(i,:)-cid(j,:)).八2));%欧氏距离
end
%A(i,p+1)=min(dist(i,:));% 与中心的最小距离
[x,y]=find(dist(i,:)==min(dist(i,:)));
[c,d]=size(find(y==A(i,p+1)));
if c==0 % 说明聚类中心变了
flags=flags+1;
A(i,p+1)=y(1,1);
else
continue;
end
end
i
flags
for j=1:k
Asum=0;
[r,c]=find(A(:,p+1)==j);
cid(j,:)=mean(A(r,:),1);
for m=1:length(r)
Asum=Asum+sqrt(sum((A(r(m),:)-cid(j,:)).八2));
end
Csum(1,j)=Asum;
end
sum(Csum(1,:))
%if sum(Csum(1,:))>Csum2
% break;
%end
Csum2=sum(Csum(1,:));
Csum;
cid; % 得到新的聚类中心
end
times
display('A 矩阵,最后一列是所属类别 ');
A
for j=1:k
[a,b]=size(f

实验三K均值聚类算法实验报告 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人cjl201801
  • 文件大小139 KB
  • 时间2022-05-07