我正在执行分类任务-根据Twitter用户的推文对Twitter用户进行地理位置定位。
我使用sklearn的SVC,NuSVC和LinearSVC以及词袋模型进行了许多实验。准确度为35%,60%和80%。 SVC和LinearSVC之间的差异是原来的两倍以上。
我不太确定为什么会这样。可能是因为过度拟合或拟合不足?为什么分类器之间有如此大的差异?
答案 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
模型并选择最佳模型。为此,我建议在C
,kernel
,degree
,gamma
,coef0
和tol
上使用gridsearch。 / p>