I know that there is a built-in function for soft margin SVM as follows.
from sklearn.svm import SVC
clf = SVC(C=1, kernel = 'linear')
clf.fit(X, y)
But for Hard margin SVM, we need C=0
, right? But the code report error ValueError: C <= 0
when I let C=0
.
There is no hard-margin SVM in scikit-learn, as it is not very useful model. Numercically you can get very close to it by just setting C=1e10
, but it might lead to convergence issues, as in dual formualtion of SVM C is an upper bound on the lagrange multipliers.