K Means聚類演算法

2021-06-23 09:26:12 字數 1550 閱讀 9992

k-means聚類演算法

intergret

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

k-means聚類演算法主要分為三個步驟:

(1)第一步是為待聚類的點尋找聚類中心

(2)第二步是計算每個點到聚類中心的距離,將每個點聚類到離該點最近的聚類中去

(3)第三步是計算每個聚類中所有點的座標平均值,並將這個平均值作為新的聚類中心

反覆執行(2)、(3),直到聚類中心不再進行大範圍移動或者聚類次數達到要求為止

下圖展示了對n個樣本點進行k-means聚類的效果,這裡k取2:

(a)未聚類的初始點集

(b)隨機選取兩個點作為聚類中心

(c)計算每個點到聚類中心的距離,並聚類到離該點最近的聚類中去

(d)計算每個聚類中所有點的座標平均值,並將這個平均值作為新的聚類中心

(e)重複(c),計算每個點到聚類中心的距離,並聚類到離該點最近的聚類中去

(f)重複(d),計算每個聚類中所有點的座標平均值,並將這個平均值作為新的聚類中心

matlab實現:

詳見:執行結果:

>> kmeans

6 iterations, total sum of distances = 204.821

10 iterations, total sum of distances = 205.886

16 iterations, total sum of distances = 204.821

9 iterations, total sum of distances = 205.886

........

9 iterations, total sum of distances = 205.886

8 iterations, total sum of distances = 204.821

8 iterations, total sum of distances = 204.821

14 iterations, total sum of distances = 205.886

14 iterations, total sum of distances = 205.886

6 iterations, total sum of distances = 204.821

ctrs =

1.0754 

-1.0632

1.0482 

1.3902

-1.1442 

-1.1121

sumd =

64.2944

63.5939

76.9329

聚類效果:

matlab r2012a documentation:

stackoverflow:kmeans example in matlab does not run:

聚類演算法 K means

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

k means聚類演算法

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

K means聚類演算法

k means聚類演算法 k means 演算法以 k 為引數,把 n 個物件分成 k 個簇,使簇內具有較高的相似度,而簇間的相似度較低。其處理過程如下 1.隨機選擇k個點作為初始的聚類中心 2.對於剩下的點,根據其與聚類中心的距離,將其歸入最近的簇 3.對每個簇,計算所有點的均值作為新的聚類中心 ...