模糊𝑐–均值聚类算法的原理解释及推导
前置知识:𝑘–均值聚类的缺陷
- 算法要求每个样本数据点在一次迭代过程中只能被划分到某个特定的簇中。
- 样本数据并非都满足这种非此即彼的刚性划分。
在k-均值聚类存在缺陷的情况下,我们提出了模糊c-均值聚类算法。
核心部分:模糊𝑐–均值聚类
基本思想:
- 使用模糊数学中属于[0,1]区间的隶属度指的是度量单个样本隶属于各个簇的程度。
- 规定每个样本到所有簇的隶属度之和均为1,若某个样本到某个簇的隶属度为1,则表示该样本完全隶属于该簇。
原理推导:
-
如图所示:
-
给定示例样本数据集𝐷 = {𝑋1, 𝑋2, … , 𝑋𝑛},假设对数据集𝐷进行模糊聚类得到𝑐个簇𝐶1, 𝐶2, … , 𝐶𝑐,𝐷中任意给定单个样本𝑋𝑖对于第𝑗个簇𝐶𝑗的隶属度为𝛼𝑖𝑗,则可使用如下加权欧式距离𝑤𝑖𝑗度量样本𝑋𝑖与簇𝐶𝑗之间的相关性:
w i j = α i j ( ∑ t = 1 m ( x i t − u j t ) 2 ) 1 2 \mathbf{w}_{\mathbf{ij}}=\mathbf{\alpha }_{\mathbf{ij}}\left( \sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right) ^2} \right) ^{\frac{1}{2}} wij=αij(t=1∑m(xit−ujt)2)21
其中𝑢𝑗𝑡表示第𝑗个簇𝐶𝑗的聚类中心𝑈𝑗第𝑡个坐标分量。 -
依据上述加权欧式距离𝑤𝑖𝑗计算公式可得所有簇内加权距离之和为:
d ( α i j ) = ∑ j = 1 c ∑ i = 1 n α i j ( ∑ t = 1 m ( x i t − u j t ) 2 ) 1 2 \mathbf{d}\left( \mathbf{\alpha }_{\mathbf{ij}} \right) =\sum_{\mathbf{j}=1}^{\mathbf{c}}{\sum_{\mathbf{i}=1}^{\mathbf{n}}{\mathbf{\alpha }_{\mathbf{ij}}\left( \sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right) ^2} \right) ^{\frac{1}{2}}}} d(αij)=j=1∑ci=1∑nαij(t=1∑m(xit−ujt)2)21 -
为控制隶属度对聚类最终效果的影响并简化计算,可将上述加权距离之和𝑑(𝛼𝑖𝑗)改写为如下形式:
J ( α i j ) = ∑ j = 1 c ∑ i = 1 n α i j p ∑ t = 1 m ( x i t − u j t ) 2 \mathbf{J}\left( \mathbf{\alpha }_{\mathbf{ij}} \right) =\sum_{\mathbf{j}=1}^{\mathbf{c}}{\sum_{\mathbf{i}=1}^{\mathbf{n}}{\mathbf{\alpha }_{\mathbf{ij}}^{\mathbf{p}}\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right) ^2}}} J(αij)=j=1∑ci=1∑nαijpt=1∑m(xit−ujt)2
其中𝑝为控制隶属度影响的参数,通常取𝑝 = 2 ,并且𝑝值越大,则隶属度对最终的聚类效果影响就越大。(因为 ∑ j = 1 c α i j = 1 \sum_{\mathbf{j}=1}^{\mathbf{c}}{\mathbf{\alpha }_{\mathbf{ij}}}=1 ∑j=1cαij=1,然后p越大, α i j p \mathbf{\alpha }_{\mathbf{ij}}^{\mathbf{p}} αijp使得不同类别的 α i j \mathbf{\alpha }_{\mathbf{ij}} αij之间的差距变大) -
上述关于𝛼𝑖𝑗的函数𝐽(𝛼𝑖𝑗)既包含所有簇内加权总距离,又包含该聚类算法边界划分的模糊程度,故可将其作为目标函数将样本数据集𝐷的模糊聚类问题转化为J(𝛼𝑖𝑗)的最小值优化问题(这里的意思,就是找到使得xi到c个聚类中心的加权距离和最小的𝛼𝑖𝑗,其中i=1,2,…,c),即:
a r g α i j min J ( α i j ) ; s . t . ∑ j = 1 c α i j = 1 \mathbf{arg}_{\mathbf{\alpha }_{\mathbf{ij}}}\min \mathbf{J}\left( \mathbf{\alpha }_{\mathbf{ij}} \right) \text{;}\mathbf{s}.\mathbf{t}.\sum_{\mathbf{j}=1}^{\mathbf{c}}{\mathbf{\alpha }_{\mathbf{ij}}}=1 argαijminJ(αij);s.t.j=1∑cαij=1 -
可用拉格朗日乘数法求解上述条件优化问题。令拉格朗日函数为:
J ∧ ( α i j ) = ∑ j = 1 c ∑ i = 1 n α i j p ∑ t = 1 m ( x i t − u j t ) 2 + ∑ i = 1 n λ i ( ∑ j = 1 c α i j − 1 ) \overset{\land}{\mathbf{J}}\left( \mathbf{\alpha }_{\mathbf{ij}} \right) =\sum_{\mathbf{j}=1}^{\mathbf{c}}{\sum_{\mathbf{i}=1}^{\mathbf{n}}{\mathbf{\alpha }_{\mathbf{ij}}^{\mathbf{p}}\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right) ^2}}}+\sum_{\mathbf{i}=1}^{\mathbf{n}}{\mathbf{\lambda }_{\mathbf{i}}\left( \sum_{\mathbf{j}=1}^{\mathbf{c}}{\mathbf{\alpha }_{\mathbf{ij}}}-1 \right)} J∧(αij)=j=1∑ci=1∑nαijpt=1∑m(xit−ujt)2+i=1∑nλi⎝⎛j=1∑cαij−1⎠⎞ -
分别令 J ∧ ( α i j ) \overset{\land}{\mathbf{J}}\left( \mathbf{\alpha }_{\mathbf{ij}} \right) J∧(αij)对 α i j \mathbf{\alpha }_{\mathbf{ij}} αij的偏导数为0,则有:
∂ J ∧ ∂ α i j = ∑ j = 1 c ∑ i = 1 n p α i j p − 1 ∑ t = 1 m ( x i t − u j t ) 2 + ∑ i = 1 n c λ i = 0 \frac{\partial \overset{\land}{\mathbf{J}}}{\partial \mathbf{\alpha }_{\mathbf{ij}}}=\sum_{\mathbf{j}=1}^{\mathbf{c}}{\sum_{\mathbf{i}=1}^{\mathbf{n}}{\mathbf{p\alpha }_{\mathbf{ij}}^{\mathbf{p}-1}\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right) ^2}}}+\sum_{\mathbf{i}=1}^{\mathbf{n}}{\mathbf{c\lambda }_{\mathbf{i}}}=0 ∂αij∂J∧=j=1∑ci=1∑npαijp−1t=1∑m(xit−ujt)2+i=1∑ncλi=0
备注:因为是对每一个𝛼𝑖𝑗进行求偏导优化,所以去掉了最外层的对j=1~c的累加求和。解得: α i j = [ − λ i p ∑ t = 1 m ( x i t − u j t ) 2 ] 1 p − 1 \mathbf{\alpha }_{\mathbf{ij}}=\left[ \frac{-\mathbf{\lambda }_{\mathbf{i}}}{\mathbf{p}\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right) ^2}} \right] ^{\frac{1}{\mathbf{p}-1}} αij=[p∑t=1m(xit−ujt)2−λi]p−11
-
然后结合隶属度约束条件 ∑ k = 1 c α i k = 1 \sum_{\mathbf{k}=1}^{\mathbf{c}}{\mathbf{\alpha }_{\mathbf{ik}}}=1 ∑k=1cαik=1,可求解出 ( − λ i p ) 1 p − 1 \left( \frac{-\mathbf{\lambda }_{\mathbf{i}}}{\mathbf{p}} \right) ^{\frac{1}{\mathbf{p}-1}} (p−λi)p−11的表达式:
∑ k = 1 c [ − λ i p ∑ t = 1 m ( x i t − u k t ) 2 ] 1 p − 1 = 1 ⟺ ( − λ i p ) 1 p − 1 ∗ [ ∑ k = 1 c 1 ∑ t = 1 m ( x i t − u k t ) 2 ] 1 p − 1 = 1 ⟺ ( − λ i p ) 1 p − 1 = [ ∑ k = 1 c 1 ∑ t = 1 m ( x i t − u k t ) 2 ] − 1 p − 1 \sum_{\mathbf{k}=1}^{\mathbf{c}}{\left[ \frac{-\mathbf{\lambda }_{\mathbf{i}}}{\mathbf{p}\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{kt}} \right) ^2}} \right] ^{\frac{1}{\mathbf{p}-1}}}=1\Longleftrightarrow \left( \frac{-\mathbf{\lambda }_{\mathbf{i}}}{\mathbf{p}} \right) ^{\frac{1}{\mathbf{p}-1}}\,\,* \left[ \sum_{\mathbf{k}=1}^{\mathbf{c}}{\frac{1}{\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{kt}} \right) ^2}}} \right] ^{\frac{1}{\mathbf{p}-1}}=1 \\ \Longleftrightarrow \left( \frac{-\mathbf{\lambda }_{\mathbf{i}}}{\mathbf{p}} \right) ^{\frac{1}{\mathbf{p}-1}}=\,\,\left[ \sum_{\mathbf{k}=1}^{\mathbf{c}}{\frac{1}{\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{kt}} \right) ^2}}} \right] ^{-\frac{1}{\mathbf{p}-1}} k=1∑c[p∑t=1m(xit−ukt)2−λi]p−11=1⟺(p−λi)p−11∗[k=1∑c∑t=1m(xit−ukt)21]p−11=1⟺(p−λi)p−11=[k=1∑c∑t=1m(xit−ukt)21]−p−11 -
然后代入𝛼𝑖𝑗的表达式进一步消去参数𝜆𝑖,,得到隶属度𝛼𝑖𝑗的计算公式:
α i j = [ − λ i p ∑ t = 1 m ( x i t − u j t ) 2 ] 1 p − 1 = [ ∑ k = 1 c 1 ∑ t = 1 m ( x i t − u k t ) 2 ] − 1 p − 1 ∗ [ 1 ∑ t = 1 m ( x i t − u j t ) 2 ] 1 p − 1 = 1 [ ∑ k = 1 c ∑ t = 1 m ( x i t − u j t ) 2 ∑ t = 1 m ( x i t − u k t ) 2 ] 1 p − 1 \mathbf{\alpha }_{\mathbf{ij}}=\left[ \frac{-\mathbf{\lambda }_{\mathbf{i}}}{\mathbf{p}\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right) ^2}} \right] ^{\frac{1}{\mathbf{p}-1}}=\left[ \sum_{\mathbf{k}=1}^{\mathbf{c}}{\frac{1}{\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{kt}} \right) ^2}}} \right] ^{-\frac{1}{\mathbf{p}-1}}* \left[ \frac{1}{\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right) ^2}} \right] ^{\frac{1}{\mathbf{p}-1}} \\ =\frac{1}{\left[ \sum_{\mathbf{k}=1}^{\mathbf{c}}{\frac{\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right) ^2}}{\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{kt}} \right) ^2}}} \right] ^{\frac{1}{\mathbf{p}-1}}} αij=[p∑t=1m(xit−ujt)2−λi]p−11=[k=1∑c∑t=1m(xit−ukt)21]−p−11∗[∑t=1m(xit−ujt)21]p−11=[∑k=1c∑t=1m(xit−ukt)2∑t=1m(xit−ujt)2]p−111
上式表明第𝑖个样本到第𝑗个簇的最佳隶属度𝛼𝑖𝑗取决于该样本点到第𝑗个簇心的距离与其到所有簇心距离的比值之和。 -
将目标函数 J ∧ ( α i j ) \overset{\land}{\mathbf{J}}\left( \mathbf{\alpha }_{\mathbf{ij}} \right) J∧(αij)看成是聚类中心𝑢𝑗𝑡的函数,即 J ∧ ( u j t ) \overset{\land}{\mathbf{J}}\left( \mathbf{u}_{\mathbf{jt}} \right) J∧(ujt) ,并由此通过对目标函数 J ∧ ( u j t ) \overset{\land}{\mathbf{J}}\left( \mathbf{u}_{\mathbf{jt}} \right) J∧(ujt)作最小值优化计算进一步得到各簇最优聚类中心坐标𝑈𝑗。为此,分别令 J ∧ ( u j t ) \overset{\land}{\mathbf{J}}\left( \mathbf{u}_{\mathbf{jt}} \right) J∧(ujt)关于𝑢𝑗𝑡的偏导数为0,可得到如下方程:
− 2 ∑ j = 1 c ∑ i = 1 n α i j p ∑ t = 1 m ( x i t − u j t ) = 0 ∑ i = 1 n α i j p ∑ t = 1 m ( x i t − u j t ) = 0 -2\sum_{\mathbf{j}=1}^{\mathbf{c}}{\sum_{\mathbf{i}=1}^{\mathbf{n}}{\mathbf{\alpha }_{\mathbf{ij}}^{\mathbf{p}}\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right)}}}=0 \\ \sum_{\mathbf{i}=1}^{\mathbf{n}}{\mathbf{\alpha }_{\mathbf{ij}}^{\mathbf{p}}\sum_{\mathbf{t}=1}^{\mathbf{m}}{\left( \mathbf{x}_{\mathbf{it}}-\mathbf{u}_{\mathbf{jt}} \right)}}=0 −2j=1∑ci=1∑nαijpt=1∑m(xit−ujt)=0i=1∑nαijpt=1∑m(xit−ujt)=0
备注:因为是对特定的uj进行求偏导优化,所以去掉了最外层的对j=1~c的累加求和。 -
由此,可得如下聚类中心计算公式:
u j = ∑ j = 1 n α i j p x i ∑ i = 1 n α i j p \mathbf{u}_{\mathbf{j}}=\frac{\sum_{\mathbf{j}=1}^{\mathbf{n}}{\mathbf{\alpha }_{\mathbf{ij}}^{\mathbf{p}}\mathbf{x}_{\mathbf{i}}\,\,}}{\sum_{\mathbf{i}=1}^{\mathbf{n}}{\mathbf{\alpha }_{\mathbf{ij}}^{\mathbf{p}}}} uj=∑i=1nαijp∑j=1nαijpxi
算法流程及实例分析:
模糊𝑐–均值聚类算法依据上述隶属度和聚类中心计算公式,算法具体步骤如下:
-
(1)设定簇的数目𝑐和阈值𝜀,并令𝑠 = 0。随机初始化所有样本对所有簇的隶属度,并将其记录在隶属度矩阵𝑄中, 即:
Q 0 = ( α 11 . . α 1 c . . . . . . α n 1 . . α n c ) \mathbf{Q}^0=\left( \begin{matrix} \mathbf{\alpha }_{11}& ..& \mathbf{\alpha }_{1\mathbf{c}}\\ ..& ..& ..\\ \mathbf{\alpha }_{\mathbf{n}1}& ..& \mathbf{\alpha }_{\mathbf{nc}}\\ \end{matrix} \right) Q0=⎝⎛α11..αn1......α1c..αnc⎠⎞
其中元素𝛼𝑖𝑗为非负实数且满足隶属度约束条件 ∑ j = 1 c α i j = 1 \sum_{\mathbf{j}=1}^{\mathbf{c}}{\mathbf{\alpha }_{\mathbf{ij}}}=1 ∑j=1cαij=1。(2)使用隶属度矩阵𝑄计算各簇的聚类中心 u j s \mathbf{u}_{\mathbf{j}}^{\mathbf{s}} ujs,𝑗 = 1,2, … , 𝑐, 计算目标函数值Js。
(3)若𝐽𝑠≥ε或| 𝐽𝑠 − 𝐽𝑠−1| ≥ ε,则更新隶属度矩阵𝑄,令𝑠=𝑠+1并返回步骤2;否则,依据隶属度矩阵𝑄𝑠得到聚类结果并结束算法。
-
例题:现假设在二维平面中有6个点,如表所示,试使用模糊𝑐–均值聚类算法对数据集进行模糊二均值聚类,当每个聚 中心相邻两次迭代的变化均小于10−4时停止聚类过程并算出相应的聚类中心和隶属度矩阵结果。
-
-
-