我正在使用python scikit-learn库进行分类。
作为特征选择步骤,我想使用RandomizedLogisticRegression()。
因此,为了通过交叉验证找到C的最佳值,我使用了LogisticRegressionCV(惩罚=' l1',求解器=' liblinear')。 但是,在这种情况下,所有系数都是0。 使用l2惩罚工作没有问题。此外,具有l1惩罚的单次运行LogisticRegression()似乎可以给出适当的系数。
我使用RandomizedLasso和LassoCV()进行解决,但我不确定将LASSO用于二进制类标签是否合适。
所以我的问题就是这些。
答案 0 :(得分:2)
根据你的描述,我可以说l1正则化项的系数在你需要减少的情况下很高。
当系数非常高时,正则化项比误差项更重要,因此您的模型变得非常稀疏且无法预测。
我检查了LogisticRegressionCV,并说它将使用Cs参数从1e-4到1e4进行搜索。文档说,为了获得较低的正则化系数,如果提供整数,则需要具有更高的Cs。或者,您可以自己提供正则化系数的倒数作为列表。
因此,请使用Cs参数并尝试降低正则化系数。