Fuzzy c-means

Fuzzy c-means

​ 模糊C-均值聚类算法:是一种模糊聚类算法,是K均值算法聚类的推广形式,隶属度取值为[0,1]区间内的任意一个数,提出的基本依据是“类内加权误差平方和最小化”准则。

​ 这两个方法都是迭代求取最终的聚类划分,即聚类中心与隶属度值。两者都不能保证找到问题的最优解,都有可能收敛到局部极值,模糊c均值甚至可能是鞍点。

Fuzzy c-means Algorithm

样本矩阵: X = [ x 1 , x 2 , . . . , x n ] ∈ R d × n X=[x_1,x_2,...,x_n] ∈R^{d×n} X=[x1,x2,...,xn]Rd×n,有n个 x i x_i xi每个 x i x_i xi是d维

簇集合: C = [ C 1 , C 2 , . . . , C c ] C=[C_1,C_2,...,C_c] C=[C1,C2,...,Cc],有c个簇集合

加权误差平方和:计算每个样本点和相应簇均值的加权误差平方和,即:
m i n F 1 = 1 , F ≥ 0 , M ∑ j = 1 c ∑ i = 1 n f i j r ∣ ∣ x i − m j ∣ ∣ 2 2               ( 1 )    ⟺    m i n F 1 = 1 , F ≥ 0 , M ∑ j = 1 c ∑ i = 1 n f i j r ( x i T x i − 2 x i T m j + m j T m j ) m j 是矩阵 M ∈ R d × c 的第 j 列 , 表示第 c 个集合的均值 ; f i j ∈ [ 0 , 1 ] 是隶属矩阵 F 的 i 行 j 列元素,表示第 i 个样本对第 j 个簇的隶属度 ; F 1 = 1 表示 ∑ j = 1 c f i j = 1 ; r 是模糊器参数或者加权指数, r 的值是大于 1 的实数,当 r 越趋向于 1 聚类越清晰, 但是当 r 达到无穷大时聚类就变得更模糊 . 当 r = 1 时 F C M 等价于 K M E A N \underset{F1=1,F\geq 0,M}{min}\sum_{j=1}^c\sum_{i=1}^n f_{ij}^r||x_i-m_j||_2^2\ \ \ \ \ \ \ \ \ \ \ \ \ (1)\\ \\ \iff \underset{F1=1,F\geq 0,M}{min}\sum_{j=1}^c\sum_{i=1}^n f_{ij}^r(x_i^Tx_i-2x_i^Tm_j+m_j^Tm_j)\\ \\ m_j是矩阵M∈R^{d×c}的第j列,表示第c个集合的均值;\\ \\ f_{ij}∈[0,1]是隶属矩阵F的i行j列元素,表示第i个样本对第j个簇的隶属度;\\ \\ F1=1表示\sum_{j=1}^cf_{ij}=1;\\ \\ r是模糊器参数或者加权指数,r的值是大于1的实数,当r越趋向于1聚类越清晰,\\但是当r达到无穷大时聚类就变得更模糊.当r=1时FCM等价于KMEAN F1=1,F0,Mminj=1ci=1nfijr∣∣ximj22             (1)F1=1,F0,Mminj=1ci=1nfijr(xiTxi2xiTmj+mjTmj)mj是矩阵MRd×c的第j,表示第c个集合的均值;fij[0,1]是隶属矩阵Fij列元素,表示第i个样本对第j个簇的隶属度;F1=1表示j=1cfij=1;r是模糊器参数或者加权指数,r的值是大于1的实数,当r越趋向于1聚类越清晰,但是当r达到无穷大时聚类就变得更模糊.r=1FCM等价于KMEAN

