先從兩者的相同點來看吧,兩者都是比較經典的機器學習分類算法,都屬於監督學習算法,都對機器學習的算法選擇有着重要的理論依據。
區別:
1 KNN對每個樣本都要考慮。SVM是要去找一個函數把達到樣本可分。
2 朴素的KNN是不會去自助學習特征權重的,SVN的本質就是在找權重。
3 KNN不能處理樣本維度太高的東西,SVM處理高緯度數據比較優秀。
怎么選擇使用二者呢?
1 選擇KNN的場景:
@ 准確度不需要精益求精。
@ 樣本不多。
@ 樣本不能一次性獲取。智能隨着時間一個個得到。
2 選擇SVM的場景:
@ 需要提高正確率。
@ 樣本比較多。
@ 樣本固定,並且不會隨着時間變化。