【Julia機器學習】無監督學習系列:K-mean通俗理解

K均值算法僞代碼:

  1. 隨機的選取K箇中心點,代表K個類別;
  2. 計算N個樣本點和K箇中心點之間的歐氏距離;
  3. 將每個樣本點劃分到最近的(歐氏距離最小的)中心點類別中——迭代1;
  4. 計算每個類別中樣本點的均值,得到K個均值,將K個均值作爲新的中心點——迭代2;
  5. 重複234;
  6. 得到收斂後的K箇中心點(中心點不再變化)——迭代4。

上面提到的歐氏距離(Euclidean Distance),又叫歐幾里得距離,表示歐幾里得空間中兩點間的距離。我們初中學過的座標系,就是二維的歐幾里得空間,歐氏距離就是兩點間的距離,三維同理,多維空間的計算方式和三維二維相同。

其他距離測量方法我們後面講。

舉栗子:

我們現在有三組身高體重數據180kg、180cm,120kg、160cm和90kg、140cm,提問:這三個人裏,哪兩個人的身材比較相近呢?

這三組數據可以表示爲A(180,180),B(120,160)和C(90,140),這就是我們很熟悉的平面直角座標系裏的三個點,他們之間的距離大家都知道算。

從結果可以看到Bc間的距離最小,也就是Bc的身材最相似。我們再增加一個維度,腰圍,分別是100cm、120cm和140cm(隨便編的不要當真),那現在這三組數據可以表示爲A(180,180,100),B(120,160,120)和C(90,140,140),這就變成了我們高中學過的空間直角座標系裏的三個點,要計算它們之間的距離也很簡單。

現在還是Bc的身材最相似,如果我們增加N個維度,數據就可以用(X₁,X₂,X₃,…..,Xn)和(Y₁,Y₂,Y₃,…..,Yn)來表示,他們之間的距離就是

K均值算法裏樣本點到中心點的距離就是這麼計算的,這個用空間點,來表示數據的思想,在機器學習領域是非常常見和重要的,以後還會經常見到。值得注意的是:雖然K近鄰算法和K均值算法沒有什麼關係,但是它們的思想有想通之處,並且原始模型實際使用起來計算起來都比較慢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章