我正在尝试找到一个线性分类器,在数据非线性可分的情况下,最小化训练误差(0/1损失)。具体来说,我正在寻找一种确定权重的方法:
sign(weights' * features) = label
表示features
\ label
^ d,{{1}} \ in {-1,1}和实值权重。我有N个训练实例,我希望上面的等式保持最大可能的实例数。我知道如果问题总是可以分离的话,像边距很大的SVM会起作用,但是当需要时我也需要找到解决方案。
(这个任务可能听起来有点深奥,但请不要告诉我该做什么而不是寻找最小训练误差线性分类器 - 我所描述的绝对是我想要解决的问题! )
答案 0 :(得分:1)
Matlab包含一个非常易于使用的非线性SVM工具箱。
请查看svmtrain
和svmclassify
。
要选择内核函数,您必须使用'kernel_function'
参数,尽管默认值为'linear'
,这正是您尝试执行的操作。
'boxconstraint'
参数让您选择C
这是软约束的参数。
修改强>
我找到了this论文,其中描述了一种最小化0/1损失的方法。