根據要分成幾類隨機初始化幾個點,稱為聚類中心。 而類別在聚類問題中稱為簇將樣本根據與1中初始化點的距離遠近進行歸類
將代表類別的各聚類中心移到所屬他們樣本點的均值處
重複前三個步驟,直到聚類中心不再改變位置,此時我們稱k-mean已經聚合了
###1.2.1 input:
###1.2.2 output:
故最後某點x
ix_i
xi所屬的簇稱為μci
\mu_
μci
###1.2.3 cost function:
j (c
1,..
..,c
m,μ1
….,μ
k)=1
m∑1m
∣∣xi
−μci
∣∣2j(c^1,....,c^m,\mu_1….,\mu_k)=\cfrac\sum_1^m||x^i-\mu_||^2
j(c1,.
...,
cm,μ
1….
,μk
)=m1
1∑m
∣∣x
i−μc
i∣∣
2 失真代價函式(distortion)
找出m in
jmin j
minj
的c 1−
cm和μ
1−μk
c^1-c^m和\mu_1-\mu_k
c1−cm和
μ1−
μk .
數學證
明可證明
2過程中
兩個fo
r迴圈實
際上就是
在選擇c
和μ來m
inim
ize損
失函式j
數學證明可證明2過程中兩個for迴圈實際上就是在選擇c和\mu來minimize 損失函式j
數學證明可證
明2過程
中兩個f
or迴圈
實際上就
是在選擇
c和μ來
mini
mize
損失函式
j首先確認k是否小於樣本數m,為了下面的選擇
隨機地選擇k個訓練樣本
令μ 1,
...,
μk\mu_1,...,\mu_k
μ1,..
.,μk
等於2中選到的k個樣本。
由於聚類中心隨機初始化的隨機性,聚類最終有可能會得到區域性最優解,通常的解決方案是隨機初始化50-1000次,執行50-1000次k-mean,然後選擇cost function最小的那一種結果。
這種方法更適用於k取值較小時(如2-10次),當k取值較大時,隨機初始化不會有太大的改善效果。這是因為k值較大時,往往沒那麼容易取到區域性最優。
1. 通常我們會使用肘部法則(elbow method)
我們取k為1,2,3,…並計算其代價函式j,如果得到下圖所示的資料,那麼k=3就是我們需要的k值了,因為k取3時,j在這裡有個明顯的轉折點,很像人的肘部。
在實際過程中,得到的資料可能是如下圖的曲線,那麼elbow method就不太管用了。
實際情況中,應該根據實際需要的情況選擇k值。如我們要將一萬件t恤衫的尺寸資料聚類,我們想分成xs,s,m,l,xl五個尺碼,那麼就選擇k=5.
k-mean是無監督學習的代表演算法,優點有模型簡單、引數少、收斂速度也還不錯。但缺點是非凸函式容易造成區域性最優的問題,k值的選取難以把握。
學習筆記 K means演算法
在資料探勘中,k means演算法是一種cluster analysis的演算法,其主要是來計算資料聚集的演算法,主要通過不斷地取離種子點最近均值的演算法。問題k means演算法主要解決的問題如下圖所示。我們可以看到,在圖的左邊有一些點,我們用肉眼可以看出來有四個點群,但是我們怎麼通過電腦程式找出...
學習筆記 K means 演算法
學習k means 演算法前,需要先學習k means演算法,可以參考這篇部落格看得懂的k means 既然了解了k means演算法,那麼我們來對比下k means 有什麼變化。首先k means最大的問題就是對初始點選擇特別敏感,那麼我們就乙個乙個選,而不是k個一起選。步驟與k means類似 ...
學習筆記 K means演算法
我們先來看一下乙個k means的聚類效果圖 隨機設定k個特徵空間內的點作為初始的聚類中心 對於其他每個點計算到k個中心的距離,未知的點選擇最近的乙個聚類中心點作為標記類別 接著對著標記的聚類中心之後,重新計算出每個聚類的新中心點 平均值 如果計算得出的新中心點與原中心點一樣,那麼結束,否則重新進行...