Reputation: 9078
Logistic regression class in sklearn comes with L1 and L2 regularization. How can I turn off regularization to get the "raw" logistic fit such as in glmfit in Matlab? I think I can set C = large number but I don't think it is wise.
see for more details the documentation http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression
Upvotes: 23
Views: 19072
Reputation: 7460
Yes, choose as large a number as possible. In regularization, the cost function includes a regularization expression, and keep in mind that the C
parameter in sklearn regularization is the inverse of the regularization strength.
C
in this case is 1/lambda, subject to the condition that C
> 0.
Therefore, when C
approaches infinity, then lambda approaches 0. When this happens, then the cost function becomes your standard error function, since the regularization expression becomes, for all intents and purposes, 0.
Update: In sklearn versions 0.21 and higher, you can disable regularization by passing in penalty='none'
. Check out the documentation here.
Upvotes: 9
Reputation: 101
Go ahead and set C as large as you please. Also, make sure to use l2 since l1 with that implementation can be painfully slow.
Upvotes: 6