matlab实现Kmeans聚类算法(共2页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《matlab实现Kmeans聚类算法(共2页).doc》由会员分享,可在线阅读,更多相关《matlab实现Kmeans聚类算法(共2页).doc(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上kmeans函数:输入为类别数量k和数据矩阵A;输出为聚类结果A,和迭代次数,并将聚类结果数据以excel形式保存在工作路径下function km(k,A)%函数名里不要出现“-”warning offn,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
2、(m,:); cid;endAsum=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
3、+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; %得到新的聚类中心 endtimesdisplay(A矩阵,最后一列是所属类别);Afor j=1:k a,b=size(find(A(:,p+1)=j); numK(j)=a;endnumKtimesxlswrite(data.xls,A); %把矩阵A写到excel文件中,保存在工作路径下display(数据已保存为excel格式);专心-专注-专业
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 实现 Kmeans 算法
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内