FCM(Fuzzy C-means Cluster)学习笔记

听完之后发觉本质上还是一个优化问题,跟着老师推了一遍。

1 目标函数

目标:J(u_{ij},c_{i})=\sum_{i=1}^{K}\sum_{j=1}^{N}u_{ij}^{m}\left \| x_{j}-c_{i} \right \|^2\quad(1)\quad(1)

约束: \sum_{i=1}^{K}u_{ij}=1,j=1,2,...,N

i 聚类的类的序号(共K个)

j 点的数量(共N个)

u_{ij} 第j个点到第i类的隶属度函数 membership value(待计算)

c_{i} 第i类的中心(待计算)

m 模糊性参数

2 最小化函数求u_{ij}

实际就是求一个有约束的优化问题,用拉格朗日乘子法求极小值

问题:

\underset{u_{ij},c_{i}}{min}J(u_{ij},c_{i})=\sum_{i=1}^{K}\sum_{j=1}^{N}u_{ij}^{m}\left \| x_{j}-c_{i} \right \|^2

\sum_{i=1}^{K}u_{ij}=1,j=1,2,...,N

求解:

每个等式约束(共N个)对应一个\lambda

L(u_{ij},c_{i},\lambda _{j})\\=\sum_{i=1}^{K}\sum_{j=1}^{N}u_{ij}^{m}\left \| x_{j}-c_{i} \right \|^2-\lambda _{1}\left ( \sum_{i=1}^{K} u_{i1}-1\right )-\lambda _{2}\left ( \sum_{i=1}^{K} u_{i2}-1\right )-...-\lambda _{N}\left ( \sum_{i=1}^{K} u_{iN}-1\right )\\=\sum_{i=1}^{K}\sum_{j=1}^{N}u_{ij}^{m}\left \| x_{j}-c_{i} \right \|^2-\sum_{j=1}^{N}\lambda _{j}\left ( \sum_{i=1}^{K} u_{ij}-1\right )

u_{ij},c_{i},\lambda _{j}分别求导

L中第一项展开为

\sum_{i=1}^{K}\sum_{j=1}^{N}u_{ij}^{m}\left \| x_{j}-c_{i} \right \|^2=\\u_{11}^{m}\left \| x_{1}-c_{1} \right \|^2+u_{21}^{m}\left \| x_{1}-c_{2} \right \|^2+...+u_{K1}^{m}\left \| x_{1}-c_{K} \right \|^2 \\ +u_{12}^{m}\left \| x_{2}-c_{1} \right \|^2+u_{22}^{m}\left \| x_{2}-c_{2} \right \|^2+...+u_{K2}^{m}\left \| x_{2}-c_{K} \right \|^2\\+...\\+u_{1j}^{m}\left \| x_{j}-c_{1} \right \|^2+u_{2j}^{m}\left \| x_{j}-c_{2} \right \|^2+...+u_{ij}^{m}\left \| x_{j}-c_{K} \right \|^2+...+u_{Kj}^{m}\left \| x_{j}-c_{K} \right \|^2\\+...\\+u_{1N}^{m}\left \| x_{N}-c_{1} \right \|^2+u_{2N}^{m}\left \| x_{N}-c_{2} \right \|^2+...+u_{KN}^{m}\left \| x_{N}-c_{K} \right \|^2\\

L中第二项展开为

\sum_{j=1}^{N}\lambda _{j}\left ( \sum_{i=1}^{K} u_{ij}-1\right )=\\\lambda _{1}\left ( u_{11}+u_{21} +...+u_{k1}-1\right )\\+\lambda _{2}\left ( u_{12}+u_{22} +...+u_{k2}-1\right )\\+...\\+\lambda _{j}\left ( u_{1j}+u_{2j} +...+u_{kj}-1\right )\\+...\\+\lambda _{N}\left ( u_{1N}+u_{2N} +...+u_{kN}-1\right )

于是

\frac{\partial L}{\partial u_{ij}}=mu_{ij}^{m-1}\left \| x_{j}-c_{i} \right \|^2-\lambda _{j}=0

