我有以下形式的classic linear迴歸問題:約束線性迴歸在Python
y = X b
其中y
是響應向量X
是矩陣輸入變量和b
是的矢量我正在尋找適合的參數。
Python提供了b = numpy.linalg.lstsq(X , y)
來解決這種形式的問題。
但是,當我使用這個我傾向於得到非常大或非常小的值爲b
的組件。
我想0和255
它看起來像scipy.optimize.fmin_slsqp()
是一個選項之間進行同樣合適,但限制的b
值,但我發現它的問題大小我極其緩慢m感興趣(X
就像3375 by 1500
,希望更大)。
- 是否有執行的約束至少 平方適用於任何其他的Python的選擇嗎?
- 還是有蟒蛇例程執行Lasso Regression或嶺迴歸或其他迴歸方法 懲罰較大的
b
係數值?
不錯,表面上聽起來像我所需要的。能夠爲'X'輸入變量矩陣行提供權重對我來說可能實際上也是非常有用的(我確實對可能讓我充分利用的各種數據點的可靠性有一定的瞭解)。我一定會試試看,謝謝! – ulmangt 2012-04-14 15:58:17
這是不是很好的測試,希望它會爲你工作。代碼是純Python,應該很容易測試。 – tillsten 2012-04-14 15:59:23
'scipy.opimize.nnls'也是一個很好的提示。簡單地約束到非負值可能確實足夠了。 'numpy.linalg.lstsq'解決方案似乎正在平衡巨大的積極'b'值,同時具有同樣巨大的負值'b'值。 – ulmangt 2012-04-14 19:05:09