2013-04-26 147 views
3

我不明白LIBLINEAR API中偏置参数的含义。为什么在培训期间由用户指定?它不应该只是从分离超平面到原点的距离,而原点是学习模型的一个参数?如何理解LIBLINEAR中的偏置参数?

这是从自述:

struct problem 
{ 
    int l, n; 
    int *y; 
    struct feature_node **x; 
    double bias; 
}; 

如果偏压> = 0,我们假设一个附加特征被添加到每个数据实例的结束。

这是什么附加功能?

回答

5

让我们来看看公式为分离超:

w_1 * x_1 + w_2 * x_2 + w_3 * x_3 + ... + w_bias * x_bias = 0 

其中x是特征值和w训练有素的“砝码”。附加功能x_bias是一个常数,其值等于偏差。如果bias = 0,你会得到一个分离超平面通过原点(0,0,0,...)。你可以想象很多情况下,这样的超平面不是最佳分离器。

偏差的值通过对w_bias进行缩放来影响边距。因此偏差是一个调整参数,通常通过与其他参数相似的交叉验证来确定。

+1

我还是不明白。我认为公式看起来像“sum(w_i * x_i)+ bias”,其中偏差是从训练数据中学习的。 但是我们有w_bias和x_bias。你写道:“附加功能x_bias是一个常数,其值等于偏差”。你的意思是说x_bias =偏见吗? w_bias被学习了吗?我应该向训练数据的特征向量添加额外的特征x_bias吗? – lizarisk 2013-04-27 11:59:22

+0

是的,'bias = x_bias'。所有w都是学习参数。不,你不需要明确地附加任何东西到你的特征向量中。 – M456 2013-04-27 22:58:51