2013-01-14 32 views
1

Scikit-learn提供了大量有用的線性模型。然而,我正在研究一個與非負性約束成線性關係的問題(即解答變量應該是非負的)。scikit-learn支持/計劃哪些非負線性模型?

我想使用scikit-learn,但是我看到的可以支持當前非負性的唯一函數是Lasso(),通過'positive = true'標誌。 LassoCV()或lasso_path()不支持非消極性。

scikit-learn中是否有其他非負線性模型?有計劃在不久的將來包括這些嗎?

+0

沒有計劃在scikit-learn中加入很多新功能;開發團隊正在討論功能凍結,以便在不久的將來可以發佈1.0版本。 –

+0

將'positive = True'構造函數參數傳播到'LassoCV'和'lasso_path'仍然會被認爲是我認爲的PR。它不會增加現有代碼庫的複雜性,因爲'LassoCV'和'lasso_path'是'Lasso'的包裝器。 – ogrisel

+0

任何人都想將其中的一個變成答案? – Bitwise

回答

2

的scikit學習當前穩定版本支持LassoCVlasso_pathpositive kwarg(儘管後者沒有在文檔字符串中提到,它似乎)。非負號的示例lasso_path用法:https://github.com/scikit-learn/scikit-learn/blob/master/examples/linear_model/plot_lasso_coordinate_descent_path.py

ElasticNet和相關的CV版本也支持非負選項。

+0

奇怪的是,我在LassoCV中獲得了positive = True的正係數,但是一些'predict()'值仍然是負數。(並且沒有負輸入值)奇怪。 –

+0

'intercept_'值怎麼樣? – perimosocordiae

+0

是的,就是這樣 –