我有一個數據集進行分類。通過使用KNN算法,我得到了90%的準確度,但通過使用SVM,我只能夠超過70%。 SVM不比KNN好。我知道這可能是愚蠢的問,但是,什麼是SVM的參數,將給出近似的結果作爲KNN算法。我在matlab上使用libsvm包R2008支持向量機vs K最近鄰居
6
A
回答
8
kNN和SVM表示不同的學習方法。每種方法都意味着底層數據的模型不同。
支持向量機假定存在一個分離數據點的超平面(相當有限的假設),而kNN試圖以非參數方式近似分析數據的基本分佈(parsen窗估計器的粗略近似)。
您必須查看場景的具體情況,以便更好地決定使用哪種算法和配置。
6
這實際上取決於您使用的數據集。如果你有像這個圖像的第一行(http://scikit-learn.org/stable/_images/plot_classifier_comparison_1.png)kNN將工作得很好,線性SVM真的很糟糕。
如果您希望SVM執行得更好,您可以使用像圖片中那樣的基於內核的SVM(它使用rbf內核)。
如果您正在使用scikit學習的巨蟒,你可以玩了一下,代碼這裏來看看如何使用內核SVM http://scikit-learn.org/stable/modules/svm.html
5
k近鄰基本上說:「如果你接近座標x,則分類將與x觀察到的結果相似「。在SVM中,一個近似的模擬將使用具有「小」帶寬參數的高維內核,因爲這會導致SVM過度配合。也就是說,SVM將更接近於「如果你接近於座標x,那麼分類將類似於在x處觀察到的分類」。
我建議您從高斯內核開始,並檢查不同參數的結果。根據我自己的經驗(當然,關注於某些類型的數據集,因此您的里程可能會有所不同),調整後的SVM優於調整後的kNN。
對您的問題:
1)您如何選擇kNN?
2)您嘗試過哪些參數用於SVM?
3)您是在測量樣本內還是樣本外的準確性?
相關問題
- 1. K-最近鄰居
- 2. 查找K最近鄰居
- 3. K最近鄰居僞碼?
- 4. 支持向量機/ K近鄰代碼示例
- 5. k最近鄰居算法k的值
- 6. sklearn k最近鄰居問題
- 7. chisel k最近鄰居verilog輸出
- 8. python中的K最近鄰居
- 9. 尋找給定矢量的k-最近鄰居?
- 10. K最近的鄰居與高爾距離測量在R
- 11. 如何在R中安裝k最近鄰居
- 12. 最近鄰居和反向最近鄰居查詢之間的區別
- 13. 最近鄰居 - k-d樹 - 維基百科證明
- 14. 如何通過R最近鄰居求解最近鄰居?
- 15. 多維立方體上的Postgresql k最近鄰居(KNN)
- 16. k-最近鄰算法
- 17. K最近鄰分類器
- 18. 最近鄰居算法
- 19. 點的第k個最近鄰居的空間查詢
- 20. 最近鄰居中的度量有效
- 21. 使用K最近鄰居創建特徵
- 22. JavaScript的最近鄰居庫
- 23. 最近鄰居啓發式
- 24. 存儲最近的鄰居
- 25. Excel宏最近鄰居
- 26. 最近鄰居2維
- 27. 使用openmp和分段錯誤的並行K最近鄰居
- 28. 如何獲得geodjango的k個最近鄰居?
- 29. 如何使用k-d樹找到最近的鄰居?
- 30. K-d樹:最近鄰居搜索算法
這個問題似乎是題外話題,因爲它是關於機器學習,並且更適合http://stats.stackexchange.com/ – Shai
所以機器學習不是編碼的一部分嗎?這是一個開放的平臺,任何人都可以自由地提出任何問題,只要它與編碼有關,並且需要人們進行頭腦風暴。所以如果你沒有發現它有用,你可以遠離這個討論並讓其他人蔘與。 –
我不認爲它不屬於這裏,我只是想你會在更專門的論壇上找到更多知情的觀衆和更好的答案,例如http://stats.stackexchange.com – Shai