6.2 K-Means 算法步骤-机器学习笔记-斯坦福吴恩达教授
K-Means 算法步驟
那么,K-Means 這個算法是如何完成聚類過程的呢?其實算法名稱中對此已有體現:
- K: 描述了簇的數量,也就是應當聚合成的幾何數。
- Means:均值求解會是該算法的核心。
步驟描述
下面具體看到該算法的步驟:
(1)根據設定的聚類數 KKK ,隨機地選擇 KKK 個聚類中心(Cluster Centroid),這就好比古代亂世,天下諸侯并起而逐鹿。
(2)評估各個樣本到聚類中心的距離,如果樣本距離第 iii 個聚類中心更近,則認為其屬于第 iii 簇,這可以看做四方義士紛紛投奔諸侯,形成不同的勢力。
(3)計算每個簇中樣本的 平均(Mean) 位置,將聚類中心移動至該位置,該過程可以被認為是諸侯調整戰略根據地以達到最強的控制力和凝聚力。
重復以上步驟直至各個聚類中心的位置不再發生改變。
綜上,K-Means 的算法步驟能夠簡單概括為:
注意,某些聚類中心可能沒有被分配到樣本,這樣的聚類中心就會被淘汰(意味著最終的類數可能會減少)。
偽碼描述
- 假設簇的個數被定為 KKK ,樣本數為 mmm 。
- 隨機設定 KKK 個聚類中心: μ1,μ2,...,μk∈Rnμ_1,μ_2,...,μ_k∈\R^nμ1?,μ2?,...,μk?∈Rn
重復如下過程直至聚類中心的位置不再改變:
分配過程
fori=1tom:for\quad i=1\ to\ m :fori=1?to?m:
c(i)=距x(i)最近的聚類中心c^{(i)}=距\ x^{(i)}\ 最近的聚類中心c(i)=距?x(i)?最近的聚類中心
距離的計算式如下:
min?k∣∣x(i)?μk∣∣2\min_k||x^{(i)}?μ_k||^2kmin?∣∣x(i)?μk?∣∣2
移動過程:
fork=1toK:for\quad k=1\ to\ K :fork=1?to?K:
μk(第k個聚類中心的新位置)=第k簇的平均位置μ_k(第 k個聚類中心的新位置)=第\ k\ 簇的平均位置μk?(第k個聚類中心的新位置)=第?k?簇的平均位置
假設 μ2μ_2μ2? 聚類中心下分配了 4 個樣本:
x(1),x(5),x(6),x(10)x^{(1)},\ x^{(5)},\ x^{(6)},\ x^{(10)}x(1),?x(5),?x(6),?x(10)
亦即:
c(1)=c(5)=c(6)=c(10)=2c^{(1)}=c^{(5)}=c^{(6)}=c^{(10)}=2c(1)=c(5)=c(6)=c(10)=2
那么 μ2μ_2μ2? 將會移動到這四個樣本的中心位置:
μ2=14(x(1)+x(5)+x(6)+x(10))μ_2=\frac14(x^{(1)}+x^{(5)}+x^{(6)}+x^{(10)})μ2?=41?(x(1)+x(5)+x(6)+x(10))
總結
以上是生活随笔為你收集整理的6.2 K-Means 算法步骤-机器学习笔记-斯坦福吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6.1 无监督学习-机器学习笔记-斯坦福
- 下一篇: 6.3 优化-机器学习笔记-斯坦福吴恩达