【问题标题】:How to perform an unregularized logistic regression using scikit-learn?如何使用 scikit-learn 执行非正则化逻辑回归?
【发布时间】:2017-09-11 21:01:51
【问题描述】:
来自 scikit-learn 的 documentation,默认惩罚为“l2”,C(正则化强度的倒数)为“1”。如果我保持这个设置的惩罚='l2'和C=1.0,这是否意味着训练算法是一个非正则化的逻辑回归?相反,当 C 不是 1.0 时,它是一个正则化逻辑回归分类器?
【问题讨论】:
标签:
python-2.7
machine-learning
scikit-learn
logistic-regression
regularized
【解决方案1】:
不,不是那样的。
让我们看看sklearn's user-guide中的定义:
我们看到:
这意味着:
- 如果不修改代码,您永远无法完全关闭正则化
-
但是:您可以通过将
C 设置为一个很大的数字来近似关闭正则化!
- 由于优化试图最小化正则化惩罚和损失的总和,增加
C 会降低正则化惩罚的相关性
【解决方案2】:
首先,将C 设置为一个较大的值(相对于您的预期系数)。
如果不适合你,也设置penalty='l1'