生活随笔
收集整理的這篇文章主要介紹了
Fuzzy c-means (FCM)聚类算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 算法原理 允許同一數據屬于多個不同的類。該算法(developed by Dunn in 1973 and improved by Bezdek in 1981)經常用于模式識別,基于最小化 下列目標函數: ????? ,???? 其中, m 是大于1的實數,uij 是xi 屬于類別 j隸屬度, xi 第i個測量到的d維數據, cj 是類j的聚類中心,||*|| 表示任一測量數據與聚類 中心的相似度。 Fuzzy partitioning is 通過下列兩式的更新迭代來使得上述目標函數達到極小: ????? ,???? 當,時迭代停止,0< <1是迭代終止參數,k是迭代輪數。該過程收斂到Jm的一個極小值。 算法由下列步驟組成:
初始化隸屬度矩陣U=[uij] , U(0) 第k輪迭代: 計算中心向量 C(k)=[cj] with U(k) 更新隸屬度矩陣 U(k) , U(k+1) If || U(k+1) - U(k)||< then STOP; otherwise return to step 2. | 說明 如前所述,數據屬于某個類是由隸屬度函數確定的,這正是該算法的模糊行為的體現。在該算法中用一個由0和1之間元素組成的矩陣表達 對象與類別的隸屬關系。 舉一個一維的例子來說,給定一個特定數據集,分布如下圖: 從圖中可以很容易分辨出兩類數據,分別表示為‘A’ and ‘B’. 利用前述的k-means 算法,每個數據關聯一個特定的質心,隸屬度函數 如下所示: 利用FCM 算法,同一個數據并不單獨屬于一個分類,而是可以出現在中間。在這個例子中,隸屬函數變得更加平滑,表明每個數據 可能屬于幾個分類。 上圖中,紅色點表示的數據更可能屬于類別B,而不是A, ‘m’ 的值0.2表明了數據對A的隸屬程度。現在,不用圖表示,我們引入 一個矩陣,其元素取自隸屬函數: ???????? (a)?????????????????????????????????? (b) 矩陣的行數和列數取決于數據和類別的個數,確切的說,行數表示數據個數,列數表示類別個數,矩陣元素表示為 uij. 上面的例子中,我們考慮了k-means (a) and FCM (b) 的例子,可以看出在第一個例子(a) 中的稀疏總是二值,表明每個數據只能屬于一個 分類,其他屬性表示如下: 參考文獻 - J. C. Dunn (1973): "A Fuzzy Relative of the ISODATA Process and Its Use in Detecting Compact Well-Separated Clusters",
- Journal of Cybernetics 3: 32-57
- J. C. Bezdek (1981): "Pattern Recognition with Fuzzy Objective Function Algoritms", Plenum Press, New York
- Tariq Rashid: “Clustering”
http://www.cs.bris.ac.uk/home/tr1690/documentation/fuzzy_clustering_initial_report/node11.html - Hans-Joachim Mucha and Hizir Sofyan: “Nonhierarchical Clustering”
http://www.quantlet.com/mdstat/scripts/xag/html/xaghtmlframe149.html |
link
總結
以上是生活随笔為你收集整理的Fuzzy c-means (FCM)聚类算法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。