聚類篇 (三)K Medoids聚類

2021-10-07 13:07:45 字數 2760 閱讀 7307

k-medoids演算法的基本思想為:對於給定聚類數目k,首先隨機選擇k個代表物件作為初始聚類中心,計算各剩餘物件與代表物件的距離並將其分配給最近的乙個簇,產生相應的聚類結果。然後開始迭代過程:對於每一次迭代,將隨機選擇的乙個非中心點替代原始中心點中的乙個,重新計算聚類結果。若聚類效果有所提高,保留此次替換,否則恢復原中心點。當替換對聚類效果不再有所提高,迭代停止。用代價函式來衡量聚類結果的質量,該函式用來度量物件與中心點之間的平均相異度,具體定義如下:

e =∑

i=1k

∑p∈c

i∣p−

oi∣2

e=\sum\limits_^_}}_} \right|}^}}}

e=i=1∑

k​p∈

ci​∑

​∣p−

oi​∣

2其中,p

pp是空間中的點,即為給定物件,oi_}

oi​代表簇ci_}

ci​的中心點,e

ee則表示資料集中所有物件的離差平方和。

在進行新一輪中心替換後,以new

ci,i

=1,2

,⋯,k

__},i=1,2,\cdots ,k

new​ci

​,i=

1,2,

⋯,k表示新中心集劃分的簇,以old

ci,i

=1,2

,⋯,k

__},i=1,2,\cdots ,k

old​ci

​,i=

1,2,

⋯,k代表原來的簇,它們的聚類評價函式分別為ene

w,eo

ld

_},_}

enew​,

eold

​,則e ne

w=∑i

=1k∑

p∈ne

wci∣

p−oi

∣2

_}=\sum\limits_^_}_}}_} \right|}^}}}

enew​=

i=1∑

k​p∈

new​

ci​∑

​∣p−

oi​∣2eo

ld=∑

i=1k

∑p∈o

ldci

∣p−o

i∣

2_}=\sum\limits_^_}_}}_} \right|}^}}}

eold​=

i=1∑

k​p∈

old​

ci​∑

​∣p−

oi​∣

2由enew

,eol

d_},_}

enew​,

eold

​定義中心替換的代價函式為:cos

t=en

ew−e

ol

dcost=_}-_}

cost=e

new​

−eol

d​聚類所要達到的目標是使得簇內各個物件之間的差異盡可能小,因此,若要判定乙個非代表物件ora

ndom

_}or

ando

m​是否是對當前中心點oi_}

oi​的更優替換點,對於每乙個非中心點物件p

pp,每當重新分配時,平方-誤差e=∑

i=1k

∑p∈c

i∣p−

oi∣2

e=\sum\limits_^_}}_} \right|}^}}}

e=i=1∑

k​p∈

ci​∑

​∣p−

oi​∣

2所產生的差別會對代價函式產生影響,替換所產生的總代價是所有非中心點物件的代價之和。若總代價的值小於零,即實際平方-誤差減小,表明經過替換後,簇內物件之間的差異變得更小了,此時,可用ora

ndom

_}or

ando

m​替換o i_}

oi​作為新的中心點物件。反之,若替換所產生的總代價一直大於或等於零,則未能產生乙個有效的替換,此時演算法收斂。

k-medoids聚類演算法的具體步驟為:

輸入:期望聚類數目k,包含n個資料物件的資料集。

輸出:k個簇,使得所有點與其最近中心點的相異度總和最小。

步驟:(1) 在n個資料物件中隨機選擇k個點,作為初始中心集;

(2) 計算每個非代表物件到各中心點的距離,將其分配給離其最近的簇中;

(3) 對於每個非中心物件,依次執行以下過程:用當前點替換其中乙個中心點,並計算替換所產生的代價函式,若為負,則替換,否則不替換且還原中心點;

(4) 得到乙個最終的較優k個中心點集合,根據最小距離原則重新將所有物件劃分到離其最近的簇中。

說明:k-medoids聚類初始中心的選擇仍可採用最大距離法、最大最小距離法和huffman樹。

下面舉乙個例項,說明k-medoids聚類的邏輯過程。 為研究不同地區的經濟發展特點,根據各地區gdp、gdp指數、人均gdp指標資料,將北京市、天津市、江蘇省等10個地區按照其經濟水平分成3類。

k-medoids演算法在抗雜訊孤立點的能力方面有了很大的提高,但是k-medoids演算法在處理起來花費時間比較長,演算法的時間複雜度為o(t

k(n−

k)2)

o(tk(n-k)^2)

o(tk(n

−k)2

) ,不能很好的擴充套件到大型資料庫上去。

k medoids聚類演算法

k mediods每次選取的中心點,必須是樣本點,而 k means每次選取的中心點可以是樣本點之外的點,就好比中位數和平均值的區別 k medoids演算法步驟 1.任意選取k個初始中心點medoids 2.按照與medoids最近的原則,將剩餘點分配到當前最佳的medoids代表的類中 3.在每...

聚類演算法 k medoids演算法

k means與k medoids之間的差異就是可以理解為對於資料樣本的平均值和中位數之間的差異 前者的取值範圍可以是連續空間中的任意值,而後者的取值卻只能是資料樣本範圍中的樣本。這個原因就是k means對於資料樣本的要求太高了,要求所有資料樣本處在乙個歐式空間中,對於有很多雜訊的資料就會造成極大...

聚類之層次聚類 基於劃分的聚類(

目錄 一層次聚類 層次聚類的原理及分類 層次聚類的流程 層次聚類的優缺點 二劃分聚類法k means kmeans演算法的原理 k均值的優缺點及分類 k means與dbscan的區別 k means注意問題 三基於密度的聚類 dbscan的概念 簇的生成原理及過程 根據資料點的密度分為三類點 db...