聚類分析--k中心點演算法
k中心點演算法
思想:k-means是每次選簇的均值作為新的中心,迭代直到簇中物件分佈不再變化。其缺點是對於離群點是敏感的,因為一個具有很大極端值的物件會扭曲資料分佈。那麼我們可以考慮新的簇中心不選擇均值而是選擇簇內的某個物件,只要使總的代價降低就可以。
PAM(partitioning around medoid,圍繞中心點的劃分)是具有代表性的k-medoids演算法。
它最初隨機選擇k個物件作為中心點,該演算法反覆的用非代表物件(非中心點)代替代表物件,試圖找出更好的中心點,以改進聚類的質量。
例子:
空間有5點{A,B,C,D,E}, 各點之間距離關係如表,根據pam演算法進行聚類分析。
樣本點 | A | B | C | D | E |
---|---|---|---|---|---|
A | 0 | 1 | 2 | 2 | 3 |
B | 1 | 0 | 2 | 4 | 3 |
C | 2 | 2 | 0 | 1 | 5 |
D | 2 | 4 | 1 | 0 | 3 |
A | 3 | 3 | 5 | 3 | 0 |
假設分為2類,以A,B為中心點,初始聚類為{A,C,D}和{B,E}。接下來進行交換(以非代表物件代替代表物件),我們需要計算TCAC、TCAD、TCAE、TCBC、TCBD、TCBE。
TCij表示用非中心點j替換中心點i所產生的代價。
計算TCAC:當A被C替換後,設一指標p遍歷所有物件,判斷他們是否聚到別的類裡。
- 先看A是否變化:C成為中心點後,A離B比A離C近,故A被劃分到B簇裡。所產生的代價為d(A,B)-d(A,A)=1(d(i,j)表示i劃分到中心點j的距離;差值表示屬於新的中心點-屬於舊的中心點產生的代價。)
- 看B是否變化:C成為中心點後,B當然離自己是最近的,不變
- 看C是否變化:C成為中心點後,C劃分到C簇裡,代價為d(C,C)-d(C,A)=-2
- 看D是否變化:C成為中心點後,D離C最近,故劃分到C裡,代價為d(D,C)-d(D,A)=-1;
- 看E是否變化:C成為中心點後,E離B最近,為0
TCAC就等於上述的代價之和,為1+0-2-1+0=-2。
同理需要計算TCAD=-2、TCAE=-1、TCBC=-2、TCBD=-2、TCBE=-2
然後選取代價最小的替換,這裡有多個選擇,隨便選擇一個就行。選C的話,新的簇為{C,D}和{A,B,E}。新的簇中心為C,B,繼續迭代計算直到收斂。
為了判定一個非代表物件orandom是否是當前一個代表物件oi的好的替代,對於每一個非中心點p,需要考慮下面4中情況:
第一種情況:p當前隸屬於代表物件oj(A類中心點),如果oj被orandom所代替作為代表物件,並且p離其他代表物件oi(B類的中心點)最近,則p重新分配給oi。(i!=j)
第二種情況:p當前隸屬於代表物件oj(A類中心點),如果oj被orandom所代替作為代表物件,並且p離orandom(新的中心點)最近,則p重新分配給orandom。(i!=j)
第三種情況:p當前隸屬於代表物件oi(B類中心點),如果oj被orandom所代替作為代表物件,並且p仍然離oi最近,則p不發生變化。(i!=j)
第四種情況:p當前隸屬於代表物件oi(B類中心點),如果oj被orandom所代替作為代表物件,並且p離orandom最近,則p重新分配給orandom。(i!=j)
相關文章
- K-均值聚類分析聚類
- 聚類之K均值聚類和EM演算法聚類演算法
- 【機器學習】K-means聚類分析機器學習聚類
- K-means聚類演算法聚類演算法
- k-means 聚類演算法聚類演算法
- 04聚類演算法-程式碼案例一-K-means聚類聚類演算法
- K-Means聚類演算法原理聚類演算法
- 部分聚類演算法簡介及優缺點分析聚類演算法
- 【Python機器學習實戰】聚類演算法(1)——K-Means聚類Python機器學習聚類演算法
- 演算法雜貨鋪:k均值聚類(K-means)演算法聚類
- 資料分析與挖掘 - R語言:K-means聚類演算法R語言聚類演算法
- 聚類演算法與K-means實現聚類演算法
- 聚類分析聚類
- 《機器學習實戰》kMeans演算法(K均值聚類演算法)機器學習演算法聚類
- k-means聚類聚類
- mahout之聚類演算法——KMeans分析聚類演算法
- 演算法金 | 一文讀懂K均值(K-Means)聚類演算法演算法聚類
- k-medoids與k-Means聚類演算法的異同聚類演算法
- 聚類演算法聚類演算法
- k-均值聚類簡介聚類
- Python k-均值聚類演算法二維例項Python聚類演算法
- 演算法金 | K-均值、層次、DBSCAN聚類方法解析演算法聚類
- 第十三篇:K-Means 聚類演算法原理分析與程式碼實現聚類演算法
- 聚類(part3)--高階聚類演算法聚類演算法
- 機器學習—聚類5-1(K-Means演算法+瑞士捲)機器學習聚類演算法
- 機器學習之k-means聚類演算法(python實現)機器學習聚類演算法Python
- 資料探勘聚類之k-medoids演算法實現聚類演算法
- 聚類分析-案例:客戶特徵的聚類與探索性分析聚類特徵
- Kmeans如何初始化聚類中心聚類
- OPTICS聚類演算法原理聚類演算法
- 初探DBSCAN聚類演算法聚類演算法
- 聚類演算法綜述聚類演算法
- DBSCAN密度聚類演算法聚類演算法
- BIRCH聚類演算法原理聚類演算法
- 聚類之dbscan演算法聚類演算法
- Meanshift,聚類演算法聚類演算法
- 機器學習-聚類分析之DBSCAN機器學習聚類
- 14聚類演算法-程式碼案例六-譜聚類(SC)演算法案例聚類演算法