k means 聚類演算法

2021-08-15 12:55:28 字數 2115 閱讀 7072

《機器學習》周志華 k均值演算法學習筆記

無監督學習中的研究最多的應用最廣的演算法。

通過對無標記訓練樣本的學習來獲得資料內在的規律。

「聚類將能夠像資料集中的樣本劃分為通常不相交的子集,每乙個子集稱為簇。」——《機器學習》周志華

我們希望「物以類聚」,同一簇的樣本盡可能相似,不同簇的樣本盡量不同。效能度量就是評估聚類結果的好壞。

聚類的效能度量的兩個指標:外部指標和內部指標。兩者的區別在於有沒有外界參考模型提供參考。

jaccard係數:

fm 指數:

rand指數:

這些效能度量結果值在[0,1]且越大約好。

db指數:

db指數越小越好。

dunn指數:

dunn指數越大越好。

距離度量的函式需要滿足4個基本性質:非負性,同一性,對稱性,直遞性。 直遞性不好理解,可以理解為三角形兩邊之和大於第三邊。

非直遞性的例子:人馬例子。

假如人與人馬的相似距離為1,馬與人馬的相似距離也為1,但是人與馬的不相似,距離為5。1+1<5,這裡不滿足直遞性,不能作為度量距離。所以要基於具體的資料來決定合適的距離計算式。

給定兩個樣本xi

x

i, xj

x

j,每個樣本具有n個特徵,計算這兩個樣本特徵的距離(相似度)常用閔可夫斯基距離(minkowski distance) di

stmb

(xi,

xj)=

(∑u=

1n|x

iu−x

ju|p

)1p dis

tmb(

xi,x

j)=(

∑u=1

n|xi

u−xj

u|p)

1p

p = 1時稱為曼哈頓距離;p = 2時稱為歐氏距離。

把直接能在屬性上計算距離的屬性,如,1與2近離3遠,稱為有序屬性

閔可夫斯基距離用於計算有序屬性。

不能直接在屬性上計算距離的屬性,如,稱為無序屬性

無序屬性用vdm (value difference metric) 計算,mu

,am u,

a表示在屬性u上取值為a的樣本數,mu

,a,i

m u,

a,

i表示在第i個樣本簇中在屬性u上取值為a的樣本簇數,k為樣本簇數,屬性u上的兩個離散值a,b之間的vdm距離為 vd

mp(a

,b)=

∑i=1

k|mu

,a,i

mu,a

−mu,

b,im

u,b|

p vdm

p(a,

b)=∑

i=1k

|mu,

a,im

u,a−

mu,b

,imu

,b|p

假設聚類結構能夠通過一組原型刻畫,不同的原型表示、求解方法會產生不同演算法,常用的有:

給定樣本集d=

d

=,k均值演算法針對聚類所的簇c=

c

=劃分最小平方誤差 e=

∑i=1

k∑x∈

ci∥x

−ui∥

22, e=∑

i=1k

∑x∈c

i‖x−

ui‖2

2,

其中ui

=1|c

i|∑x

∈cix

u i=

1|ci

|∑x∈

ci

x是ci的均值向量。

e很難求,實際上式通過迭代優化求解。

演算法流程:

輸入: 樣本集和簇數k

過程:

(1)隨機選擇k個樣本組成初始均值向量(簇均值);

(2)計算每乙個樣本與初始均值向量的距離;

(3)根據最近原則把樣品劃入相應的簇;

(4)計算新的簇均值並更新當前簇均值;

(5)重複(2)-(5),若迭代更新後聚類結果不變,返回簇分類結果。

輸出:簇劃分c=

c

=

K Means聚類演算法

k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...

聚類演算法 K means

演算法接受引數 k 然後將事先輸入的n個資料物件劃分為 k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。聚類相似度是利用各聚類中物件的均值所獲得乙個 中心物件 引力中心 來進行計算的。k means演算法是最為經典的基於劃分的聚類方法,是十大經典資料探勘演...

k means聚類演算法

說到聚類,得跟分類區別開來,分類是按人為給定的標準將樣本歸到某個類別中去,在機器學習中多是監督學習,也就是訓練樣本要給標籤 正確的類別資訊 而聚類是在某種規則下自動將樣本歸類,在機器學習中是無監督學習,不需要提前給樣本打標籤。k means聚類演算法,就是在某種度量方式下,將樣本自動劃分到k個類別中...