1. 程式人生 > >聚類:(K-means)算法

聚類:(K-means)算法

sed 經典 聚類 思想 類別 藥物 9.png ont 停止

1.歸類:

  • 聚類(clustering) 屬於非監督學習 (unsupervised learning)
  • 無類別標記(class label)

2.舉例:

技術分享

3. K-means 算法: 3.1 Clustering 中的經典算法,數據挖掘十大經典算法之一 3.2 算法接受參數 k ;然後將事先輸入的n個數據對象劃分為 k個聚類以便使得所獲得的聚類滿足:同一 聚類中的對象相似度較高;而不同聚類中的對象相似度較小。 3.3 算法思想: 以空間中k個點(可隨機選取)為中心進行聚類,對最靠近他們的對象歸類。通過叠代的方法,逐次更新各聚類中心 的值,直至得到最好的聚類結果 3.4 算法描述:
(1)適當選擇c個類的初始中心; (2)在第k次叠代中,對任意一個樣本,求其到c各中心的距離,將該樣本歸到距離最短的中心所在 的類; (3)利用均值等方法更新該類的中心值; (4)對於所有的c個聚類中心,如果利用(2)(3)的叠代法更新後,值保持不變,則叠代結束, 否則繼續叠代。 3.5 算法流程: 技術分享

輸入: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的data[j]之和}/標記為i的個數; (4) 重復(2)(3),直到所有c[i]值的變化小於給定閾值。 4.舉例: 4.1 流程圖:

技術分享

4.2 一個藥物分類的例子:

技術分享

四中藥物給予了 weight indexpH 兩個特征。

在二維坐標系中的分布如下:

技術分享

D0為第一次叠代,第一行為4個點到c1的距離,第二行為4個點到c2的距離。

    技術分享

G0為第一次叠代後的歸類情況,將各點到c1、c2的距離進行比較,哪個的距離小就為哪一類。

歸類如下:c1為第一類,c2、c3、c4為第二類。

    技術分享

第二類的中心點更新如下:

    技術分享

重新計算中心點如下(星為中心點):(若該類中的點變化,則更新該類的中心點;否則不更新)

技術分享

第二次叠代。

技術分享

G1為第二次叠代後的歸類情況。

歸類如下:c1、c2為第一類,c3、c4為第二類。

技術分享

更新第一類、第二類的中心點如下:

技術分享

技術分享

  技術分享

歸類沒有發生變化(達到終止條件)

  技術分享

  停止。

技術分享

優點:速度快,簡單 缺點:最終結果跟初始點選擇相關,容易陷入局部最優,需直到k值

聚類:(K-means)算法