线性 SVM 和带线性核的 SVM 有什么区别?

数据挖掘 Python scikit-学习 支持向量机 libsvm
2021-09-23 15:03:27

我想知道线性 SVM 和具有线性内核的 SVM 之间是否存在差异。还是线性 SVM 只是具有线性内核的 SVM?

linear_svm如果是这样,这两个变量和linear_kernel下面的代码有什么区别。

from sklearn import svm
linear_svm = svm.LinearSVC(C=1).fit(X_train, y_train)
linear_kernel_svm=svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
1个回答

正如您在文档(http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html)中所读到的,它在概念上相似,但以另一种方式实现以增加灵活性:

与参数 kernel='linear' 的 SVC 类似,但根据 liblinear 而不是 libsvm 实现,因此它在选择惩罚和损失函数方面具有更大的灵活性,并且应该更好地扩展到大量样本。

因此,如果您只想使用线性支持向量,请使用此支持向量,因为它可以更好地扩展并且您可以使用损失函数获得更多自由,但如果您想更轻松地在网格搜索中尝试不同的内核,请使用更通用的支持向量。