Sklearn中Hard margin SVM内置函数使用报错问题咨询
硬间隔SVM的Sklearn实现方案
Sklearn的SVC类对参数C的约束为严格大于0,设置C=0触发报错属于框架的正常参数校验逻辑。参数C的含义是误分类样本的惩罚系数,数值越大,对误分类的容忍度越低。
硬间隔SVM的核心要求是所有样本完全满足分类约束、无间隔违例,只需将C设置为极大的正数即可等效实现硬间隔效果,通常取1e10以上的数值即可满足要求,注意该方案的前提是你的数据集本身是线性可分的,否则模型会因无法找到完全可分的超平面出现不收敛问题。
示例实现代码如下:
from sklearn.svm import SVC # C设置为极大值,等效硬间隔SVM clf = SVC(C=1e10, kernel='linear') clf.fit(X, y)
内容的提问来源于stack exchange,提问作者Hermi
相关产品推荐
相关产品推荐

