Hard margin SVM 的 Sklearn 内置函数

Sklearn built-in function for Hard margin SVM

我知道soft margin SVM有一个内置函数如下。

from sklearn.svm import SVC
clf = SVC(C=1, kernel = 'linear')
clf.fit(X, y)

但是对于 Hard margin SVM,我们需要 C=0,对吧?但是当我让 C=0.

时代码报错 ValueError: C <= 0

scikit-learn 中没有 hard-margin SVM,因为它不是很有用的模型。从数值上讲,您只需设置 C=1e-10 就可以非常接近它,但它可能会导致收敛问题,因为在支持向量机的对偶公式中,C 是拉格朗日乘数的上限。

我同意 scikit-learn 中没有 hard-margin SVM。但是,我认为 C=1e-10 不是创建硬 SVM 的正确数值方法。我们应该设置较大的 C 来获得硬 SVM,因为较大的 C 会导致较少的错误分类案例,而 Hard SVM 不允许任何错误分类的案例。