为什么SVC,NuSVC和LinearSVC会产生截然不同的结果?

时间:2019-02-14 22:46:46

标签: scikit-learn svm

我正在执行分类任务-根据Twitter用户的推文对Twitter用户进行地理位置定位。

我使用sklearn的SVC,NuSVC和LinearSVC以及词袋模型进行了许多实验。准确度为35%,60%和80%。 SVC和LinearSVC之间的差异是原来的两倍以上。

我不太确定为什么会这样。可能是因为过度拟合或拟合不足?为什么分类器之间有如此大的差异?

1 个答案:

答案 0 :(得分:1)

通常,非线性内核比线性函数更适合于对更复杂的函数建模,但这取决于数据,所选的超参数(例如惩罚和内核)以及如何评估结果。

LinearSVC

  

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

来源:sklearn.svm.LinearSVC.html#sklearn.svm.LinearSVC

SVC

  

该实现基于libsvm。拟合时间的复杂度是样本数量的两倍以上,这使得很难扩展到具有超过10000个样本的数据集。

来源:sklearn.svm.SVC.html#sklearn.svm.SVC

首先,您应该测试一个LinearSVC模型,因为它只有几个超级参数,应该给您第一个结果。之后,您可以尝试训练一堆SVC模型并选择最佳模型。为此,我建议在Ckerneldegreegammacoef0tol上使用gridsearch。 / p>