Lloyd’s 算法 和 K-Means算法


在講Lloyd’s 算法之前先介紹Voronoi圖

在數學中,Voronoi圖是基於到平面的特定子集中的點的距離將平面划分成區域。預先指定一組點(稱為種子,站點或生成器),並且對於每個種子,存在相應的區域,該區域由更接近該種子的所有點組成,而不是任何其他點。這些區域稱為Voronoi細胞。

在最簡單的情況下,如圖所示,我們在歐幾里德平面上給出了一組有限的點{p1,...,pn}。在這種情況下每個站點pk只是一個點,其相應的Voronoi單元Rk由歐幾里德平面中的每個點組成,其與pk的距離小於或等於其與任何其他pk的距離。每個這樣的單元是從半空間的交點獲得的,因此它是凸多邊形。 Voronoi圖的邊界是平面中與兩個最近的站點等距的所有點。 Voronoi頂點(節點)是與三個(或更多)站點等距的點。

Lloyd’s algorithm 過程:

(1)首先在數據集中隨機選定k個初始點

(2) 計算k個站點的Voronoi圖。

(3)整合Voronoi圖的每個單元格,並計算質心。

(4)然后將每個站點(k)移動到其Voronoi單元的質心。

如下圖迭代過程

           

 

K-Means算法過程:

(1)隨機初始化k個聚類中心的位置

(2)計算每一個點到聚類中心的距離,選取最小值分配給k(i)

(3)移動聚類中心(其實就是對所屬它的樣本點求平均值,就是它移動是位置)

(4)重復(2),(3)直到損失函數(也就是所有樣本點到其所歸屬的樣本中心的距離的和最小)

最后整體分類格局會變得穩定。

如下圖

 

通過對比,可以發現這兩個算法之間有許多相似之處,都是迭代的尋找聚族中心的位置。

然而,Lloyd’s算法與k均值聚類的不同之處在於,Lloyd’s的輸入是一個連續的幾何區域,而不是一組離散的點。

因此,當重新划分輸入時,勞埃德算法使用Voronoi圖而不是像k-means算法那樣簡單地確定每個有限點集的最近中心。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM