模糊C均值聚类.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
主 讲:周润景 教授 单 位:电子信息工程学院 模糊C均值聚类 目 录 模糊C均值聚类应用背景 模糊C均值算法 模糊C均值聚类的MATLAB实现 模糊C均值聚类结果分析 一.模糊C均值聚类应用背景 传统的聚类分析是一种硬划分(Crisp Partition),它把每个待辨识的对象严格地划分到某类中,具有“非此即彼”的性质,因此这种类别划分的界限是分明的。然而实际上大多数对象并没有严格的属性,它们在性质和类属方面存在着中介性,具有“亦此亦彼”的性质,因此适合进行软划分。Zadeh提出的模糊集理论为这种软划分提供了有力的分析工具,人们开始用模糊方法来处理聚类问题,并称之为模糊聚类分析。模糊聚类得到了样本属于各个类别的不确定性程度,表达了样本类属的中介性,建立起了样本对于类别的不确定性的描述,能更客观地反映现实世界,从而成为聚类分析研究的主流。 在基于目标函数的聚类算法中模糊C均值(FCM,Fuzzy C—Means)类型算法的理论最为完善,应用最为广泛。 二.模糊C均值算法    1.模糊C均值聚类的准则 设 是n个样本组成的样本集合,c为预定的类别数目, 是第i个样本对于第j类的隶属度函数。用隶属度函数定义的聚类损失函数可以写为 其中,b1,是一个可以控制聚类结果的模糊程度的常数。 在不同的隶属度定义方法下最小化聚类损失函数,就得到不同的模糊聚类方法。其中最有代表性的是模糊C均值方法,它要求一个样本对于各个聚类的隶属度之和为1,即: 二.模糊C均值算法    2.模糊C均值算法步骤 (1)设定聚类数目c和加权指数b: J . C. Bezdek根据经验,认为b 取2 最合适。 Cheung和Chen从汉字识别的应用背景得出b的最佳取值应在1.25~1.75之间。 Bezdek和Hathaway等人从算法收敛性角度着手,得出b 的取值与样本数目n有关的结论,建议b的取值要大于n/(n2)。 Pal等人从聚类有效性方面的实验研究得到b的最佳选取区间为[1.5, 2.5],在不做特殊要求下可取区间中值b = 2。 二.模糊C均值算法    (2)初始化各个聚类中心 : 式中,Ni是第i聚类中的样本数目。 (3)重复下面的运算,直到各个样本的隶属度值稳定: 用当前的聚类中心根据下式计算隶属度函数: 二.模糊C均值算法    用当前的隶属度函数按下式更新计算各类聚类中心: 当模糊C均值算法收敛时,就得到了各类的聚类中心和各个样本对于各类的隶属度值,从而完成了模糊聚类划分。如果需要,还可以将模糊聚类结果进行解模糊,即用一定的规则把模糊聚类划分转化为确定性分类。 三.模糊C均值聚类的MATLAB实现    1.重要程序代码 这里对酒瓶颜色进行分类。下面介绍其重要程序代码: 1)MATLAB模糊C均值数据聚类识别函数 在MATLAB中(b=2),只要直接调用如下程序即可实现模糊C均值聚类: [Center,U,obj_fcn]=fcm(data,cluster_n) data:要聚类的数据集合,每一行为一个样本; cluster_n:聚类数; Center:最终的聚类中心矩阵,每一行为聚类中心的坐标值; U:最终的模糊分区矩阵; obj_fcn:在迭代过程中的目标函数值。 三.模糊C均值聚类的MATLAB实现    注意:在使用上述方法时,要根据中心坐标Center的特点分清楚每一类中心所代表的实际中的哪一类,然后才能准确地将待聚类的各方案准确地分为各自所属的类别;否则,就会出现张冠李戴的现象。 2)MATLAB图形显示聚类模式 使用命令[center,U,obj_fcn] = fcm(data,4)进行聚类后,可调用MATLAB图形窗口显示聚类结果,命令格式如下: maxU=max(U); %最大隶属度 index1 = find(U(1,:) == maxU) %找到属于第一类的点 index2 = find(U(2,:) == maxU) %找到属于第二类的点 index3 = find(U(3,:) == maxU) %找到属于第三类的点 index4 = find(U(4,:) == maxU) %找到属于第四类的点 三.模糊C均值聚类的MATLAB实现    为了提高图形的区分度,添加如下命令: line(data(index1,1),data(index1,2),data(index1,3),linestyle,none,marker,*,color,g); line(data(index2,1),data(index2,2),data(index2,3),

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档