【问题标题】:Minimising training error with a linear classifier使用线性分类器最小化训练误差
【发布时间】:2012-09-04 06:12:48
【问题描述】:

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

sign(weights' * features) = label

对于features \in {0, 1}^d, label \in {-1, 1} 和实值权重。我有 N 个训练实例,我希望上述等式适用于最大可能的实例数。我知道如果问题始终是可分离的,则硬边距 SVM 之类的东西会起作用,但如果不是,我也需要找到解决方案。

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

【问题讨论】:

    标签: matlab machine-learning


    【解决方案1】:

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

    编辑

    我发现 this 论文描述了一种最小化 0/1 损失的方法。

    【讨论】:

    • 恐怕这并没有真正的帮助,除非您对 C 的什么值对应于最小化训练误差有一些指导(据我了解,这取决于问题)。
    • 我需要知道您使用什么度量来衡量训练错误。但我会考虑不最小化训练错误,而是使用cross-validation 并将验证错误作为衡量标准。
    • 我更新了我的问题以澄清我对 0/1 损失感兴趣。正如我在我的问题中所说,我非常希望完全按照我的描述去做,而不是交叉验证。
    • 最小化 o/1 损失比较困难。我发现this 论文描述了一种方法来做到这一点。这是最近的事,我不确定它是否公开。如果不是,我很抱歉。
    • 啊,这看起来就是我想知道的,谢谢!您能否编辑您的答案以包含该信息,以便我可以接受?
    猜你喜欢
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 2012-04-18
    • 2017-10-12
    • 2020-08-09
    • 2014-05-28
    • 2018-05-13
    相关资源
    最近更新 更多