machine-learning - Lib线性偏差非常接近于零

标签 machine-learning classification svm

我正在尝试使用 Lib Linear 对某些 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 

我做错了什么?

最佳答案

我不确定你做错了什么。

来自 liblinear 常见问题解答:

Q: Is LIBLINEAR gives the same result as LIBSVM with linear kernel?

They should be very similar. However, sometimes the difference may not be small. Note that LIBLINEAR does not use the bias term b by default. If you observe very different results, try to set -B 1 for LIBLINEAR. This will add the bias term to the loss function as well as the regularization term (w^Tw + b^2). Then, results should be closer.

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

没有特别充分的理由认为正则化偏差将提供更好的分类器,因此许多其他学习系统不属于正则化项。然而,在具有非常高维度的“现实世界”问题中,数据也很可能是可分离的,而不需要偏差项,因此对其进行正则化不会造成任何损害,并且更容易实现。

关于machine-learning - Lib线性偏差非常接近于零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7289985/

相关文章:

apache-spark - Spark MLlib 包 NaN 权重

python - tensorflow 属性错误: 'NoneType' object has no attribute 'keys'

python - 哪些Python贝叶斯文本分类模块类似于dbacl?

c++ - 在 SVM 中找到预测的置信度

python - 如何使用 CNN 和 PyTorch 处理输入数据以进行音频分类?

python - 情感分类中的缺失值

machine-learning - 将文本文件转换为 ARFF 格式

machine-learning - Weka 中级联分类器的错误方法

machine-learning - RISO 的 L-BFGS 不起作用

python - 如何在scikit SVC中打印相应的特征权重?