不带正则化的sklearn逻辑回归
在sklearn这个库里,逻辑回归的类有L1和L2这两种正则化方法。有人想知道怎么才能关闭正则化,得到像Matlab里的glmfit那样的“原始”逻辑回归结果。他觉得可以把C设置成一个很大的数字,但又觉得这样做不太明智。
想了解更多细节,可以查看文档:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression
3 个回答
-2
我也遇到了同样的问题,试过这个答案,还有其他一些答案:
如果把C设置成一个很大的值对你没有用,试着把 penalty='l1'
也设置上。
6
你可以把C设置得尽量大一些。还有,要记得使用l2,因为用l1的话,那个实现可能会慢得让人受不了。
9
没错,选择尽可能大的数字。在正则化中,成本函数里包含一个正则化的表达式。要记住,sklearn中的C
参数是正则化强度的倒数。
这里的C
等于1除以lambda,但有个条件就是C
必须大于0。
所以,当C
越来越大时,lambda就会越来越小。当这种情况发生时,成本函数就变成了你常用的误差函数,因为正则化的部分几乎变成了0。
更新:在sklearn 0.21及以上版本中,你可以通过传入penalty='none'
来关闭正则化。可以查看这里的文档。