FCM聚类算法介绍

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

https://www.cnblogs.com/sddai/p/6259553.html

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}上的模糊子集。对于有限个对象x1,x2,……,xn模糊集合可以表示为:

              

  FCM聚类算法介绍   (6.1)

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

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

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

      

  FCM聚类算法介绍       (6.2)

  这里是组i内的价值函数。这样Ji的值依赖于Gi的几何特性和ci的位置。

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

       

  FCM聚类算法介绍        (6.3)

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

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

 

  FCM聚类算法介绍     (6.4)

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

       

  FCM聚类算法介绍       (6.5)

且         

  FCM聚类算法介绍                 (6.6)

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

  FCM聚类算法介绍               (6.7)

  这里|Gi|是Gi的规模或。

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

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

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

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

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

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

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

         

  FCM聚类算法介绍             (6.8)

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

3   模糊C均值聚类

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

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

FCM聚类算法介绍             (6.9)

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

FCM聚类算法介绍          (6.10)

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

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

   

  FCM聚类算法介绍      (6.11)

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

          FCM聚类算法介绍              (6.12)

和            

  FCM聚类算法介绍       (6.13)

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

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

  步骤2:用式(6.12)计算c个聚类中心ci,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的一个模糊划分矩阵,这个矩阵表示的是每个样本点属于每个类的隶属度。根据这个划分矩阵按照模糊集合中的最大隶属原则就能够确定每个样本点归为哪个类。聚类中心表示的是每个类的平均特征,可以认为是这个类的代表点。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225676.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午8:47
下一篇 2026年3月17日 上午8:48


相关推荐

  • 强连通图的算法

    强连通图的算法有向图强连通分量的 Tarjan 算法 有向图强连通分量 在有向图 G 中 如果两个顶点间至少存在一条路径 称两个顶点强连通 stronglyconn 如果有向图 G 的每两个顶点都强连通 称 G 是一个强连通图 非强连通图有向图的极大强连通子图 称为强连通分量 stron

    2026年3月18日
    3
  • eclipse检出svn代码_系统出现乱码怎么办

    eclipse检出svn代码_系统出现乱码怎么办eclipse默认编码格式为GBK 将其更改为utf-8即可

    2022年10月14日
    4
  • 向量内积的矩阵表示为_列向量乘列向量的转置

    向量内积的矩阵表示为_列向量乘列向量的转置设x,y是两个相同个数分量的向量,则 表示x和y的内积。比如这页书就是这个意思:

    2025年12月8日
    7
  • copy命令介绍

    copy命令介绍COPY 命令可以快速的导入数据到 postgresql 数据库中 文件格式类似 TXT CVS 之类 适合批量导入数据 速度比较快 注意 COPY 只能用于表 不能用于视图 COPY nbsp 命令里面的文件必须是由服务器直接读或写的文件 而不是由客户端应用读写 因此 它们必须位于数据库服务器上或者可以为数据库服务器所访问 而不是由客户端做这些事情 它们必须是 PostgresqlSQ 用户 服务器运行的用户

    2026年3月16日
    2
  • 检查网络配置信息

    检查网络配置信息

    2022年1月9日
    59
  • 【转载】男人选妻有什么实用主义标准?「建议收藏」

    【转载】男人选妻有什么实用主义标准?「建议收藏」 在现实生活中,有相当一部分事业和生活都非常优秀的剩女们,总是没有不懂男人们在选择妻子时的心里到底在想些什么?更让她们不能接受的是,为什么男人讨老婆总是喜欢找一些看起来貌不出众,或学历与家景比自己差很多的女孩为妻。反而是像自己无论是学历文凭、家庭背景、从事职业甚至收入水平都明显高人一截的女人,反倒成了没男人追求最终被剩下的那个女人了。其实,男人找女朋友跟最终选择结婚对象时的想法是不一样的,…

    2022年5月4日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号