FCM聚类算法简介

系统 2118 0

   FCM 聚类算法介绍

 

  FCM 算法是一种基于划分的聚类算法,它的思想就是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小。模糊 C 均值算法是普通 C 均值算法的改进,普通 C 均值算法对于数据的划分是硬性的,而 FCM 则是一种柔性的模糊划分。在介绍 FCM 具体算法之前我们先介绍一些模糊集合的基本知识。

1 模糊集基本知识

  首先说明 隶属度函数 的概念。隶属度函数是表示一个对象 x 隶属于集合 A 的程度的函数,通常记做 μA(x) ,其自变量范围是所有可能属于集合 A 的对象(即集合 A 所在空间中的所有点),取值范围是 [0,1] ,即 0<=μ A (x)<=1 μA(x)=1 表示 x 完全隶属于集合 A ,相当于传统集合概念上的 x ∈A 。一个定义在空间 X={x} 上的隶属度函数就定义了一个模糊集合 A ,或者叫定义在论域 X={x} 上的模糊子集 。对于有限个对象 x 1, x 2, …… x n模糊集合可以表示为:

              

      (6.1)

  有了模糊集合的概念,一个元素隶属于模糊集合就不是硬性的了,在聚类的问题中,可以把聚类生成的簇看成模糊集合,因此,每个样本点隶属于簇的隶属度就是 [0 1] 区间里面的值。

2 K 均值聚类算法 (HCM,K-Means) 介绍

  K 均值聚类(K-Means),即众所周知的 C 均值聚类,已经应用到各种领域。它的核心思想如下:算法把 n 个向量 x j(1,2…,n) 分为 c 个组 G i(i=1,2,…,c) ,并求每组的聚类中心,使得非相似性(或距离)指标的价值函数(或目标函数)达到最小。当选择欧几里德距离为组 j 中向量 x k与相应聚类中心 c i间的非相似性指标时,价值函数可定义为:

      

          (6.2)

  这里是组 i 内的价值函数。这样 J i的值依赖于 G i的几何特性和 c i的位置。

  一般来说,可用一个通用距离函数 d(x k,ci) 代替组 I中的向量 x k,则相应的总价值函数可表示为:

       

           (6.3)

  为简单起见,这里用欧几里德距离作为向量的非相似性指标,且总的价值函数表示为( 6.2 )式。

  划分过的组一般用一个 c×n 的二维隶属矩阵 U 来定义。如果第 j 个数据点 x j属于组 i ,则 U 中的元素 u ij为 1 ;否则,该元素取 0 。一旦确定聚类中心 ci ,可导出如下使式( 6.2 )最小 u ij:

 

        (6.4)

  重申一点,如果 c i是 x j的最近的聚类中心,那么 x j属于组 i 。由于一个给定数据只能属于一个组,所以隶属矩阵 U 具有如下性质:

       

          (6.5)

且         

                    (6.6)

  另一方面,如果固定 u ij则使( 6.2 )式最小的最佳聚类中心就是组 I中所有向量的均值:        

                   (6.7)

  这里 |G i| G i的规模或。

  为便于批模式运行,这里给出数据集 x i( 1 2… n )的 K 均值算法;该算法重复使用下列步骤,确定聚类中心 c i和隶属矩阵 U

  步骤 1 :初始化聚类中心 c i,i=1,…,c 。典型的做法是从所有数据点中任取 c 个点。

  步骤 2 :用式( 6.4 )确定隶属矩阵 U

  步骤 3 :根据式( 6.2 )计算价值函数。如果它小于某个确定的阀值,或它相对上次价值函数质的改变量小于某个阀值,则算法停止。

  步骤 4 :根据式( 6.5 )修正聚类中心。返回步骤 2

  该算法本身是迭代的,且不能确保它收敛于最优解。 K 均值算法的性能依赖于聚类中心的初始位置。所以,为了使它可取,要么用一些前端方法求好的初始聚类中心;要么每次用不同的初始聚类中心,将该算法运行多次。此外,上述算法仅仅是一种具有代表性的方法;我们还可以先初始化一个任意的隶属矩阵,然后再执行迭代过程。

  K 均值算法也可以在线方式运行。这时,通过时间平均,导出相应的聚类中心和相应的组。即对于给定的数据点 x ,该算法求最近的聚类中心 c i,并用下面公式进行修正:

         

                (6.8)

  这种在线公式本质上嵌入了许多非监督学习神经元网络的学习法则。

3    模糊 C 均值聚类

  模糊 C 均值聚类 FCM ),即众所周知的模糊 ISODATA ,是用隶属度确定每个数据点属于某个聚类的程度的一种聚类算法。 1973 年, Bezdek 提出了该算法,作为早期硬 C 均值聚类( HCM )方法的一种改进。

  FCM n 个向量 x i(i=1,2,…,n )分为 c 个模糊组,并求每组的聚类中心,使得非相似性指标的价值函数达到最小。 FCM HCM 的主要区别在于 FCM 用模糊划分,使得每个给定数据点用值在 0 1 间的隶属度来确定其属于各个组的程度。与引入模糊划分相适应,隶属矩阵 U 允许有取值在 0 1 间的元素。不过,加上归一化规定,一个数据集的隶属度的和总等于 1          

             (6.9)

  那么, FCM 的价值函数(或目标函数)就是式( 6.2 )的一般化形式:    

           (6.10)

  这里 u ij介于 0 1 间; c i为模糊组I的聚类中心, d ij=||ci-xj|| 为第 I个聚类中心与第 j 个数据点间的欧几里德距离;且 是一个加权指数。

  构造如下新的目标函数,可求得使( 6.10 )式达到最小值的必要条件:

   

         (6.11)

  这里lj, j=1 n ,是( 6.9 )式的 n 个约束式的拉格朗日乘子。对所有输入参量求导,使式( 6.10 )达到最小的必要条件为:

                         (6.12)

和            

          (6.13)

  由上述两个必要条件,模糊 C 均值聚类算法是一个简单的迭代过程。在批处理方式运行时, FCM 用下列步骤确定聚类中心 c i和隶属矩阵 U[1]

  步骤 1 :用值在 0 1 间的随机数初始化隶属矩阵 U ,使其满足式( 6.9 )中的约束条件

  步骤 2 :用式( 6.12 )计算 c 个聚类中心 c i, i=1, …,c

  步骤 3 :根据式( 6.10 )计算价值函数。如果它小于某个确定的阀值,或它相对上次价值函数值的改变量小于某个阀值,则算法停止。

  步骤 4 :用( 6.13 )计算新的 U 矩阵。返回步骤 2

  上述算法也可以先初始化聚类中心,然后再执行迭代过程。由于不能确保 FCM 收敛于一个最优解。算法的性能依赖于初始聚类中心。因此,我们要么用另外的快速算法确定初始聚类中心,要么每次用不同的初始聚类中心启动该算法,多次运行 FCM

4 FCM 算法的应用

  通过上面的讨论,我们不难看出 FCM 算法需要两个参数一个是聚类数目 C ,另一个是参数 m 。一般来讲 C 要远远小于聚类样本的总个数,同时要保证 C>1 。对于 m ,它是一个控制算法的柔性的参数,如果 m 过大,则聚类效果会很次,而如果 m 过小则算法会接近 HCM 聚类算法。

  算法的输出是 C 个聚类中心点向量和 C*N 的一个模糊划分矩阵,这个矩阵表示的是每个样本点属于每个类的隶属度。根据这个划分矩阵按照模糊集合中的最大隶属原则就能够确定每个样本点归为哪个类。聚类中心表示的是每个类的平均特征,可以认为是这个类的代表点。

  从算法的推导过程中我们不难看出,算法对于满足正态分布的数据聚类效果会很好,另外,算法对孤立点是敏感的。

FCM聚类算法简介


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论