k-means, EM, fuzzy c-means算法的异同

k-means算法, EM算法, fuzzy c-means算法的异同

  • 这篇博客: fuzzy c-means 与 k-means实验对比中的 一、fuzzy c-means(FCM) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1.1 fuzzy c-means算法简介
    FCM的C跟K-Means的K是一样的,指的是聚类的数目。F–Fuzzy是模糊的意思,指的是”一个事件发生的程度“,用在我们的聚类上面,第一条记录以怎样的概率或者说程度属于第一类,又以怎样的程度属于第二类等等。跟传统的聚类有所区别的地方就是,他改变了传统分类的时候非此即彼的一个现象,一个对象可以以不同的程度同时属于多个类。
    FCM算法首先是由E. Ruspini提出来的,后来J. C. Dunn与J. C. Bezdek将E. Ruspini算法从硬聚类算法推广成模糊聚类算法。FCM算法是基于对目标函数的优化基础上的一种数据聚类方法。聚类结果是每一个数据点对聚类中心的隶属程度,该隶属程度用一个数值来表示。FCM算法是一种无监督的模糊聚类方法,在算法实现过程中不需要人为的干预,它通过优化目标函数得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行分类的目的。

    1.2 fuzzy c-means算法实现原理
    模糊c均值聚类融合了模糊理论的精髓。相比较于k-means的硬聚类,模糊c提供了更加灵活的聚类结果。因为大部分情况下,数据集中的对象不能划分成为明显分离的簇,因此,对每个对象和每个簇赋予一个权值,指明对象属于该簇的程度。
    隶属度函数是表示一个对象x隶属于集合A的程度的函数,通常记做μA(x), 其自变量范围是所有可能属于集合A的对象(即集合A所在空间中的所有点),μ A(x)的取值范围是[0,1],即0≤= μ A(x)<=1。越接近于1表示隶属度越高,反之越低。
    算法的总概况为:给每个样本赋予属于每个簇的隶属度函数。通过隶属度值大小来将样本归类。

    流程图:
    在这里插入图片描述
    即有a个类,共有N个数据,对于某一数据,其在所有类的隶属度值的和为1,
    对于某一个类,所有数据的隶属度值和小于N。

    1.3关于k均值与模糊c均值的区别
    k均值聚类:是一种硬聚类算法,隶属度只有两个取值:0或1,其提出的基本根据是“内误差平方和最小化” 的准则,进行相关的必要调整优先进行优化看是经典的欧拉距离,同样可以理解成通过对于cluster的类的内部的误差求解误差的平方和来决定是否完成相关的聚类操作。
    模糊的c均值聚类算法: 是一种模糊聚类算法,是k均值聚类算法的推广形式,隶属度取值为[0 1] 区间内的任何数,提出的基本根据是“类内加权误差平方和最小化”准则。
    这两个方法都是迭代求取最终的聚类划分,即聚类中心与隶属度值。两者都不能保证找到问题的最优解,都有可能收敛到局部极值,模糊c均值甚至可能是鞍点。