sklearn.svm包中的SVC(kernel=”linear“)和LinearSVC的區別


參考:https://stackoverflow.com/questions/45384185/what-is-the-difference-between-linearsvc-and-svckernel-linear

1、LinearSVC使用的是平方hinge loss,SVC使用的是絕對值hinge loss
(我們知道,絕對值hinge loss是非凸的,因而你不能用GD去優化,而平方hinge loss可以)

2、LinearSVC使用的是One-vs-All(也成One-vs-Rest)的優化方法,而SVC使用的是One-vs-One
(其實我也不明白,如果有人明白懇請指教。。。)

3、對於多分類問題,如果分類的數量是N,則LinearSVC適合N模型,而SVC適合N(N-1)/2模型
(其實我也不明白+1)

4、對於二分類問題一般只有其中一個合適,具體問題具體對待

5、LinearSVC基於liblinear,罰函數是對截矩進行懲罰;SVC基於libsvm,罰函數不是對截矩進行懲罰。

6、我們知道SVM解決問題時,問題是分為線性可分和線性不可分問題的,liblinear對線性可分問題做了優化,故在大量數據上收斂速度比libsvm快
(一句話,大規模線性可分問題上LinearSVC更快)

7、為什么中國沒有stackoverflow這樣的網站,累死我了!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM