聚類分析 k中心點演算法

2021-07-24 16:01:23 字數 1477 閱讀 4202

思想:k-means是每次選簇的均值作為新的中心,迭代直到簇中物件分布不再變化。其缺點是對於離群點是敏感的,因為乙個具有很大極端值的物件會扭曲資料分布。那麼我們可以考慮新的簇中心不選擇均值而是選擇簇內的某個物件,只要使總的代價降低就可以。

pam(partitioning around medoid,圍繞中心點的劃分)是具有代表性的k-medoids演算法。

它最初隨機選擇k個物件作為中心點,該演算法反覆的用非代表物件(非中心點)代替代表物件,試圖找出更好的中心點,以改進聚類的質量。 

例子: 

空間有5點, 各點之間距離關係如表,根據pam演算法進行聚類分析。

樣本點abc

dea0

1223

b102

43c2

2015

d241

03a3

3530

假設分為2類,以a,b為中心點,初始聚類為和。接下來進行交換(以非代表物件代替代表物件),我們需要計算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,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 medoids)

k 中心點演算法 k medoids 前面介紹了 k means 演算法,並列舉了該演算法的缺點。而 k中心點演算法 k medoids 正好能解決 k means 演算法中的 雜訊 敏感這個問題。如何解決的呢?首先,我們得介紹下 k means 演算法為什麼會對 雜訊 敏感。還記得 k means...

聚類分析 K Means演算法

k means演算法 這是基於劃分的聚類演算法,該演算法效率較高,對大規模資料進行聚類時被廣泛使用。基本思路 把資料集劃分成k 個簇,每個簇內部的樣本非常相似,不同簇之間的差異非常大。k means演算法是乙個迭代演算法,先隨機選擇 k個物件,每個物件代表了起中心,對於剩下的物件,將其賦給最近的簇,...

KMeans演算法的K值以及初始類簇中心點的選取

kmeans演算法是最常用的聚類演算法,主要思想是 在給定k值和k個初始類簇中心點的情況下,把每個點 亦即資料記錄 分到離其最近的類簇中心點所代表的類簇中,所有點分配完畢之後,根據乙個類簇內的所有點重新計算該類簇的中心點 取平均值 然後再迭代的進行分配點和更新類簇中心點的步驟,直至類簇中心點的變化很...