1. 程式人生 > >K近鄰算法中常見的問題

K近鄰算法中常見的問題

k近鄰算法中常見的問題

  1. 第一個問題就是k值的選取問題?

  2. 怎麽快速找到k個鄰居,尤其是在特征空間維數大及訓練數據容量大時尤其必要。



(1)k值的問題:當k值很小的時候,就相當於在較小的領域中訓練實例進行預測,學習的近似誤差會減小,只有與輸入實例較近的訓練實例才會對預測結果起作用(反過來想,離的越近,肯定越相似,離得越遠,相似度就差很大)。但缺點是學習的估計誤差會增大,預測結果會對近鄰的實例點非常敏感,如果近鄰的實例點恰巧是噪聲,預測就會出錯。(有噪聲,就比較復雜),模型越復雜,越容易發生過擬合

如果選擇較大,就相當於用較大領域中的訓練實例進行預測。其優點是可以減少學習的估計誤差

k越大,這時與輸入實例較遠的訓練實例也會對 (可以降低噪聲)就意味著整體模型變得簡單


一般來說k值是通過交差驗證法來獲得的。一般取k值小於sqrt(n)

(2)如何快速的搜索K個鄰居?

KD樹是一種很好的辦法

本文出自 “簡答生活” 博客,謝絕轉載!

K近鄰算法中常見的問題