文章目录
- 模糊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中心的距离然后我们希望在C1范围内的点越小越好,同样的在C2范围内的点该值越小越好,那就可以将两个最后的值加起来,得出如下公式最后我们就是要确定u的值(Membership values 隶属值)
以及C值
,此外还有一个先提条件不要忘记(u1,N+u2,N=1,两个C点),将上述公式转换为通式
求目标函数中的U、C
由于我们有限制的条件(u1,N+u2,N=1),所以可以采用拉格朗日乘数法,转换完后公式为,参数应该为三个Uij、Cj、入j,下图少写一个这个公式我们可以求出极值点那就可以对Uij
求导再将式子赋值为0,推导Uij最终结果为这个公式我们可以求出极值点那就可以对Cj
求导再将式子赋值为0,推导Cj最终结果为
计算步骤
1、先是随机产生一堆的U
2、用这些U算中心C
3、有了C又可以算U,这样循环往复4、当J值的变化不大的时候就可以停止,一般是与上一个J值的绝对值小于某个数