一. 介紹
k-Means算法是最經典的基於劃分的聚類算法。所謂基於劃分的方法是將樣本集組成的矢量空間預先初始化,劃分爲多個區域,每個區域有一個區域中心,對於每個樣本,可以建立一種樣本到區域中心的映射。通過不斷的迭代,不斷的重新定位,從一個組移動到另一個組來進行劃分。不同的映射方式產生不同的基於劃分的聚類算法.k-means算法要求樣本點與中心點的歐幾里得距離最小。
二. 計算過程
k-Means算法計算過程如下:
(1)導入數據:收集並準備數值型矩陣作爲原始數據集;
(2)創建初始質心:指定聚類數k,從原始數據集中隨機選取k個對象作爲初始質心;
(3)分配:計算數據集中每個對象到所有質心的距離,並將數據點分配到距離最接近的質心,從而形成簇分配矩陣;
(4)重新計算質心:計算簇中所有點的均值,並將均值作爲新的質心。
(5)反覆執行(3)和(4),直至質心不再移動。
三. 工作流程圖例
四. 評價
優勢:簡單、快速,適合常規數據集。
劣勢:
(1)難以確定k值。
(2)複雜度和樣本呈線性關係,在大規模數據集上收斂較慢。
(3)很難發現任意形狀的簇。