一、经典的FCM聚类算法
经典FCM聚类算法是基于目标函数寻优的聚类方法,它最早由是Bezkek于1981年提出的,它是目前广泛采用的一种聚类算法。具体步骤这里不再详述。
二、加权系数对聚类的影响
使用模糊c均值算法时,如何选取加权系数m一直是个悬而未决的问题。部分文献根据实验结果建议最佳的权重指数可能位于区间[1.1,2.5],研究表明这一经验结果并不必要,而且在这个范围内有时候是无法得到好的聚类结果的。
在基于目标函数聚类准则中,FCM采用的目标函数为:
由式(2-1)得 ,即Jm是随着m的增而单调递减的,显然对不同的m将有不同的最佳模糊c划分。
对于聚类效果检验的平均模糊熵函数:
由于模糊熵越小,划分就越分明,反之则越模糊,所以我们总希望(2-2)越小越好,而m值的确定又必然对(2-2)式产生影响。
三、FCM聚类算法的改进
(一)基于模糊多约束决策的m自整定方案
因为FCM聚类中,要求目标函数Jm(U,P)尽量小,同时为了保证划分结果清晰,能够正确的得出每个样本的类属关系,要求Hm(U,c)应尽量接近零[4]。根据模糊决策理论,最佳加权系数m*可以通过求解带约束的模糊决策来获得,这样就得到了决策中的目标G和约束C分别为:
由此得出,决策D=G∩C[3],
这样我们就可以通过构造Jm(U,P)和Hm(U,c)关于m的隶属度函数ug(m)和uc(m)来用模糊决策方式确定m。对于给定的ug(m)和uc(m),决策的隶属度函数可以表示为:
(3-3)
则最优决策应满足:
(3-4)
在聚类中要求聚类目标函数越小越好,本文选择:
对式(3-5),前文已经讨论过Jm(U,P)是随着m的增大而递减的,m越大,ug(m)越大,(3-5)式满足要求;从式(3-6)可以看出,Hm(U,c)越小,uc(m)越大。故这样选择的隶属度能够达到我们最小化聚类目标函数和模糊平均熵的目的。最后,根据式(3-4)即可确定出最佳加权系数m*,实验证明,这样求出的m*在经验范围[1.1,5]之内。
(二)通过最优加权系数m确定分类数
根据“加权系数越大,分类效果越好”[1]的结论,在实际聚类算法中可以通过求取与分类数c对应的m* (c)的最大值来确定最佳加权系数m*和最佳分类数c*。即:
四、改进的FCM算法的实现
根据以上分析,我们可以得出改进的FCM算法步骤如下:
1.设定聚类数目的上限nC,随机选取一个c×p矩阵作为初始聚类原型矩阵P(0),设定停止迭代阈值;
2.将c以步长1从1增加至nC,对每个c,使m从1开始增加,通过(3-4)
式确定m*(c);
3.根据(3-7)式确定最佳加权系数m*和最佳聚类数c*;
4.保留以上计算结果中的m*、c*以及c=c*时地迭代所得原型P*,以此为初始参数调用FCM算法完成对样本的自动聚类。
算法对步骤1中初始聚类原型矩阵的选择是不敏感的,因为最后的FCM迭代初始原型的选择为步骤1-3中迭代计算所得的聚类原型,这样就给了FCM算法一个较为合理的初始聚类原型矩阵,减少了步骤4中的迭代次数,提高了聚类质量,同时通过前三步的计算求得了聚类的最佳加权系数和分类数。这样就得出了一个自动根据最优参数聚类的算法,避免了经典FCM算法初始化的盲目性。
五、仿真实验
这里只列出算法在一种典型的数据的运行情况对算法的有效性加以说明。对于一组典型测试数据,去最大聚类数目为7得聚类时c和m*的关系如图1:
由图1所示的c和m*地关系曲线,得出c*=3,m*=2.72,和c*=3对应的前期迭代所得聚类原型为:P=[5.4044,6.0839;11.4562,12.0826;1.7912,2.2233]
将这些获得的参数带入算法第4步即得如图2聚类结果:
迭代9次,目标函数值J=14.904,平均模糊熵 H=0.49
六、结论
对参考文献[1]中提出的对FCM算法中加权系数和最佳分类数的选优方案进行了改进,使算法更具有“智能化”的特点,不需要人为干扰即可对
样本数据进行最佳聚类,同时利用聚类有效性函数为文中方法的有效性为算法提供了理论依据。这对在模式识别中广泛应用的FCM算法具有很大的改进意义。
参考文献:
[1]高新波,模糊聚类分析及其应用[M].西安:西安电子科技大学出版社,2004.
[2]Wei Wang, Chunheng Wang, Xia Cui, Ai WangImproving Fuzzy C-Means Clustering Based on Adaptive Weighting[R].Fifth In2ternational Conference on Fuzzy Systems and Knowledge Discovery, 2008.
[3]陈水利、李敬功、王向公,模糊集理论及其应用,119.