FCM算法研究(一)

来源:互联网 发布:js encodeuri 解码 编辑:程序博客网 时间:2024/06/03 05:07
  1. FCM算法来源

聚类方法是一种研究数据结构的推导工具,可用于无监督模式识别技术、数据挖掘技术等。一般将聚类分为层次聚类和划分聚类。层次聚类算法产生一个嵌套聚类的层次,算法最多包含N步,在第t步,执行的操作就是在前t-1步的聚类基础上生成新聚类。划分聚类是基于目标函数的一种聚类方法。另一方面,可以将聚类分成hard和fuzzy两种聚类类型。这两种聚类方式均是基于隶属度来描述的。隶属度的概念是从模糊集理论中引申出来的,简单的应用就是性别问题,一个人的性别只能是男(0)和女(1),没有介于0-1之间的第三种或者第几种性别。传统的硬聚类隶属度只有0和 1两个值,也就是说一个样本只能属于一个类。而模糊聚类的隶属度取值介于[0-1]。
模糊聚类可以分为3个分支:(a)基于模糊关系[1];(b)基于模糊规则学习[2];(c)基于目标函数最优。FCM 算法在1981年由Bezdek提出[3]。显然,FCM是属于基于目标函数最优的聚类方法。
2. 算法思想

假定数据集为X,如果把这些数据划分成c类的话,那么对应的就有c个类中心为C,每个样本j属于某一类i的隶属度为uij,那么定义一个FCM目标函数(1)及其约束条件(2)如下所示:

这里写图片描述

我们想要得到min{J(U,V)},

这里写图片描述

为了求有约束条件下目标函数的极值,我们得利用拉格朗日乘子法构造新的函数
这里写图片描述
其中 称为Lagrange乘子,这里写图片描述
对F函数求极值得最优化条件如下:
这里写图片描述
极值条件式6解得必要条件如下:
这里写图片描述
那么,FCM算法流程为:
1.设定聚类数目c和参数m
2.给出初始隶属度矩阵U(0)
3.利用式8计算新的聚类中心Vj
4.利用式7计算新的隶属度矩阵
5.用一个矩阵范数比较两次迭代之间隶属度矩阵,如果‖U(k+1)-U(k)‖<=e 则停止迭代。
3. 算法实例
使用rand函数生成一个100*2的数据,利用FCM结果可得到
这里写图片描述
这里隶属度初始化是随机的,满足约束条件就ok,但是相对的会对结果有一定的影响。
4. 参考文献

[1] Guoyao, F.: Optimization methods for fuzzy clustering. Fuzzy Sets Syst. 93, 301–309 (1998)
[2] Ravi, V., Zimmermann, H.J.: Fuzzy rule based classification with feature selector and modified threshold accepting. Eur. J. Oper. Res. 123, 16–28 (2000)
[3] Bezdek, J.C.: Pattern Recognition with Fuzzy Objective Function Algorithms. Plenum Press,New York (1981)

0 0
原创粉丝点击