K means演算法原理

2021-08-16 02:33:00 字數 1766 閱讀 3775

k-means, 聚類(clustering) 屬於非監督學習 (unsupervised learning),無類別標記。clustering 中的經典演算法,資料探勘十大經典演算法之一,其運算速度比較快,而且簡單。但是最終的結果和初始點的選擇有關,容易陷入區域性最優,且需要知道k的值。

1. 演算法接受引數 k ;然後將事先輸入的n個資料物件劃分為 k個聚類以便使得所獲得的聚類滿足:同一

聚類中的物件相似度較高;而不同聚類中的物件相似度較小。

2.演算法思想:

以空間中k個點為中心進行聚類,對最靠近他們的物件歸類。通過迭代的方法,逐次更新各聚類中心

的值,直至得到最好的聚類結果

3.演算法描述:

(1)適當選擇c個類的初始中心;

(2)在第k次迭代中,對任意乙個樣本,求其到c各中心的距離,將該樣本歸到距離最短的中心所在

的類;(3)利用均值等方法更新該類的中心值;

(4)對於所有的c個聚類中心,如果利用(2)(3)的迭代法更新後,值保持不變,則迭代結束,否則繼續迭代。

輸入:k, data[n];

(1) 選擇k個初始中心點,例如c[0]=data[0],…c[k-1]=data[k-1];

(2) 對於data[0]….data[n], 分別與c[0]…c[k-1]比較,假定與c[i]差值最少,就標記為i;

(3) 對於所有標記為i點,重新計算c[i]=/標記為i的個數;

(4) 重複(2)(3),直到所有c[i]值的變化小於給定閾值。

假設我們現在總共有四個點,和兩個初始中心點(以紅星標記)

四個點座標:a(1,1);b(2,1);c(4,3);d(5,4)

中心點座標:c1(1,1) ;c2(2,1)

d°表示中心點到各個點的距離。

由於a點到中心點c1最近,而bcd三點到中心點c2比到c1進,所以:

a點歸為第一類,bcd歸為第二類。

根據歸類重新計算中心點。只有a點屬於第一類,bcd屬於第二類,我們對每一類所有的點求均值

所以:

c1=a=(1,1)

下圖是更新過後的

c1不變,c2的位置已經發生了變化。然後我們重複上面的步驟

此時由於a點b點到c1點的距離小於到c2的距離,所以ab點歸為一類;c點d點到c2點的距離小於到c1點的距離,所以cd點歸為一類

重新計算中心點c1和c2。

更新後的圖如下:

再次重複上面的步驟

此時a點和b點到c1的距離還是小於到c2的距離,c點和d點到c2的距離還是小於到c1的距離歸類沒有任何的變化,所以演算法終止,聚類結束。

K Means聚類演算法原理

k means演算法是無監督的聚類演算法,它實現起來比較簡單,聚類效果也不錯,因此應用很廣泛。k means演算法有大量的變體,本文就從最傳統的k means演算法講起,在其基礎上講述k means的優化變體方法。包括初始化優化k means 距離計算優化elkan k means演算法和大資料情況...

K Means聚類演算法原理

k means演算法是無監督的聚類演算法,它實現起來比較簡單,聚類效果也不錯,因此應用很廣泛。k means演算法有大量的變體,本文就從最傳統的k means演算法講起,在其基礎上講述k means的優化變體方法。包括初始化優化k means 距離計算優化elkan k means演算法和大資料情況...

K means演算法原理以及其缺點

k means是一種經典unsupervised的聚類演算法。其演算法描述如下 輸入 聚類個數 k,n個資料物件 輸出 每個資料物件所屬的聚類label 滿足方差最小 從n個資料物件中挑選出k個質心。計算n個資料物件距離不同質心的距離,並將n個資料物件劃分到與之距離最小的質心,形成新的k個聚類。重新...