簡體   English   中英

在 scikit-learn 中將 l1 懲罰與 LogisticRegressionCV() 結合使用

[英]Using l1 penalty with LogisticRegressionCV() in scikit-learn

我正在使用 python scikit-learn 庫進行分類。

作為特征選擇步驟,我想使用 RandomizedLogisticRegression()。

因此,為了通過交叉驗證找到 C 的最佳值,我使用了 LogisticRegressionCV(penalty='l1',solver='liblinear')。 然而,在這種情況下,所有系數都為 0。 使用 l2 懲罰沒有問題。 此外,帶有 l1 懲罰的 LogisticRegression() 的單次運行似乎給出了適當的系數。

我正在使用 RandomizedLasso 和 LassoCV() 來解決問題,但我不確定將 LASSO 用於二進制類標簽是否合適。

所以我的問題是這樣的。

  1. 在我的情況下使用 LogisticRegressionCV() 有什么問題嗎?
  2. 除了 GridSearchCV() 之外,還有其他方法可以為邏輯回歸找到 C_ 的最佳值嗎?
  3. 是否可以將 LASSO 用於二元(非連續)分類?

根據你的描述,我可以說 l1 正則化項的系數在你的情況下很高,你需要減少。

當系數非常高時,正則化項變得比誤差項更重要,因此您的模型變得非常稀疏並且無法預測任何內容。

我檢查了LogisticRegressionCV ,它說它將使用 Cs 參數從 1e-4 搜索到 1e4。 文檔說如果你提供一個整數,為了有較低的正則化系數,你需要有更高的 Cs。 或者,您可以自己提供正則化系數的倒數作為列表。

因此,使用 Cs 參數並嘗試降低正則化系數。

暫無
暫無

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

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