【问题标题】:In sklearn what is the difference between a SVM model with linear kernel and a SGD classifier with loss=hinge在 sklearn 中,具有线性内核的 SVM 模型和具有 loss=hinge 的 SGD 分类器有什么区别
【发布时间】:2015-06-24 14:26:26
【问题描述】:

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

现在,我看到前两个分类器之间的区别在于,前者是根据 liblinear 实现的,而后者是根据 libsvm 实现的。

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

【问题讨论】:

    标签: machine-learning scikit-learn svm


    【解决方案1】:

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

    后者可以批量处理数据并执行梯度下降,旨在最小化样本分布的预期损失,假设样本是该分布的独立同分布样本。

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

    希望这有帮助吗?

    【讨论】:

    • 一个问题是,如果我们使用 Hinge Loss 进行 SDG,它会提供一个基本的性能基准,例如仅使用线性内核的 SVC,其性能类似于使用 logloss 的 Logistic 回归。但是逻辑回归的规模比 LinearSVC 快一点。所以没有必要使用 SVC
    • @MayukhSarkar 这可能适用于您的数据,但并非总是如此。最好保持安全并通过不同的分类器进行测试。
    猜你喜欢
    • 2019-07-09
    • 2014-04-28
    • 2012-09-28
    • 2011-11-11
    • 2018-06-09
    • 2019-09-25
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多