网站大量收购闲置独家精品文档,联系QQ:2885784924

模糊c均值聚类 FCM算法的MATLAB代码.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模糊c均值聚类 FCM算法的MATLAB代码

模糊c均值聚类 FCM算法的MATLAB代码 我做毕业论文时需要模糊C-均值聚类,找了好长时间才找到这个,分享给大家: FCM算法的两种迭代形式的MATLAB代码写于下,也许有的同学会用得着: m文件1/7: function [U,P,Dist,Cluster_Res,Obj_Fcn,iter]=fuzzycm(Data,C,plotflag,M,epsm) % 模糊 C 均值聚类 FCM: 从随机初始化划分矩阵开始迭代 % [U,P,Dist,Cluster_Res,Obj_Fcn,iter] = fuzzycm(Data,C,plotflag,M,epsm) % 输入: % Data: N×S 型矩阵,聚类的原始数据,即一组有限的观测样本集, % Data 的每一行为一个观测样本的特征矢量,S 为特征矢量 % 的维数,N 为样本点的个数 % C: 聚类数,1CN % plotflag: 聚类结果 2D/3D 绘图标记,0 表示不绘图,为缺省值 % M: 加权指数,缺省值为 2 % epsm: FCM 算法的迭代停止阈值,缺省值为 1.0e-6 % 输出: % U: C×N 型矩阵,FCM 的划分矩阵 % P: C×S 型矩阵,FCM 的聚类中心,每一行对应一个聚类原型 % Dist: C×N 型矩阵,FCM 各聚类中心到各样本点的距离,聚类中 % 心 i 到样本点 j 的距离为 Dist(i,j) % Cluster_Res: 聚类结果,共 C 行,每一行对应一类 % Obj_Fcn: 目标函数值 % iter: FCM 算法迭代次数 % See also: fuzzydist maxrowf fcmplot if nargin5 epsm=1.0e-6; end if nargin4 M=2; end if nargin3 plotflag=0; end [N,S]=size(Data);m=2/(M-1);iter=0; Dist(C,N)=0; U(C,N)=0; P(C,S)=0; % 随机初始化划分矩阵 U0 = rand(C,N); U0=U0./(ones(C,1)*sum(U0)); % FCM 的迭代算法 while true % 迭代计数器 iter=iter+1; % 计算或更新聚类中心 P Um=U0.^M; P=Um*Data./(ones(S,1)*sum(Um)); % 更新划分矩阵 U for i=1:C for j=1:N Dist(i,j)=fuzzydist(P(i,:),Data(j,:)); end end U=1./(Dist.^m.*(ones(C,1)*sum(Dist.^(-m)))); % 目标函数值: 类内加权平方误差和 if nargout4 | plotflag Obj_Fcn(iter)=sum(sum(Um.*Dist.^2)); end % FCM 算法迭代停止条件 if norm(U-U0,Inf)epsm break end U0=U; end % 聚类结果 if nargout 3 res = maxrowf(U); for c = 1:C v = find(res==c); Cluster_Res(c,1:length(v))=v; end end % 绘图 if plotflag fcmplot(Data,U,P,Obj_Fcn); end m文件2/7: function [U,P,Dist,Cluster_Res,Obj_Fcn,iter]=fuzzycm2(Data,P0,plotflag,M,epsm) % 模糊 C 均值聚类 FCM: 从指定初始聚类中心开始迭代 % [U,P,Dist,Cluster_Res,Obj_Fcn,iter] = fuzzycm2(Data,P0,plotflag,M,epsm) % 输入: Data,plotflag,M,epsm: 见 fuzzycm.m % P0: 初始聚类中心 % 输出: U,P,Dist,Cluster_Res,Obj_Fcn,i

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档