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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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这样的网站,累死我了!!!

以上是关于sklearn.svm包中的SVC(kernel=”linear“)和LinearSVC的区别的主要内容,如果未能解决你的问题,请参考以下文章

sklearn系列之 sklearn.svm.SVC详解

sklearn集成支持向量机svm.SVC参数说明

sklearn svm中的稀疏预计算Gram矩阵?

LinearSVC 和 SVC(kernel="linear") 有啥区别?

sklearn 笔记 SVM

参数“coef0”是不是表示 sklearn.svm.SVC 方法中的特定系数?