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,F≥0,Mmin?j=1∑c?i=1∑n?fijr?∣∣xi??mj?∣∣22??????????????(1)?F1=1,F≥0,Mmin?j=1∑c?i=1∑n?fijr?(xiT?xi??2xiT?mj?+mjT?mj?)mj?是矩陣M∈Rd×c的第j列,表示第c個集合的均值;fij?∈[0,1]是隸屬矩陣F的i行j列元素,表示第i個樣本對第j個簇的隸屬度;F1=1表示j=1∑c?fij?=1;r是模糊器參數或者加權指數,r的值是大于1的實數,當r越趨向于1聚類越清晰,但是當r達到無窮大時聚類就變得更模糊.當r=1時FCM等價于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,F≥0,Mmin?j=1∑c?i=1∑n?fijr?(xiT?xi??2xiT?mj?+mjT?mj?)s.t.j=1∑c?fij?=1,??F≥0
? 用拉格朗日乘子法:
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=1∑c?i=1∑n?fijr?(xiT?xi??2xiT?mj?+mjT?mj?)+λ1?(j=1∑c?fij??1)+λ2?(j=1∑c?fij??1)+...+λn?(j=1∑c?fij??1)=j=1∑c?i=1∑n?fijr?(xiT?xi??2xiT?mj?+mjT?mj?)+i=1∑n?λi?(j=1∑c?fij??1)fij?=∑k=1c?(dik?dij??)r?12?1?=∑k=1c?(dik?)1?r2?(dij?)1?r2??????(2)mj?=∑i=1n?fijr?∑i=1n?fijr?xi??=∑i=1n?gij?∑i=1n?gij?xi??=gjT?1Xgj??????(3)其中dij?=∣∣xi??mj?∣∣22?,?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.