sklearn中是不是有设置惩罚阈值的参数?

Posted

技术标签:

【中文标题】sklearn中是不是有设置惩罚阈值的参数?【英文标题】:Is there a parameter to set a penalty threshold in sklearn?sklearn中是否有设置惩罚阈值的参数? 【发布时间】:2021-03-22 06:52:00 【问题描述】:

作为特征选择过程的一部分,我正在为我的数据拟合一个 sklearn.linear_model.LogisticRegression 模型,并带有 L1 惩罚。据我了解,使用penalty='l1' 意味着优化过程将在所有系数的绝对值之和小于给定阈值(as explained here)的情况下最小化成本函数。

是否有参数声明系数绝对值之和的阈值?

这是我的分类器:

clf = LogisticRegression(penalty='l1', dual=False, tol=0.01, C=1.0,
                         fit_intercept=True, intercept_scaling=1,
                         random_state=0, solver='saga', max_iter=500,
                         multi_class='auto', n_jobs=-1)

也许solver 选项都没有通过阈值优化问题,但老实说,我只熟悉基本形式的算法,所以我不知道是不是这样。

【问题讨论】:

【参考方案1】:

您正在寻找的是C 参数,它基本上是在

min: 1/n * ||y - X * beta||^2 + lambda * ||beta||

来自 wiki 的方程式(您提供的 link)。

减少C 与增加上述等式中的 lambda 具有相同的效果(增加上述等式中的 lambda 和减少代码中的C 都会导致更多的正则化)。

tol 被用作优化算法的停止标准,而不是正则化。

【讨论】:

哦,太好了!反向 lambda 是指 1/lambda,对吗? 基本上是的。因此,您不能将其设置为 0。

以上是关于sklearn中是不是有设置惩罚阈值的参数?的主要内容,如果未能解决你的问题,请参考以下文章

sklearn help之岭回归 ridge regression

惩罚一类svm sklearn的错误?

sklearn中的SGDClassifier

Sklearn 逻辑分类器的 L1 和 L2 惩罚

SVM原理与Sklearn参数详解

Sklearn机器学习——ROC曲线ROC曲线的绘制和AUC面积运用ROC曲线找到最佳阈值