K-Nearest Neighbors (KNN)
KNN(K 最鄰近演算法)是一種非參數的監督式學習方法,可用於分類與回歸任務。
1. 演算法原理
給定一個測試點,KNN 根據訓練集中距離該點最近的 K 個鄰居來進行預測。
分類:以多數決投票方式決定類別。
回歸:取 K 個鄰居的平均值作為預測。
2. 距離度量
常見的距離計算方法:
歐氏距離(Euclidean Distance):
曼哈頓距離(Manhattan Distance)
明氏距離(Minkowski Distance)
3. 優缺點
優點
缺點
簡單直觀,容易實作
計算成本高(需儲存所有資料)
可處理非線性邊界
對離群值敏感
無需模型假設
高維資料下效能下降(維度災難)
4. Python 實作
5. 重要參數
n_neighbors:設定 K 值(鄰居數量)metric:距離函數,預設為 'minkowski'weights:'uniform' 或 'distance'
6. 應用場景
醫學診斷(根據症狀分類疾病)
推薦系統(找出相似使用者)
圖像分類與物件辨識
7. 可視化決策邊界(2D 示例)
KNN 是一種直觀強大的方法,特別適合樣本數不大、類別邊界複雜的問題。然而隨資料量與維度提升,其效能會快速下降,因此通常搭配特徵選擇或降維方法使用。
Last updated