【问题标题】: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 选项都没有通过阈值优化问题,但老实说,我只熟悉基本形式的算法,所以我不知道是不是这样。

【问题讨论】:

    标签: python machine-learning scikit-learn logistic-regression lasso-regression


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 哦,太好了!反向 lambda 是指 1/lambda,对吗?
    • 基本上是的。因此,您不能将其设置为 0。
    猜你喜欢
    • 2018-12-06
    • 2014-09-22
    • 2014-10-10
    • 1970-01-01
    • 2019-12-30
    • 2021-07-17
    • 2021-04-04
    • 2012-06-14
    • 1970-01-01
    相关资源
    最近更新 更多