使用线性分类器最小化训练误差

时间:2012-09-11 10:22:01

标签: matlab machine-learning

我正在尝试找到一个线性分类器,在数据非线性可分的情况下,最小化训练误差(0/1损失)。具体来说,我正在寻找一种确定权重的方法:

sign(weights' * features) = label

表示features \ label ^ d,{{1}} \ in {-1,1}和实值权重。我有N个训练实例,我希望上面的等式保持最大可能的实例数。我知道如果问题总是可以分离的话,像边距很大的SVM会起作用,但是当需要时我也需要找到解决方案。

(这个任务可能听起来有点深奥,但请不要告诉我该做什么而不是寻找最小训练误差线性分类器 - 我所描述的绝对是我想要解决的问题! )

1 个答案:

答案 0 :(得分:1)

Matlab包含一个非常易于使用的非线性SVM工具箱。 请查看svmtrainsvmclassify。 要选择内核函数,您必须使用'kernel_function'参数,尽管默认值为'linear',这正是您尝试执行的操作。 'boxconstraint'参数让您选择C这是软约束的参数。

修改

我找到了this论文,其中描述了一种最小化0/1损失的方法。