当前位置:   article > 正文

[机器学习]Fuzzy C-Means算法原理解析_如何理解隶属矩阵更新公式

如何理解隶属矩阵更新公式

1、概述

模糊C均值(Fuzzy C-Means、FCM)算法本质上是一个以距离作为衡量标准的聚类算法, 但是与传统的K均值(K-Means)算法相比,FCM算法引入了模糊的概念,此时就没有明确指出样本属于某一个簇,而是通过隶属度来表示样本属于某一个簇的程度。

2、FCM算法的一般步骤

本文以 x i , i = 1 , 2 , . . . , n x_i,i=1,2,...,n xi,i=1,2,...,n为样本,使用FCM算法聚为 e e e个簇。

1)初始化隶属度矩阵

首先使用(0,1)范围内的随机值初始化隶属度矩阵,且要满足约束条件 ∑ j = 1 e u i j = 1 , ∀ i ∈ [ 1 , 2 , . . . , n ] , \sum_{j=1}^{e}u_{ij}=1,\forall i \in [1,2,...,n], j=1euij=1,i[1,2,...,n],其中 u i j u_{ij} uij代表第 i i i个样本 x i x_i xi属于第 j j j个簇的程度。

2)计算聚类中心

使用如下公式计算聚类的中心 c j = ∑ i = 1 n u i j β x i ∑ i = 1 n u i j β , c_j=\frac{\sum_{i=1}^{n}u_{ij}^\beta x_i}{\sum_{i=1}^{n}u_{ij}^\beta}, cj=i=1nuijβi=1nuijβxi,其中 β ( β > 1 ) \beta(\beta>1) β(β>1)表示模糊度。

3)计算目标函数值

使用如下公式计算目标函数 J = ∑ i = 1 n ∑ j = 1 e u i j β d i j 2 , J=\sum_{i=1}^{n}\sum_{j=1}^{e}u_{ij}^\beta d_{ij}^2, J=i=1nj=1euijβdij2,其中 d i j = ∣ ∣ x i − c j ∣ ∣ d_{ij}=||x_i-c_j|| dij=xicj

4)更新隶属度矩阵

使用如下公式更新隶属度矩阵 u i j = 1 ∑ k = 1 e d i j d i k 2 / β − 1 u_{ij}=\frac{1}{\sum_{k=1}^{e}{\frac{d_{ij}}{d_{ik}}}^{2/\beta -1}} uij=k=1edikdij2/β11

5)重复2-4步,不断迭代,使得目标函数值逐渐减小,直至收敛。

3、FCM原理解析

通过FCM算法一般步骤可以看出,FCM算法与传统的K-Means算法相比最大的特点就是引入了模糊数学的概念,并通过隶属度来表达模糊的性质,而与隶属度相关联的还有模糊度 β \beta β,通过 β \beta β来表达模糊的程度。注意到模糊度存在一个约束条件,即 β > 1 \beta>1 β>1,当 β → 1 \beta \to1 β1时,在隶属度的更新公式中 2 / β − 1 → + ∞ , 2/\beta -1 \to +\infty, 2/β1+, ∑ k = 1 e d i j d i k 2 / β − 1 → 1 或 + ∞ 。 {\sum_{k=1}^{e}\frac{d_{ij}}{d_{ik}}}^{2/\beta -1}\to1或+\infty。 k=1edikdij2/β11+ ∵ \because d i j = min ⁡ { d i 1 , d i 2 , . . . , d i k , . . . , d i e } d_{ij}=\min\{d_{i1},d_{i2},...,d_{ik},...,d_{ie}\} dij=min{di1,di2,...,dik,...,die}时, d i j d i k { = 1 , k = j < 1 , k ≠ j , \frac{d_{ij}}{d_{ik}} \left \{

=1,k=j<1,kj
\right., dikdij{=1,k=j<1,k=j,故有 lim ⁡ β → 1 ∑ k = 1 e d i j d i k 2 / β − 1 = 1 ; \lim_{\beta \to 1}{\sum_{k=1}^{e}\frac{d_{ij}}{d_{ik}}}^{2/\beta -1}=1; β1limk=1edikdij2/β1=1; d i j ≠ min ⁡ { d i 1 , d i 2 , . . . , d i k , . . . , d i e } d_{ij}\neq\min\{d_{i1},d_{i2},...,d_{ik},...,d_{ie}\} dij=min{di1,di2,...,dik,...,die}时, d i j d i k { = 1 , d i j = d i k ≻ 1 , d i j > d i k < 1 , d i j < d i k , \frac{d_{ij}}{d_{ik}} \left \{
=1,dij=dik1,dij>dik<1,dij<dik
\right.,
dikdij=1,dij=dik1,dij>dik<1,dij<dik,
故有 lim ⁡ β → 1 ∑ k = 1 e d i j d i k 2 / β − 1 = + ∞ , \lim_{\beta \to 1}{\sum_{k=1}^{e}\frac{d_{ij}}{d_{ik}}}^{2/\beta -1}=+\infty, β1limk=1edikdij2/β1=+, ∴ lim ⁡ β → 1 u i j = 0 或 1 , \therefore\lim_{\beta \to 1}u_{ij}=0或1, β1limuij=01且有 x i x_i xi到距离最近的中心所在的簇的隶属度为1,到其余簇的隶属度为0,此时的FCM算法就等同于K-Means算法,而且此时FCM算法的中心的计算公式也与K-Means算法的中心更新方式相同,而它的目标函数就可以理解为整体的样本点到他们所属的簇中心的距离最小,也与K-Means算法的最终目标大同小异,因此可以将FCM算法视为K-Means算法的推广,K-Means算法是FCM算法在 β \beta β取极限为1时的特例。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/588420
推荐阅读
相关标签
  

闽ICP备14008679号