k-均值是發現給定數據集的k個簇的算法。簇個數k是用戶給定的,每一個簇通過其質心,即簇中所有的中心來描述。
K-均值算法的工作流程是這樣子的:首先,隨機確定k個初始點作爲質心。然後將數據集中的每個點分配到一個簇中,具體來講,爲每個點找距其最近的質心,並將其分配給該質心所對應的簇。這一步完成之後,每個簇的質心更新爲該簇所有點的平均值。
上述過程的僞代碼如下:
創建k個點作爲起始質心(經常是隨機選擇)
當任意一個點的簇分配結果發生改變時
對數據集中的每個數據點
對每個質心
計算質心與數據點之間的距離
將數據點分配到距離其最近的簇
對每一個簇,計算簇中所有點的均值並且將均值作爲質心