KNN 是一種非參數的懶惰的監督學習算法.算法
非參數的意思是,模型不會對基礎數據分佈作出任何假設。換句話說,模型的結構是根據數據肯定的。懶惰的意思是沒有或者只有不多的訓練過程.app
KNN 算法既能夠處理分類問題,測試數據的類型由全部 K 個最近鄰點投票決定,也能夠處理迴歸問題,測試數據的值是全部 K 個最近鄰點的值的均值或衆數.學習
KNN 的算法很是簡單.測試
例如,對於分類問題,算法流程以下,ui
對須要預測的每一個數據依次執行如下操做:人工智能
須要注意的是,要對數據進行特徵縮放.下面兩張圖很好的闡釋了縮放的重要性.spa
那麼KNN在實際使用中有哪些優勢和缺點呢?3d
它的優勢有:rest
它的缺點是blog
在實際的使用過程當中,可能會遇到以下的問題.
k 近鄰的類別出現了平局的狀況. 例如在二分類中,正負類型的近鄰數相同,使用奇數個近鄰能夠解決此問題,可是沒法解決多分類的問題.這個時候能夠
2.訓練數據的缺失值如何處理.若是不處理缺失值,則沒法計算距離.對於缺失值的處理的核心原則是,儘量小的影響距離的計算.一個合理的解決辦法是,使用訓練數據的平均值來填充缺失值.
最後附上實現代碼,登陸以後就能查看了。
電腦端查看源碼
參考資料
————————————————————————————————————Mo (網址:momodel.cn )是一個支持 Python 的人工智能建模平臺,能幫助你快速開發訓練並部署 AI 應用。