K近鄰算法(KNN)

給定訓練集,對於新輸進來的樣例,尋找訓練數據集裏面與之距離最近的K個樣例,根據多數表決規則,如果K個實例多數屬於某個類,則把該輸入實例劃分爲這個類。

模型三要素是:距離度量,K值的選擇,分類決策規則。

距離度量:使用的距離是歐式距離,或者是更一般的Lp距離或Minkowski距離
在這裏插入圖片描述p爲2則爲歐式距離,p=1爲曼哈頓距離,p爲無窮大則爲各個座標距離的最大值。

K值的選取
k值減小意味着模型變得複雜,容易發生過擬合,選擇較大的k值,可以減小學習的估計誤差,但缺點是學習的近似誤差會增大,k值一般取一個較小的值,通常使用交叉驗證法來選擇最優的k值。

K近鄰的實現需要考慮如何快速地搜索k個最近鄰點。kd樹是一種便於對k維(注意這個k是指特徵維度,而非KNN裏面的k) 空間中的數據進行快速檢索的數據結構。kd樹是二叉樹,表示對k維空間的一個劃分,其每個節點對應於k爲空間劃分中的一個超矩形區域。利用kd樹可以省去對大量數據點的搜索,從而減少搜索的計算量。

kd樹使用於訓練實例數遠遠大於空間維度的k近鄰搜索。當空間維度接近訓練實例數時,它的效率會迅速下降,幾乎接近線性掃描。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章