聚類算法之Kmean算法應用和Python應用舉例

聚類算法之Kmean算法應用和Python應用舉例
參考:http://croce.ggf.br/dados/K%20mean%20Clustering1.pdf
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.舉例子:

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


優點:速度快,簡單
缺點:最終結果跟初始點選擇相關,容易陷入局部最優,需直到k值
發佈了102 篇原創文章 · 獲贊 30 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章