2013-04-26 46 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