聚類概述

聚類: 數據對象的集合

  • 同一簇中的對象彼此相似
  • 不同簇中的對象彼此相異

聚類分析: 將數據對象(觀測)的集合劃分成子集過程

聚類是無監督的分類: 沒有預先定 義的類編號

基於劃分方法-k-means

k均值聚類算法

輸入:簇的數目k和包含n個對象的數據庫。 
輸出:k個簇,使平方誤差準則最小。 
算法步驟:  
1.爲每個聚類確定一個初始聚類中心,這樣就有K 個初始聚類中心。  
2.將樣本集中的樣本按照最小距離原則分配到最鄰近聚類   
3.使用每個聚類中的樣本均值作爲新的聚類中心。 
4.重複步驟2.3直到聚類中心不再變化。 
5.結束,得到K個聚類 

這裏寫圖片描述

僞代碼

創建k個點作爲起始質心(經常隨機選擇)
當任意一個點的簇分配結果發生改變時
    對於數據集中的每個數據點
        對每個質心
            計算質心於數據點之間的距離
        將數據點分配到距其最近的簇
    對於每個簇,計算簇中所有點的均值並將均值作爲質心
  • 優點:容易實現
  • 缺點:
    K 是事先給定的,這個 K 值的選定是非常難以估計,常採用遺傳算法(GA)進行初始化來改進
    存在噪點時,可能收斂到局部最小值
    在大規模的數據集上收斂較慢

適用數據類型:數值型數據

k中心點聚類

當存在噪聲和離羣點時
——k-中心點

當n和k的值較大時
——k-均值算法效率要高的多

基於層次方法

輸入:包含n個對象的數據集
輸出:簇的分層結構
算法步驟:
計算鄰近度矩陣
每個點作爲一個簇
Repeat
    合併最接近的兩個簇
    更新鄰近度矩陣
Until 僅剩下一個簇

這裏寫圖片描述

  • 如果兩個類被合併,那麼將不能被恢復
  • 不同的聚類模式都有以下一個或多個問題:
    1.對噪音和異常點敏感
    2.處理不同大小的簇和凸起的形狀的簇比較困難
    3.分割大的類

更多

基於密度方法

DBSCAN

基於密度定義,我們將點分爲:

  • 稠密區域內部的點(核心點)
  • 稠密區域邊緣上的點(邊界點)
  • 稀疏區域中的點(噪聲或背景點).

DBSCAN算法的本質就是隨大流,邊界點緊緊圍繞着核心點,他們抱團,不帶噪點玩兒

這裏寫圖片描述

小團體多了,聯繫比較密切的小團體之間聚成了同個類
比較偏遠的小團體想要加入這個圈子,進不去,就單幹,我們自己玩自己的,聚成了另外的一個類
一開始就被孤立的噪點吧,自然有自己的傲骨,接着孤芳自賞

這裏寫圖片描述

算法原理

DBSCAN通過檢查數據集中每點的Eps鄰域來搜索簇,如果點p的Eps鄰域包含的點多於MinPts個,則創建一個以p爲核心對象的簇。

然後,DBSCAN迭代地聚集從這些核心對象直接密度可達的對象,這個過程可能涉及一些密度可達簇的合併。

當沒有新的點添加到任何簇時,該過程結束.
DBSCAN(D, eps, MinPts) {
   C = 0
   for each point P in dataset D {
      if P is visited
         continue next point
      mark P as visited
      NeighborPts = regionQuery(P, eps)
      if sizeof(NeighborPts) < MinPts
         mark P as NOISE
      else {
         C = next cluster
         expandCluster(P, NeighborPts, C, eps, MinPts)
      }
   }
}

expandCluster(P, NeighborPts, C, eps, MinPts) {
   add P to cluster C
   for each point P' in NeighborPts { 
      if P' is not visited {
         mark P' as visited
         NeighborPts' = regionQuery(P', eps)
         if sizeof(NeighborPts') >= MinPts
            NeighborPts = NeighborPts joined with NeighborPts'
      }
      if P' is not yet member of any cluster
         add P' to cluster C
   }
}

regionQuery(P, eps)
   return all points within P's eps-neighborhood (including P)

更多

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章