個人博客地址 Glooow,歡迎光臨~~~
現在想要對
n 個目標
U={x1,...,xn} 分類,並且每個對象都有多個指標,也即
xi={xi1,...,xim}。
模糊聚類通常包括三個步驟:
- 建立模糊矩陣
- 建立模糊等價矩陣
- 進行聚類
1. 數據標準化
實際中各個指標的量綱與數量級很可能相差很大,比如高校評價指標中,可能包括科研經費、論文數量、獲獎數量等,數量級差別很大,這個時候就需要先對各項數據進行標準化。常用方法有
標準差標準化
xij′=σjxij−xˉj
極差正規化
xij′′=max1{xij′}−min1:i⩽n{xij′}xij′−min1≤i≤n{xij′}
極差標準化
xij′=max{xij}−min{xij}xij−xˉi
最大值規格化
xij′=max(x1j,x2j,...,xnj)xij
2. 建立模糊相似矩陣
接下來需要確定不同對象之間的相似度,相似度的確定也有幾種常用度量:
1.1 相關係數類
1.2 距離類
1.3 貼近度類
3. 聚類
獲得模糊相似矩陣以後,需要首先求出傳遞閉包 t(R),以獲得模糊等價矩陣,然後根據不同的閾值 λ 進行聚類,然後再畫出動態聚類圖。
舉個栗子
求解過程如下
0. 特性指標矩陣 |
1. 數據標準化 |
2. 求模糊相似矩陣 |
|
|
|
3. 求傳遞閉包 |
4. 根據不同閾值聚類 |
5. 畫動態聚類圖 |
|
|
|
4. 其他問題
在實際應用過程中,還會出現一些其他問題,比如:
- 在實際應用中,如何選擇適當的 λ?從而給出一個較明確的聚類。
實際中最佳閾值的確定,可以由專家給出值;也可以應用 F-統計量確定最佳閾值。
- 如果不用傳遞閉包,直接對相似矩陣進行聚類會怎麼樣?
直接應用模糊相似矩陣進行聚類時,可以首先確定一個閾值 λ,然後根據截集獲得一系列聚類結果,由於模糊相似矩陣並不是等價矩陣,因此此時的聚類結果是不嚴謹的,後面需要對交集非空的集合進行合併(這裏可能表述的不清楚,看下面的例子就明白了)
- 當樣本點很多時(幾百萬甚至上千萬個像素),例如需 要對一張圖片上的樣本點進行聚類,該怎麼辦?
可以應用模糊C均值法(FCM)
5. 模糊C均值法(FCM)
設 xi(i=1,2,...,n) 是n個樣本組成的樣本集合,c 爲預定的類別數目, uij 是第 i 個樣本對於第 j 類的隸屬度函數。用隸屬度函數定義的聚類損失函數可以寫爲
j=1∑ci=1∑nuijmdij2=j=1∑ci=1∑nuijm∥pj−xi∥2
其中 m>1,Pj 是第 j 類的聚類中心,後面會給出公式。通常也會假設 ∑juij=1。
下面則給出該算法的推導:爲了最小化損失函數,則可以應用 Lagrange 乘子法
J=i=1∑nj=1∑cuijmdij2−i=1∑nλi((j=1∑cuij)−1)
對 λi,uij 求偏導等於 0,則可以得到迭代公式爲
uij=∑k=1c(dik1)2/(m−1)(dij1)2/(m−1)pj=∑i=1nuijm∑i=1nuijmxi
由此就可以給出 FCM 算法的框架