学院、系电子信息工程学院自动化系
专业名称模式识别与智能系统
年级 2009 级。
学生姓名郭佳。
学号 30956028
目录。1. 前言 1
2.模糊c均值算法 2
2.1 fcm算法准则 2
2.2 模糊c均值算法步骤 3
2.2.1简介 3
2.2.2 fcm算法具体步骤 4
3. 模糊c均值聚类算法的matlab实现 5
3.1 实验数据 5
3.2 模糊c均值聚类程序分析 7
3.3 matlab实现及结果分析 7
3.3.1前29组数据的聚类分析 7
3.3.2 49组数据的聚类分析 15
总结 20参考文献 21
模糊c-均值聚类分析的应用。
1. 前言。
聚类就是按照一定的要求和规律对事物进行区分和分类的过程,在这一过程中没有任何关于类分的先验知识,仅靠事物间的相似性作为类属划分的准则,因此属于无监督分类的范畴。聚类分析则是指用数学的方法研究和处理给定对象的分类。“人以群分,物以类聚”,聚类是一个古老的问题,它伴随着人类社会的产生和发展而不断深化,人类要认识世界就必须区别不同的事物并认识事物间的相似性。
传统的聚类分析是一种硬划分,它把每个待辨识的对象严格地划分到某个类中,同一事物属于且仅属于所划定类别中的某一类,具有非此即彼的性质。例如在描述人的很多特征之一——性别的时候,很容易就可以对人进行分类,因为性别只有男性和女性之分,因此这种分类的类别界限是分明的、清晰的、不含糊的,属于普通集合理论的范畴。而实际上大多数对象并没有严格的属性,它们在形态和类属方面存在着中介性,适合进行软划分,用普通集合的理论往往不能完全解决具有模糊性的分类问题。
例如:将人按身高分为:高个子、中等个子、矮个子;图1-1所示经典硬聚类无法解决的聚类问题示意图,i部分代表高个子,ii部分代表矮个子,但是他们的交集部分,用传统的硬聚类分析方法就无法解决。
图1-1经典硬聚类无法解决的聚类问题示意图。
在此基础上,zadeh提出的模糊集理论为这种软划分提供了有力的分析工具,人们开始用模糊的方法来处理聚类问题,并称之为模糊聚类分析。应该指出,基于模糊集理论的模糊逻辑本身并不是模糊的,而是用来对“模糊”进行处理以达到消除模糊的逻辑。事实上,模糊逻辑是一种精确地解决不精确、不完全信息的方法,其最大的特点就是用它可以比较自然的处理人类的概念。
具体地说,模糊逻辑是通过模糊集合来工作的,模糊集合与传统集合的本质区别在于:(1)传统集合对集合中的元素关系进行严格区分,一个元素要么属于此集合,要么不属于此集合,并且不存在介于二者之间的情况;(2)模糊集合则具有灵活的隶属关系,允许元素在一个集合中部分隶属。元素在模糊集合中的隶属度可以是从0到1之间的任何值,而不像在传统集合中要么是0要么是1,这样模糊集合可以从“不隶属”到“隶属”逐级的过渡。
正是由于模糊聚类具有样本属于各个类别的不确定性程度,表达了样本类属的中介性,即建立起了样本对于类别的不确定性的描述,能更客观地反映现实世界,从而成为聚类分析研究的主流。
为了优化聚类分析的目标函数,人们提出了现在相当流行和应用广泛的模糊c-均值fcm(fuzzy c-means)聚类算法。该算法是从硬c-均值hcm(hard c-means)聚类算法发展而来的。
2.模糊c均值算法。
2.1 fcm算法准则。
给定数据集,其中每个元素包含s个属性。模糊聚类就是要将x划分为c个类,为c个类的聚类中心在模糊划分中,每一个样本点不能严格地被划分到某一类,而是以一定的隶属度属于某一类。令表示第j个样本点第i个类的隶属度。
且满足下式:
fcm算法的目标函数为:
其中, 为样本点与聚类中心之间的距离。
则fcm算法就是要求满足的情况下目标函数j的最小值,j的条件。
极值可以由拉格朗日乘数法求得。首先,j在(2.4)式下的条件极值可以表示成(2.5)
式,其中函数为常数:
对求偏导经过计算后得:,用同样的方法为最小值时的值为: (i=1,2…c)
2.2 模糊c均值算法步骤。
2.2.1简介。
fcm算法有五个参数(,a,c,m,ε)改变任何一个参数都将影响到fcm聚类的最终结果。
1)为初始隶属度矩阵,它直接影响到聚类中心的初始值,隶属度可以看做是数据对聚类中心作用力强度的表征,隶属度越大,数据对类中心的吸引力就越大,类中心的下一次迭代值受它的影响也就越大,从而影响到算法的迭代次数,也就影响了算法的计算时间。
2)对称矩阵a,对称矩阵a也是一个重要参数,当a=i时,聚类类似于球状分布,当聚类形状为球状时,可给a赋予不同的矩阵形式,以适应不同的聚类要求,例如,聚类近似于条状或带形分布时。
3)聚类数目c,c是影响聚类精度和聚类速度的参数,若c较大,就会使原本密集的簇分开;若c值较小则会使原本是比较分离的簇合并,使聚类结果不能满足客户的需要,计算所需要的系统内存和时间也要成倍的增加,这有时候是不能容忍的。
4)加权指数m ,zadeh认为“加权指数m控制着模糊类间的分享程度”。参数m控制着fcm聚类结果的模糊性,m值越大,所得到的分类矩阵模糊程度就越大。当m→∞时,u中所有的元素接近1/c,距离就失去了意义。
所以要使用fcm算法分析数据就必需选取合适的m值。当然这并不意味着小的m值就对应好的聚类结果,因为较大的加权指数m还具有抑制噪声的功能,在噪声污染的数据中模糊聚类有着重要的作用。因此在不同的应用领域,m值的选取也有其不同的范围。
5)收敛阈值ε,ε也是影响聚类精度和聚类速度的参数。数值过大时,会导致算法过早收敛,聚类结果不稳定,特别是在初始参数不确定的条件下,这种现象更为普遍和明显。当阈值过小时,则可能会导致过度计算,既浪费时间,又可能发生无法收敛的问题。
2.2.2 fcm算法具体步骤。
初始化:取模糊加权指数m=2,聚类的类别数c(2≤c≤n),n为数据样本点的个数,迭代停止阈值ε,初始的聚类中心值,以及迭代次数b=0;
步骤一:用公式(2-7)计算由隶属度的值所组成的划分矩阵:
当。当 (2-7)
步骤二:用公式(2-8)更新聚类中心。
步骤三:若v (b )-v(b+1)<ε则算法停止并输出划分u和聚类中心v,否则令b=b+1,转向执行步骤一。
3. 模糊c均值聚类算法的matlab实现。
3.1 实验数据。
其中前29组数据为已分类好的数据,用于学习及验证,看是否与已给出的聚类结果一致。后20组数据为待识别的数据。
3.2 模糊c均值聚类程序分析。
matlab中自带有模糊c均值聚类的程序,所以直接调用就可实现聚类,该程序为:[center,u,obj_fcn]=fcm(data,cluster_n)
其中center代表聚类中心。
u代表由隶属度组成的划分矩阵。
obj_fcn代表在迭代过程中的目标函数值。
data代表待聚类数据。
cluster_n为聚类的组数。
程序中还用到了如下语句:
1.通过[center,u,obj_fcn]=fcm(data,cluster_n)得到的聚类中心和隶属度,将各个点分类。
maxu=max(u寻找最大隶属度。
index1 = find(u(1,:)maxu) %找到属于第一类的点。
index2 = find(u(2,:)maxu) %找到属于第二类的点。
index3 = find(u(3,:)maxu) %找到属于第三类的点。
index4 = find(u(4,:)maxu) %找到属于第四类的点。
2.直观的观察四组聚类结果。
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),'linestyle','none','marker','color','r');
line(data(index3,1),data(index3,2),data(index3,3),'linestyle','none','marker','color','b');
line(data(index4,1),data(index4,2),data(index4,3),'linestyle','none','marker','color','y');
模式识别作业
6.题目 fisher分类和基于核的fisher分类的设计与实现研究。具体内容 1.简述fisher分类和基于核的fisher分类的算法原理 2.举出实例 3.用matlab软件编写程序实现 4.分析实验结果。fisher分类和基于核的fisher分类的设计与实现研究。1 fisher分类和基于核的...
模式识别作业
模式识别课程matlab程序作业。模式识别贝叶斯决策 正常状态细胞p 1 0.9,异常状态细胞p 2 0.1,类条件概率密度分别为p x 1 n 0,1 p x 2 n 0.2,1.5 现有一待识别细胞,其观察值为0.2,用matlab写出程序对该细胞进行分类。编写程序如下 close all cl...
模式识别作业
感知器训练算法。在设计贝叶斯分类器时需要设法获取样本统计分布的资料,应知道先验概率及类分布概率密度函数等。然而,在样本数不充足条件下要获取准确的统计分布是很困难的。这样,可以考虑另外一种分类器设计方法,即根据训练样本集提供的信息,直接进行分类器设计。下面实验是针对线性可分情况下的感知器算法。实验所用...