\Rightarrow u_{ij}^{m-1}=\frac{\lambda _{j}}{m\left \| x_{j}-c_{i} \right \|^2}\\ \Rightarrow u_{ij}^{m-1}=\frac{\lambda _{j}}{m}\frac{1}{\left \| x_{j}-c_{i} \right \|^2}

\Rightarrow u_{ij}=(\frac{\lambda _{j}}{m})^\frac{1}{m-1}\frac{1}{\left \| x_{j}-c_{i} \right \|^\frac{2}{m-1}} \quad (2)

使用约束1=\sum_{i=1}^{K}u_{ij}=\sum_{i=1}^{K}(\frac{\lambda _{j}}{m})^\frac{1}{m-1}\frac{1}{\left \| x_{j}-c_{i} \right \|^\frac{2}{m-1}}={\color{Red} (\frac{\lambda _{j}}{m})^\frac{1}{m-1}}\sum_{i=1}^{K}\frac{1}{\left \| x_{j}-c_{i} \right \|^\frac{2}{m-1}}

(\frac{\lambda _{j}}{m})^\frac{1}{m-1}=\frac{1}{\sum_{i=1}^{K}\frac{1}{\left \| x_{j}-c_{i} \right \|^\frac{2}{m-1}}}=\frac{1}{\sum_{​{\color{Red} l}=1}^{K}\frac{1}{\left \| x_{j}-c_{​{\color{Red} l}} \right \|^\frac{2}{m-1}}}\quad(3)

将(3)代入(2)得

u_{ij}=\frac{1}{\sum_{​{ l}=1}^{K}\frac{1}{\left \| x_{j}-c_{​{ l}} \right \|^\frac{2}{m-1}}}\frac{1}{\left \| x_{j}-c_{i} \right \|^\frac{2}{m-1}}=\frac{\frac{1}{\left \| x_{j}-c_{i} \right \|^\frac{2}{m-1}}}{\sum_{​{ l}=1}^{K}\frac{1}{\left \| x_{j}-c_{​{ l}} \right \|^\frac{2}{m-1}}}

u_{ij}=\frac{\frac{1}{\left \| x_{j}-c_{i} \right \|^\frac{2}{m-1}}}{\sum_{​{ l}=1}^{K}\frac{1}{\left \| x_{j}-c_{​{ l}} \right \|^\frac{2}{m-1}}}=\frac{1}{\sum_{​{ l}=1}^{K}\left ( \frac{\left \| x_{j}-c_{i} \right \|}{\left \| x_{j}-c_{l} \right \|} \right )^\frac{2}{m-1}}\quad(4)

(4)式中第一部分有物理意义(m=2时),第二部分比较适合写代码

3 最小化目标函数求c_{i}

\frac{\partial L}{\partial c_{i}}=\sum_{j=1}^{N}u_{ij}^{m}2\left \( x_{j}-c_{i} \right \)^1(0-1)=\sum_{j=1}^{N}(-2)u_{ij}^{m}\left \( x_{j}-c_{i} \right \)=0

\Rightarrow\sum_{j=1}^{N}u_{ij}^{m}x_{j}-(\sum_{j=1}^{N}u_{ij}^{m})c_{i}=0\\

\Rightarrow c_{i}=\frac{\sum_{j=1}^{N}u_{ij}^{m}x_{j}}{\sum_{j=1}^{N}u_{ij}^{m}}\quad(5)

(5)式有物理意义(m=2时)

  4 算法

步骤1 初始化随机产生隶属度函数u_{ij},只需要和为1;

步骤2 在第t步根据(5)计算聚类中心;

步骤3 根据(4)更新u_{ij}

步骤4 根据(1)计算目标函数J^{(t)}

步骤5 如果\left | J^{(t)}-J^{(t-1)} \right |<\varepsilon,停止迭代;否则回到步骤2。

参考

看这个视频学的,老师讲的非常清晰,人也挺幽默,强烈推荐!!!

模糊C聚类FCM(Fuzzy C-means Cluster)_哔哩哔哩_bilibili

你可能感兴趣的:(method,聚类,机器学习,算法)