Scikit Learn的Support Vector Classifier是hard margin还是soft margin

问题描述 投票:0回答:1

我想知道下面来自 scikit learn 的支持向量分类器是硬边距还是软边距?

from sklearn import svm
clf = svm.SVC()
scikit-learn svm
1个回答
6
投票

虽然很晚,但我不同意提供的答案,原因如下:

  • Hard margin classification 仅在数据线性可分时才有效(请注意
    SVC()
    的默认选项是
    'rbf'
    内核而不是线性内核);
  • hard margin classifier 的原始优化问题具有这种形式:
  • 另一方面,正如您可能从 guide 中看到的那样,scikit-learn 中考虑的原始优化问题如下:

这个公式 - 在文献中确定了 soft margin classifier 的优化问题 - 使其也适用于非线性可分离数据集并引入:

  • zeta_i
    ,衡量实例 i 被允许违反边界的程度(从第一个公式到第二个公式,功能边界可以小于 1);
  • 超参数
    C
    ,这是对目标函数施加的“惩罚”的一部分,以允许实例的功能余量小于 1.

最终,正如您在 sklearn doc 中看到的那样,超参数

C
必须严格为正,这强化了
SVC()
确实提供软边缘分类的想法。 这里是另一个SO参考。

© www.soinside.com 2019 - 2024. All rights reserved.