FCM 算法把聚类归结为一个带约束的非线性规划问题,通过优化求解获得数据集的模糊划分和聚类。其基本思想是通过反复修改聚类中心V和分类矩阵U来实现动态的迭代聚类,使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小。
2.2.1 数据矩阵
设数域为被分类的对象,而每个对象又有p各指标表示其状态:
2.2.2 模糊聚类的目标函数[3,4]
目标函数为:
(2.1)
式中为模糊分类矩阵,,,表示第类聚类中心,是加权指数,一般。表示各类中样本到聚类中心的加权距离平方和,越小说明聚类效果越好,权指数是样本对第类隶属度的次方。为每一个样本与聚类中心的距离。表示第个样本隶属于第类的隶属值。式中:
(2.2)
矩阵为对称矩阵,一般取,则为欧氏距离[5]。根据聚类准则求的最小值:。因此:
(2.3)
利用拉格朗日乘数法可解得:
(2.4)
当 ,,且满足,当时,
(2.5)其中:,。
2.3 FCM算法的实现
模糊 C-均值聚类算法(FCM)就是用隶属度确定每个元素属于某个类别的程度的一种聚类算法,FCM 把 n 个数据向量分个模糊组,并求每组的类中心,使得非相似性指标的价值函数达到最小。FCM与普通分类的区别就在于FCM用模糊划分,使得每个给定数据点用值在0与1间的隶属函数确定其属于各个类的程度。FCM算法中当加权指数时,模糊聚类就退化为HCM;有人研究表明m的最佳选择范围是[1,2.5],通常m=2是比较理想的取值。FCM是通过反复迭代优化目标函数即执行下列步骤:
初始化:给定聚类类别数,n是数据个数。设定迭代停止阈值,初始化聚类原型模式,设置迭代计数器。
步骤一:计算或更新划分矩阵。
对于,如果存在,则有
(2.6)
如果存在使得,则有,且对,
步骤二:更新聚类原型模式矩阵
, (2.7)
步骤三:如果,则算法停止并输出划分矩阵和聚类原型,否则令, 转向步骤一。其中为某种合适的矩阵范数。
该FCM聚类算法能从任意给定初始点开始而收敛到其目标函数的局部极小点。