【问题标题】:SVM in Matlab: Meaning of Parameter 'box constraint' in function fitcsvmMatlab 中的 SVM:函数 fitcsvm 中参数“框约束”的含义
【发布时间】:2015-09-18 14:18:10
【问题描述】:

我是 Matlab 中 SVM 的新手,需要一些帮助。

我想使用 Statistics Toolbox 的内置函数 fitcsvm 训练支持向量机。 当然,有很多参数选择可以控制 SVM 的训练方式。

Matlab 帮助是关于参数如何存档更好的训练结果的一点点工资。尤其是参数'Box Contraint'似乎对选择的支持向量的数量和泛化质量有重要影响。

帮助 (http://de.mathworks.com/help/stats/fitcsvm.html#bt8v_z4-1) 说

控制对违反边距的观察施加的最大惩罚的参数,并有助于防止过度拟合(正则化)。

如果增加框约束,则 SVM 分类器分配的支持向量会更少。但是,增加框约束可能会导致更长的训练时间。

这个参数究竟是如何使用的? 是否与the Wikipedia 参考中的软边距因子 C 相同或类似? 还是完全不同的东西?

感谢您的帮助。

【问题讨论】:

    标签: matlab machine-learning svm


    【解决方案1】:

    您绝对是在正确的道路上。虽然 fitcsvm 文档中的描述(正如您在问题中发布的那样)非常简短,但您应该查看 MATLAB 文档中的 Understanding Support Vector Machines 站点。

    在不可分离的情况下(通常称为 Soft-Margin SVM),允许错误分类,代价是惩罚因子C。那么SVM的数学公式就变成了:

    使用松弛变量s_i 导致惩罚项由C 加权。 使C 变大会增加错误分类的权重,从而导致更严格的分离。 这个因素C 称为框约束。 这个名字的原因是,在对偶优化问题的表述中,朗朗日乘数被限制在[0,C]的范围内。 C 因此对拉格朗日乘数构成了框约束。

    tl;dr您的猜测是正确的,它是软边距 SVM 中的 C

    【讨论】:

    • 谢谢...关于框约束的最佳值的任何提示?
    • @user836026 不可能为此设置 1 个最佳值。您通常最终会调整框约束以优化 SVM 的性能。 MATLAB 文章Understanding SVMs 中给出了一些很好的细节。
    • 我为“BoxConstraint”尝试了不同的值,但结果没有变化。
    • 很好的描述。第一个公式的一个小错误:约束似乎是错误的,你想增加你的数据 x 到超平面 w 的距离,所以内积是 而不是 。你能更新你链接到的图片吗?
    • 哦,当然,你是对的@JStrahl。我相应地更新了方程。 (注意:我使用online LaTeX equation editor 创建了方程,因此很容易重新创建)
    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 2022-07-02
    • 1970-01-01
    • 2019-08-27
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    相关资源
    最近更新 更多