1. 綜述
1.1 Cover和Hart在1968年提出了最初的鄰近算法
1.2 分類(classification)算法
1.3 輸入基于實例的學習(instance-based learning), 懶惰學習(lazy learning)
2. 例子:
image.png
未知電影屬于什么類型?
image.png
image.png
3. 算法詳述
3.1 步驟:
為了判斷未知實例的類別,以所有已知類別的實例作為參照
選擇參數K
計算未知實例與所有已知實例的距離
選擇最近K個已知實例
根據少數服從多數的投票法則(majority-voting),讓未知實例歸類為K個最鄰近樣本中最多數的類別
3.2 細節:
關于K
關于距離的衡量方法:
3.2.1 Euclidean Distance 定義
image.png
image.png
其他距離衡量:余弦值(cos), 相關度 (correlation), 曼哈頓距離 (Manhattan distance)
3.3 舉例
image.png
4. 算法優缺點:
4.1 算法優點
簡單
易于理解
容易實現
通過對K的選擇可具備丟噪音數據的健壯性
4.2 算法缺點
image.png
需要大量空間儲存所有已知實例
算法復雜度高(需要比較所有已知實例與要分類的實例)
當其樣本分布不平衡時,比如其中一類樣本過大(實例數量過多)占主導的時候,新的未知實例容易被歸類為這個主導樣本,因為這類樣本實例的數量過大,但這個新的未知實例實際并木接近目標樣本
5. 改進版本
考慮距離,根據距離加上權重
比如: 1/d (d: 距離)