如何使用 scikit-learn 执行非正则化逻辑回归?
Posted
技术标签:
【中文标题】如何使用 scikit-learn 执行非正则化逻辑回归?【英文标题】:How to perform an unregularized logistic regression using scikit-learn? 【发布时间】:2017-09-11 21:01:51 【问题描述】:来自 scikit-learn 的 documentation,默认惩罚为“l2”,C(正则化强度的倒数)为“1”。如果我保持这个设置的惩罚='l2'和C=1.0,这是否意味着训练算法是一个非正则化的逻辑回归?相反,当 C 不是 1.0 时,它是一个正则化逻辑回归分类器?
【问题讨论】:
【参考方案1】:不,不是那样的。
让我们看看sklearn's user-guide中的定义:
我们看到:
C
乘以损失,而左项(正则化)保持不变
这意味着:
如果不修改代码,您永远无法完全关闭正则化 但是:您可以通过将C
设置为一个很大的数字来近似关闭正则化!
由于优化试图最小化正则化惩罚和损失的总和,增加C
会降低正则化惩罚的相关性
【讨论】:
【参考方案2】:首先,将C
设置为一个较大的值(相对于您的预期系数)。
如果不适合你,也设置penalty='l1'
【讨论】:
以上是关于如何使用 scikit-learn 执行非正则化逻辑回归?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 scikit-learn 中使用随机逻辑回归找到最低的正则化参数 (C)?
python - 如何在python scikit-learn中找到逻辑回归中的正则化参数?
如何在 scikit-learn 的 SVM 中使用非整数字符串标签? Python
如何调整 scale scikit-learn Logistic Regression coeffs 以对非缩放数据集进行评分?