关于 SVR 与 LinearSVR 疑问
来源:11-9 SVM思想解决回归问题

lemonlxn
2019-03-20
老师好,关于 SVR 与 LinearSVR,sklearn 中,对这两者做了相关的解释。
LinearSVR 类似于SVR 参数下 kernel ='linear’的SVR。
不过 LinearSVR 以liblinear形式实现,而不是libsvm形式,因此它在惩罚和损失函数的选择方面具有更大的灵活性,并且应该更好地扩展到大量样本。
相关原文如下:
不过我看这两者的表述,还是不能直观的理解 liblinear 与 libsvm区别。
老师,您能简单的描述一下吗?
另外,我们日常使用 SVM做线性回归的话,一般使用 LinearSVR 还是 SVR 参数下 kernel =‘linear’ 呢?
写回答
1回答
-
这二者的区别不在算法的原理上,而在求解的实现上。你可以理解成,同样是求解二次线性方程组,我们可以搜索,也可以使用公式;同样计算大数乘法,我们可以使用字符串模拟,也可以使用傅里叶变换;同样求解线性回归问题,我们可以使用normal equation,也可以使用梯度下降法:)
SVM算法的最优化求解问题远没有线性回归和逻辑回归那么简单,求得这个最优化问题的解也有很多不同的方法,liblinear和libsvm是两个不同的求解svm算法问题的底层库,背后的实现有区别。
我个人倾向于在一般情况下,对于线性SVM,用LinearSVR(或者LinearSVC),而不使用SVR(或者SVC) kernel='linear'。一般情况二者的结果没有差异。且LinearSVR(LinearSVC)效率会更高一些:)
继续加油!:)
012019-03-20
相似问题