無監督,分類

K-Means 演算法分為三個步驟:

  • 初始化 Initialization
  • 分配 Assignment
  • 更新 Update

分配和更新兩個步驟會不斷重複,直到收斂

相關概念

K-Means 的目標就是將資料分為 K 個類別,也就是 K 個簇

質心

每個簇都有一個質心,表示該類別資料的平均水平
是和一般資料等長的向量,一般用簇中資料的均值表示

初始化

隨機初始化

指定 K 個簇,並把資料隨機分配給一個簇

如果最後有空的簇,則要從其他簇(至少要兩筆資料)中取一筆資料分給它

隨機初始化後要直接進行「更新」操作,來計算每個簇的質心

Forgy 初始化

先設置 K 個只含一筆資料的簇,然後執行「分配」操作

更具體一些,在創建好一個簇之後(結構體內容為空),隨機為該簇指定一筆未用過的資料,並令其為該簇的質心

分配

遍歷所有資料,根據資料與每個簇質心的距離,把每筆資料分到最接近的簇上。

一般採用歐氏距離

要記錄是否有資料從一個簇轉移到另一個簇上,作為演算法的終止條件

更新

緊跟在「分配」後面的操作,計算每個簇新的質心