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

Is there a parameter to set a penalty threshold in sklearn?

我正在为我的数据拟合一个 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 选项中的 none 用阈值优化问题,但老实说,我只熟悉基本形式的算法,所以我不知道那是不是大小写。

您要找的是 C 参数,它基本上是

中的反向 lambda

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

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

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

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