FCM(fuzzy c-means)
模糊c均值聚類融合了模糊理論的精髓。相較於k-means的硬聚類,模糊c提供了更加靈活的聚類結果。因為大部分情況下,數據集中的對象不能划分成為明顯分離的簇,指派一個對象到一個特定的簇有些生硬,也可能會出錯。故,對每個對象和每個簇賦予一個權值,指明對象屬於該簇的程度。當然,基於概率的方法也可以給出這樣的權值,但是有時候我們很難確定一個合適的統計模型,因此使用具有自然地、非概率特性的模糊c均值就是一個比較好的選擇。
聚類損失函數:
N個樣本,分為C類。C是聚類的簇數;i,j是標號;表示 樣本i 屬於 j類 的隸屬度。
xi表示第i個樣本,xi是具有d維特征的一個樣本。cj是j簇的中心,也具有d維度。||*||可以是任意表示距離的度量。
模糊c是一個不斷迭代計算隸屬度和簇中心的過程,直到他們達到最優。
對於單個樣本xi,它對於每個簇的隸屬度之和為1。
迭代的終止條件為:
其中k是迭代步數,是誤差閾值。上式含義是,繼續迭代下去,隸屬程度也不會發生較大的變化。即認為隸屬度不變了,已經達到比較優(局部最優或全局最優)狀態了。
該過程收斂於目標Jm的局部最小值或鞍點。
拋開復雜的算式,這個算法的意思就是:給每個樣本賦予屬於每個簇的隸屬度函數。通過隸屬度值大小來將樣本歸類。
算法步驟:
1、初始化 2、計算質心 FCM中的質心有別於傳統質心的地方在於,它是以隸屬度為權重做一個加權平均。 3、更新隸屬度矩陣 |
b一般取2。
【轉載自】
Fuzzy C-Means(模糊C均值聚類)算法原理詳解與python實現 - Yancy的博客 - CSDN博客 https://blog.csdn.net/lyxleft/article/details/88964494