赞
踩
模糊C均值(Fuzzy C-Means、FCM)算法本质上是一个以距离作为衡量标准的聚类算法, 但是与传统的K均值(K-Means)算法相比,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=1∑euij=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=1∑nj=1∑euijβdij2,其中 d i j = ∣ ∣ x i − c j ∣ ∣ d_{ij}=||x_i-c_j|| dij=∣∣xi−cj∣∣。
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步,不断迭代,使得目标函数值逐渐减小,直至收敛。
通过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=1∑edikdij2/β−1→1或+∞。
∵
\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 \{
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。