​ 上述问题可以看作:
m i n F 1 = 1 , F ≥ 0 , M ∑ j = 1 c ∑ i = 1 n f i j r ( x i T x i − 2 x i T m j + m j T m j ) s . t . ∑ j = 1 c f i j = 1 ,    F ≥ 0 \underset{F1=1,F\geq 0,M}{min}\sum_{j=1}^c\sum_{i=1}^n f_{ij}^r(x_i^Tx_i-2x_i^Tm_j+m_j^Tm_j) \\ \\ s.t.\sum_{j=1}^cf_{ij}=1, \ \ F\geq0 F1=1,F0,Mminj=1ci=1nfijr(xiTxi2xiTmj+mjTmj)s.t.j=1cfij=1,  F0
​ 用拉格朗日乘子法:
J = ∑ j = 1 c ∑ i = 1 n f i j r ( x i T x i − 2 x i T m j + m j T m j ) + λ 1 ( ∑ j = 1 c f i j − 1 ) + λ 2 ( ∑ j = 1 c f i j − 1 ) + . . . + λ n ( ∑ j = 1 c f i j − 1 ) = ∑ j = 1 c ∑ i = 1 n f i j r ( x i T x i − 2 x i T m j + m j T m j ) + ∑ i = 1 n λ i ( ∑ j = 1 c f i j − 1 ) f i j = 1 ∑ k = 1 c ( d i j d i k ) 2 r − 1 = ( d i j ) 2 1 − r ∑ k = 1 c ( d i k ) 2 1 − r      ( 2 ) m j = ∑ i = 1 n f i j r x i ∑ i = 1 n f i j r = ∑ i = 1 n g i j x i ∑ i = 1 n g i j = X g j g j T 1      ( 3 ) 其中 d i j = ∣ ∣ x i − m j ∣ ∣ 2 2 ,   f i j r = g i j        J=\sum_{j=1}^c\sum_{i=1}^n f_{ij}^r(x_i^Tx_i-2x_i^Tm_j+m_j^Tm_j)+\lambda_1(\sum_{j=1}^cf_{ij}-1)+\lambda_2(\sum_{j=1}^cf_{ij}-1)+...+\lambda_n(\sum_{j=1}^cf_{ij}-1)\\ =\sum_{j=1}^c\sum_{i=1}^n f_{ij}^r(x_i^Tx_i-2x_i^Tm_j+m_j^Tm_j)+\sum_{i=1}^n\lambda_i(\sum_{j=1}^cf_{ij}-1)\\ \\ \\ \\ f_{ij}=\frac1{\sum_{k=1}^c(\frac{d_{ij}}{d_{ik}})^{\frac{2}{r-1}}}=\frac{(d_{ij})^{\frac2{1-r}}}{\sum_{k=1}^c(d_{ik})^{\frac{2}{1-r}}}\ \ \ \ (2)\\ \\ \\ m_j=\frac{\sum_{i=1}^nf_{ij}^r x_i}{\sum_{i=1}^n f_{ij}^r}=\frac{\sum_{i=1}^n g_{ij}x_i}{\sum_{i=1}^n g_{ij}}=\frac{Xg_j}{g_j^T\mathbf{1}}\ \ \ \ (3)\\ \\ 其中d_{ij}=||x_i-m_j||_2^2, \ f_{ij}^r=g_{ij} \ \ \ \ \ \ J=j=1ci=1nfijr(xiTxi2xiTmj+mjTmj)+λ1(j=1cfij1)+λ2(j=1cfij1)+...+λn(j=1cfij1)=j=1ci=1nfijr(xiTxi2xiTmj+mjTmj)+i=1nλi(j=1cfij1)fij=k=1c(dikdij)r121=k=1c(dik)1r2(dij)1r2    (2)mj=i=1nfijri=1nfijrxi=i=1ngiji=1ngijxi=gjT1Xgj    (3)其中dij=∣∣ximj22, fijr=gij      

Algorithm 1 FCM. The standard algorithm for minimizing problem (1) 
    1: Input data matrix X ∈ Rd×n, cluster number c. 
    2: Initialize membership matrix F. 
    3: repeat 
         4: Calculate center matrix M ∈ Rd×c by Eq. (3); 
	     5: Calculate membership matrix F ∈ Rn×c by Eq. (2); 
	6: until convergence 
    7: Output membership matrix F.

你可能感兴趣的:(机器学习)