【问题标题】:Liblinear bias very close to zeroLiblinear 偏差非常接近于零
【发布时间】:2011-11-09 12:55:31
【问题描述】:

我正在尝试使用 Liblinear 对一些 2D 点进行线性 SVM 分类(我使用简单的 python gui 为 2 个类添加点,然后绘制分隔类的线),但即使我使用的是偏差选项(-B 1) 对于训练,我得到一个非常接近于零的偏差(分隔线几乎穿过原点)。

我也尝试过简单地训练 2 点集:

-1 1:10 2:30
+1 1:10 2:80

但我仍然得到一个非常小的偏差(一条穿过原点的线,而不是我猜应该是 XY 平面中的水平线)。这是我的输出向量 w:

0.2003362041634111, 
-0.03465897160331861, 
0.0200336204163411 

我做错了什么?

【问题讨论】:

    标签: machine-learning classification svm


    【解决方案1】:

    我不确定你做错了什么。

    来自 liblinear 常见问题解答:

    问:LIBLINEAR 与带有线性内核的 LIBSVM 给出的结果相同吗?

    它们应该非常相似。但是,有时差异可能不会 变小。请注意,LIBLINEAR 默认情况下不使用偏置项 b。 如果您观察到非常不同的结果,请尝试将 -B 1 设置为 LIBLINEAR。 这会将偏置项添加到损失函数以及 正则化项 (w^Tw + b^2)。那么,结果应该更接近。

    这表示 liblinear 试图使偏差项尽可能小。如果它可以将其设置为零并且仍然获得良好的训练集准确度,那么它会。

    没有特别好的理由可以想象正则化偏差会提供更好的分类器,因此许多其他学习系统没有进入正则化术语。然而,在具有非常高维度的“现实世界”问题中,数据也很可能是可分离的,不需要偏差项,因此对其进行正则化并没有害处,并且更容易实现。

    【讨论】:

    • 我尝试了包含高维数据的库(我尝试了一些随机的 N 维点,现在我将它用于图像),它确实工作得更好。
    猜你喜欢
    • 2013-10-20
    • 2013-04-20
    • 1970-01-01
    • 2013-01-19
    • 2013-06-09
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多