我正在做一个分类任务--基于Twitter用户的推特用户的地理定位。
我用sklearn的SVC、NuSVC、LinearSVC和书包模型做了很多实验.准确率分别为35%、60%和80%。SVC与LinearSVC的差异是两倍以上,这是令人震惊的。
我不太清楚为什么会发生这种情况。可能是因为不合身还是不合身?为什么量词之间有这么大的区别?
发布于 2019-02-14 23:14:44
一般来说,非线性核比线性函数更适合建模更复杂的函数,但它取决于数据、所选择的超参数(例如惩罚和核)以及如何评估结果。
LinearSVC
与具有参数核=‘线性’的SVC类似,但采用lib线性而非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。
https://stackoverflow.com/questions/54700283
复制相似问题