l 有一个 dim=(200,2000) 200 个示例和 2000 个特征的数据集。我有10节课。
我在这两种情况下都使用了 sklearn:
svm.svc(kernel=linear)
LinearSVC()
然而,LinearSVC() 的性能明显优于具有线性内核的 svm。60% 对 23%。我应该得到相同或可比较的结果,因为它们提供了相同的参数和数据。
怎么了 ?
谢谢
l 有一个 dim=(200,2000) 200 个示例和 2000 个特征的数据集。我有10节课。
我在这两种情况下都使用了 sklearn:
svm.svc(kernel=linear)
LinearSVC()
然而,LinearSVC() 的性能明显优于具有线性内核的 svm。60% 对 23%。我应该得到相同或可比较的结果,因为它们提供了相同的参数和数据。
怎么了 ?
谢谢
这只是一个猜测,但根据我的说法,由于正则化,linearSVC 的性能可能比具有线性内核的 SVM 更好。
因为 linearSVC 基于 liblinear 而不是 libsvm,所以它具有更大的灵活性,并且它使您可以在 SVM 中使用正则化(默认为 L2-Ridge 正则化)。
因为您拥有的特征多于观察结果,所以它存在多种分类模型的解决方案。其中一些比其他的更“健壮”。L2 正则化将帮助您降低模型系数的幅度,并可能导致更稳定的解决方案。
文档中有关 LinearSVC 的更多信息:
http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html
更多关于使用大量特征(以及多重共线性)时岭回归的好处: