【深度學習基礎-04】最鄰近規則分類(K Nearest Neighbor)KNN演算法
阿新 • • 發佈:2019-01-11
1 基本概念
-
Cover和Hart在1968年提出了最初的臨近演算法
-
分類演算法classfication
-
輸入基於例項的學習instance-based learning ,懶惰學習lazy learning
2 例子:
對最後一個未知電影型別進行歸類
對上圖例項進行轉化為特徵向量
類比現實生活中的場景(分豆子)
3 演算法描述
3.1 步驟
- 為了判斷未知例項的類別,以所有已知類別的例項作為參照
- 選擇引數K
- 計算未知例項與已知例項的舉例
- 選擇最近K個已知例項
- 根據少數服從多少原則,讓未知例項歸類為K個最鄰近樣本中最多類別
3.2 細節
關於K距離的衡量方法:
Euclidean Distance定義(可以擴充套件為N維)
其他距離衡量:餘弦值cos、正弦值sin、曼哈頓距離
3.3 舉例
以下圖為例,第一個小圈是K=4,第二個圈是K=9,你會發現結果其實不一樣
4 演算法優缺點
4.1 演算法優點
簡單
易於理解
容易實現
通過對K的選擇可具備丟噪聲資料的健壯性
4.2 演算法的缺點
需要大量的空間來儲存所有例項
演算法複雜度高,需要比較與所有已知例項與要分類的例項
當樣本分佈不平衡時,比如某一類樣本過大佔主導時,新的未知例項將容易被歸類為這個主導樣本,比如Y明顯是紅色,單採用KNN後會被分為藍色。
5 改進版本
考慮距離遠近,加上權重,比如近的情況下權重更大,距離的倒數
下面是程式碼實際解讀(待更新詳細解釋)