1. 程式人生 > >Fuzzy C Means 算法及其 Python 實現——寫得很清楚,見原文

Fuzzy C Means 算法及其 Python 實現——寫得很清楚,見原文

少包 均值 平均值 劃分 gin 及其 end 5% 指數

Fuzzy C Means 算法及其 Python 實現

轉自:http://note4code.com/2015/04/14/fuzzy-c-means-%E7%AE%97%E6%B3%95%E5%8F%8A%E5%85%B6-python-%E5%AE%9E%E7%8E%B0/

1. 技術分享 算法向 技術分享 算法的擴展

技術分享 算法中,如果要將數據集合 技術分享 劃分為 技術分享 個類,使得任意數據對象 技術分享 必須屬於並且僅屬於一個類,同時每一個類至少包含一個數據對象,那麽可以用一個 技術分享 的矩陣 技術分享 來表示,矩陣中的任意一個元素 技術分享 可以表示為:

技術分享

其中 技術分享 表示第 技術分享 個類。並且 技術分享 需要滿足如下條件 技術分享

技術分享

如果上述矩陣 技術分享 中的元素 技術分享 的取值範圍不僅僅是 0 或者 1,那麽就可以推廣到模糊集合上的劃分,技術分享

就變成了模糊判定矩陣。此時 技術分享 需滿足:

(1) 技術分享

2. 目標函數與聚類中心

技術分享 算法在度量數據對象的非相似性(或者說距離)時一般使用歐幾裏得距離,要求每個類的聚類中心與數據對象的距離平方之和最小,目標函數可以表示為:

技術分享

技術分享

其中 技術分享 表示任意聚類中心,而聚類中心一般取類內所有對象在各屬性上的平均值,因此可以表示為:

技術分享

技術分享 表示任意一個類。

將算法推廣到模糊集後,技術分享 對樣本與類中心之間的距離采用隸屬度的平方來加權,技術分享 則進一步引入了隸屬度的加權指數 技術分享 從而得到了新的目標函數:

(2) 技術分享

要使得 (2) 式達到最小值則要求聚類中心 技術分享 和隸屬度 技術分享 滿足如下條件:

(3) 技術分享

(4) 技術分享

3. 技術分享 算法計算過程

見原文和代碼實現

Fuzzy C Means 算法及其 Python 實現——寫得很清楚,見原文