Kmeans

Kmeans

算法接受參數 k ;然後將事先輸入的n個數據對象劃分為 k個聚類以便使得所獲得的聚類滿足:同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小。聚類相似度是利用各聚類中對象的均值所獲得一個“中心對象”(引力中心)來進行計算的。

基本介紹

k-means 算法接受參數 k ;然後將事先輸入的n個數據對象劃分為 k個聚類以便使得所獲得的聚類滿足:同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小。聚類相似度是利用各聚類中對象的均值所獲得一個“中心對象”(引力中心)來進行計算的。

KmeansKmeans

K-means算法是最為經典的基於劃分的聚類方法,是十大經典數據挖掘算法之一。K-means算法的基本思想是:以空間中k個點為中心進行聚類,對最靠近他們的對象歸類。通過疊代的方法,逐次更新各聚類中心的值,直至得到最好的聚類結果。假設要把樣本集分為c個類別,算法描述如下:

(1)適當選擇c個類的初始中心;(2)在第k次疊代中,對任意一個樣本,求其到c箇中心的距離,將該樣本歸到距離最短的中心所在的類;(3)利用均值等方法更新該類的中心值;(4)對於所有的c個聚類中心,如果利用(2)(3)的疊代法更新後,值保持不變,則疊代結束,否則繼續疊代。該算法的最大優勢在於簡潔和快速。算法的關鍵在於初始中心的選擇和距離公式。

算法流程

首先從n個數據對象任意選擇 k 個對象作為初始聚類中心;而對於所剩下其它對象,則根據它們與這些聚類中心的相似度(距離),分別將它們分配給與其最相似的(聚類中心所代表的)聚類;然後再計算每個所獲新聚類的聚類中心(該聚類中所有對象的均值);不斷重複這一過程直到標準測度函式開始收斂為止。一般都採用均方差作為標準測度函式. k個聚類具有以下特點:各聚類本身儘可能的緊湊,而各聚類之間儘可能的分開。

具體流程

輸入:k, data[n];

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

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

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

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

相關詞條

相關搜尋

熱門詞條

聯絡我們