文章目录

  • 模糊c均值聚类
  • 目标函数
  • 求目标函数中的U、C
  • 计算步骤


模糊c均值聚类

目标函数

假设二维空间中有一堆点,点分为两类C1、C2,那么对于任意一个点都有其u1j+u2j=1,u1j表示该点属于C1的隶属值(隶属值越大肯定是越属于这一类的可能性大),同理u2j表示该点属于C2的隶属值,有多少个聚类心就有多少个隶属的值

我们当然希望属于C1的点到C1的中心越小越好,到C2的距离越大越好,所以可以采用(u1j的m次方)乘以(该点到C1的欧式距离),同理(u2j的m次方)乘以(该点到C2的欧式距离),这样我们可以看到,隶属度越大,次方越大,该值越大;隶属度越小,次方越小,该值越小,约等于0(其中m>1)

这个公式的含义表示全部点到C2,那我们就可以发现所属C1的值非常小忽略不计,公式中的u2,N表示第N个点到C2中心的距离

模糊c均值聚类算法举例 模糊c均值聚类推导_聚类算法

然后我们希望在C1范围内的点越小越好,同样的在C2范围内的点该值越小越好,那就可以将两个最后的值加起来,得出如下公式

模糊c均值聚类算法举例 模糊c均值聚类推导_模糊c均值聚类算法举例_02

最后我们就是要确定u的值(Membership values 隶属值)以及C值,此外还有一个先提条件不要忘记(u1,N+u2,N=1,两个C点),将上述公式转换为通式

模糊c均值聚类算法举例 模糊c均值聚类推导_模糊c均值聚类算法举例_03

求目标函数中的U、C

由于我们有限制的条件(u1,N+u2,N=1),所以可以采用拉格朗日乘数法,转换完后公式为,参数应该为三个Uij、Cj、入j,下图少写一个

模糊c均值聚类算法举例 模糊c均值聚类推导_聚类算法_04

这个公式我们可以求出极值点那就可以对Uij求导再将式子赋值为0,推导Uij最终结果为

模糊c均值聚类算法举例 模糊c均值聚类推导_深度学习_05

这个公式我们可以求出极值点那就可以对Cj求导再将式子赋值为0,推导Cj最终结果为

模糊c均值聚类算法举例 模糊c均值聚类推导_深度学习_06

计算步骤

1、先是随机产生一堆的U

2、用这些U算中心C

3、有了C又可以算U,这样循环往复

模糊c均值聚类算法举例 模糊c均值聚类推导_模糊c均值聚类_07

4、当J值的变化不大的时候就可以停止,一般是与上一个J值的绝对值小于某个数