Machine learning 在sklearn中,学习线性核SVM模型和损失=铰链的SGD分类器之间的区别是什么

Machine learning 在sklearn中,学习线性核SVM模型和损失=铰链的SGD分类器之间的区别是什么,machine-learning,scikit-learn,svm,Machine Learning,Scikit Learn,Svm,我看到在scikit learn中,我可以用最后3种不同的方式构建一个具有线性核的SVM分类器: 使用kernel='linear'参数 使用loss='铰链'参数 现在,我看到前两个分类器的区别在于前者是根据liblinear实现的,后者是根据libsvm实现的 前两个分类器与第三个分类器有何不同?前两个分类器始终使用完整的数据,并针对这些数据点解决凸优化问题 后者可以成批处理数据,并执行梯度下降,以最小化样本分布的预期损失,假设示例是该分布的iid样本 后者通常在样本数量非常大或没有结

我看到在scikit learn中,我可以用最后3种不同的方式构建一个具有线性核的SVM分类器:

  • 使用kernel='linear'参数
  • 使用loss='铰链'参数
现在,我看到前两个分类器的区别在于前者是根据liblinear实现的,后者是根据libsvm实现的


前两个分类器与第三个分类器有何不同?

前两个分类器始终使用完整的数据,并针对这些数据点解决凸优化问题

后者可以成批处理数据,并执行梯度下降,以最小化样本分布的预期损失,假设示例是该分布的iid样本

后者通常在样本数量非常大或没有结束时使用。请注意,您可以调用
partial_fit
函数并向其提供大块数据


希望这能有所帮助?

一个问题是,如果我们使用铰链损失进行SDG,它会给出一个基本的性能基准,如仅使用线性核的SVC,其性能类似于使用logloss的逻辑回归。但Logistic回归比线性回归快一点。所以没有使用的意义SVC@MayukhSarkar对于您的数据,这可能是正确的,但并非总是如此。为了安全起见,最好通过不同的分类器进行测试。