概述
是普通C均值(也就是K均值)算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则是一种柔性的模糊划分,使得每个给定数据点用值在0,1间的隶属度来确定其属于各个组的程度。

由上述两个必要条件,模糊C均值聚类算法是一个简单的迭代过程。在批处理方式运行时,FCM用下列步骤确定聚类中心ci和隶属矩阵U[1]:
-
用值在0,1间的随机数初始化隶属矩阵U,使其满足式(6.9)中的约束条件
-
用式(6.12)计算c个聚类中心ci,i=1,…,c。
-
根据式(6.10)计算价值函数。如果它小于某个确定的阀值,或它相对上次价值函数值的改变量小于某个阀值,则算法停止。
-
用(6.13)计算新的U矩阵。返回步骤2。
上述算法也可以先初始化聚类中心,然后再执行迭代过程。由于不能确保FCM收敛于一个最优解。算法的性能依赖于初始聚类中心。因此,我们要么用另外的快速算法确定初始聚类中心,要么每次用不同的初始聚类中心启动该算法,多次运行FCM。
FCM算法需要两个参数一个是聚类数目C,另一个是参数m;对于m,它是一个控制算法的柔性的参数,如果m过大,则聚类效果会很次,而如果m过小则算法会接近HCM聚类算法。
算法的输出是C个聚类中心点向量和C*N的一个模糊划分矩阵,这个矩阵表示的是每个样本点属于每个类的隶属度。根据这个划分矩阵按照模糊集合中的最大隶属原则就能够确定每个样本点归为哪个类。聚类中心表示的是每个类的平均特征,可以认为是这个类的代表点。 算法对于满足正态分布的数据聚类效果会很好,另外,算法对孤立点是敏感的。
