kNN(k近鄰演算法)
阿新 • • 發佈:2019-01-05
K近鄰分析(KNN)
一、概述
KNN演算法是一種有監督學習的分類演算法。所謂有監督學習,就是在應用演算法之前我們必須準備一組訓練集,訓練集中的每個例項都是由一些特徵和一個分類標籤組成;通常還會存在一個測試集,用來測試訓練出來的分類模型的準確性。其實KNN演算法並沒有體現出有監督學習的所有特點,沒有模型,只有演算法。甚至可以說這就是一種暴力掃描法,執行效率上比較低效。
KNN的具體演算法為:
二、KNN的實現:
注:最後的多數表決相當於0-1最小風險。
三、KNN的引數選擇:
(1) 距離的選擇:LP範數
(2) K的選擇:K值的選擇會對k近鄰法的結果產生重大影響。如果k較小,相當於用較小的鄰域中的訓練例項進行預測,“學習”的近似誤差
四、KNN的實現-kd樹
實現k近鄰法時,主要考慮的問題是:如何對訓練資料進行快速k近鄰搜尋。最簡單的實現方法是線性掃描,這種方法比較耗時,為了提高k近鄰搜尋的效率,可以考慮特殊結構儲存資料,以減少計算距離的次數,具體方法有很多,kd樹(kd tree)就是其中的一種。