簡體   English   中英

Python中具有正系數的線性回歸

[英]Linear Regression with positive coefficients in Python

我試圖找到一種方法來擬合具有正系數的線性回歸模型。

我找到的唯一方法是sklearn 的 Lasso 模型,它有一個positive=True參數,但不建議使用 with alpha=0 (意味着對權重沒有其他限制)。

你知道另一種模型/方法/方法嗎?

IIUC,這是一個可以通過scipy.optimize.nnls解決的scipy.optimize.nnls ,它可以做非負最小二乘法。

解決argmin_x || Ax - b ||_2 對於 x>=0。

在您的情況下, byAXxβ (系數),但是,否則,它是相同的,不是嗎?

許多函數可以保持線性回歸模型的正系數。

  1. scipy.optimize.nnls可以解決上述問題。
  2. scikit-learn LinearRegression可以設置參數positive=True來解決這個問題。 而且,sklearn 還使用scipy.optimize.nnls 有趣的是,您可以學習如何在源代碼中編寫多個目標輸出
  3. 此外,如果您想求解具有變量邊界的線性最小二乘法。 你可以看到lsq_linear

從 0.24 版本開始,scikit-learn LinearRegression包含一個類似的參數positive ,它正是這樣做的; 文檔

正:布爾值,默認值=假

當設置為True ,強制系數為正。 僅密集陣列支持此選項。

0.24 版中的新功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM