模糊c-均值聚类(FCM)
模糊聚类是一种软聚类,相对于硬聚类给出了每个对象在每个类别上的可能分布。
模糊c-均值聚类算法 fuzzy c-means algorithm (FCMA)或称( FCM)。在众多模糊聚类算法中,模糊C-均值( FCM) 算法应用最广泛且较成功。
详细数学公式推到及迭代过程可参考http://blog.youkuaiyun.com/yueyedeai/article/details/26713015
代价函数(前半部分是代价函数,后半部分是约束条件的拉格郎日乘数法):
步骤 1:用值在 0,1 间的随机数初始化隶属矩阵 U。
步骤 2:用式(3)计算 c 个聚类中心ci,i=1,…,c。
步骤 3:根据式(1)计算价值函数。如果它小于某个确定的阀值,或它相对上次价 值函数值的改变量小于某个阀值,则算法停止。
步骤 4:用(4)计算新的 U 矩阵和。返回步骤 2。
上述算法也可以先初始化聚类中心,然后再执行迭代过程。
注意:由于不能确保 FCM 收敛于一个最优解。算法的性能依赖于初始聚类中心。因此,我们要么用另外的快速算法确定初始聚类中心,要么每次用不同的初始聚类中心启动该算法,多次运行 FCM。
Mahout代码
在Mahout中,将模糊c-均值聚类视为k-means聚类的扩展,即k-means聚类的模糊形式,因此在Mahout中称为模糊k-means聚类算法,其实就是FCM,k和c都是聚类个数。
狄利克雷过程聚类