機器學習(9)-- 聚類-cluster

聚類算法

聚類算法是一種非監督學習算法,根據數據集的分佈特徵,將其聚集爲相互比較近的多個集合,集合的數量通常指定。

經典算法 k-means

k-means是經典的聚類算法,其算法流程如下:

  1. 隨機或者有區分的選取k個點作爲k個種類的中心
  2. 分別計算所有點到每個中心的距離,並將其歸入最近的類
  3. 再次計算每個類中所有點的平均中心
  4. 將每個類的中心位置更新,重複2,3直到每個點的所屬類不在變化,或者達到設定的條件
    例如下圖:
    聚類
    從左到右依次給點編號爲1,2,3,4,最開始選取1,2爲兩類的中心,則計算的
    第一類:1
    第二類:2,3,4
    從新計算第二類的中心,由於其有三個點,其平均位置向右上方移動,第二個點離中心邊遠。因此第二次計算後分類爲
    第一類:1,2
    第二類:3,4
    從新計算中心,每個點的所屬類都不在變化,算法結束

從上面可以看出,該算法相對簡單,但是容易陷入局部最優,對於初始的每個類的中心的選擇具有比較大的依賴

hierarchical cluster算法,層次聚類

算法流程:
共計k個點

  1. 對所有的數據點,每個點當做一個類,依次計算其量量之間的距離
  2. 將相鄰最近的類歸爲一類,總類數減少爲k-1
  3. 持續進行上述過程,直到達到結束標準
    算法特點:
  • 對於不知道預先有幾個類的情況有比較好的表現
  • 兩個類之間的距離的計算有多種方法,
    • 計算兩個類中最近兩個點的距離,容易讓兩個近點將離得很遠的點聚合到一起
    • 計算兩個類中最遠兩個點的距離,容易讓兩個本來應該聚合的類因爲特殊點很難聚合
    • 兩輛求距離獲得平均值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章