iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 19
0

為什麼說KNN是懶惰學習的分類算法?。之所以稱“懶惰”並不是由於此類算法看起來很簡單,而是在訓練模型過程中這類算法並不去學習一個判別式函數(損失函數)而是要記住整個訓練集,這樣解釋可能沒有很懂,那就看看下面那張圖吧

對於預測新的數據,在範圍內與旁邊的鄰居進行比較,並以這幾個鄰居(訓練樣本)中出現最多的分類標籤作為最終新樣本數據的預測標籤。就好像國小國中常常會搞小團體,某天新來的同學突然被要求選邊站,不想以後在班上被欺負,當然選擇人多的那一邊嘛!!

或是更簡單一點,用一句話就可以形容KNN的原理,其概念與「近朱者赤,近墨者黑」相同,就是周圍的資料決定其分類。
https://ithelp.ithome.com.tw/upload/images/20191001/20116157ahUEaaCw0h.png

步驟

  1. 決定k值及距離度量。
  2. 針對新的資料,找到訓練集中和它最近的k個樣本。
  3. 以多數決的方式進行投票來決定類別。

如何選定k值
https://ithelp.ithome.com.tw/upload/images/20191001/20116157wItqkuZOoZ.png

  1. 如果選擇較小的k值,k = 1,會造成離新的資料最近的類別是什麼他就是什麼類別,最容易overfitting
  2. 如果k = N(訓練資料),預測結果都是屬於在訓練資料中最多的類別
  3. 如果k是偶數,則有可能碰到無法直接決定類別,例如k=4,結果在i附近的點有2個type A的資料與 2個type B的資料導致無法判斷結果

參考文獻
[Machine Learning] kNN分類演算法
沒有想像中簡單的簡單分類器 Knn


上一篇
ML_Day18(K-Means)
下一篇
ML_Day20(KNN與K-Means差異)
系列文
機器學習入門28

尚未有邦友留言

立即登入留言