Scikit learn 为什么SVC、NuSVC和LinearSVC产生非常不同的结果?
我正在做一项分类任务——根据推特用户的推特对其进行地理定位 我使用sklearn的SVC、NuSVC和LinearSVC以及bag of words模型做了很多实验。准确度分别为35%、60%和80%。SVC和LinearSVC之间的差异是令人震惊的两倍以上Scikit learn 为什么SVC、NuSVC和LinearSVC产生非常不同的结果?,scikit-learn,svm,Scikit Learn,Svm,我正在做一项分类任务——根据推特用户的推特对其进行地理定位 我使用sklearn的SVC、NuSVC和LinearSVC以及bag of words模型做了很多实验。准确度分别为35%、60%和80%。SVC和LinearSVC之间的差异是令人震惊的两倍以上 我不太清楚为什么会发生这种情况。这可能是因为过度装配或不足装配?为什么分类器之间存在如此大的差异?一般来说,非线性核比线性核更适合建模更复杂的函数,但这取决于数据、选择的超参数(例如惩罚和核)以及您如何评估结果 LinearSVC 与SVC
我不太清楚为什么会发生这种情况。这可能是因为过度装配或不足装配?为什么分类器之间存在如此大的差异?一般来说,非线性核比线性核更适合建模更复杂的函数,但这取决于数据、选择的超参数(例如惩罚和核)以及您如何评估结果 LinearSVC 与SVC类似,参数为kernel='linear',但采用liblinear而不是libsvm实现,因此它在惩罚函数和损失函数的选择方面具有更大的灵活性,并且应该更好地扩展到大量样本 资料来源: SVC 该实现基于libsvm。拟合时间复杂度与样本数成二次关系,因此很难扩展到超过10000个样本的数据集 资料来源:
首先,您应该测试一个
LinearSVC
模型,因为它只有几个超参数,应该会给出第一个结果。之后,您可以尝试训练一组SVC
模型,并选择最好的。为此,我建议制作一个超过C
,内核
,度
,伽马
,coef0
和tol
,一般来说,非线性内核比线性函数更适合建模更复杂的函数,但它取决于数据、所选的超参数(例如惩罚和内核)以及你如何评估你的结果
LinearSVC
与SVC类似,参数为kernel='linear',但采用liblinear而不是libsvm实现,因此它在惩罚函数和损失函数的选择方面具有更大的灵活性,并且应该更好地扩展到大量样本
资料来源:
SVC
该实现基于libsvm。拟合时间复杂度与样本数成二次关系,因此很难扩展到超过10000个样本的数据集
资料来源:
首先,您应该测试一个LinearSVC
模型,因为它只有几个超参数,应该会给出第一个结果。之后,您可以尝试训练一组SVC
模型,并选择最好的。为此,我建议使用C
、kernel
、degree
、gamma
、coef0
和tol