gpt4 book ai didi

python - 在 scikit-learn 中将 l1 惩罚与 LogisticRegressionCV() 结合使用

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:48 25 4
gpt4 key购买 nike

我正在使用 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 参数并尝试降低正则化系数。

关于python - 在 scikit-learn 中将 l1 惩罚与 LogisticRegressionCV() 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34448288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com