class sklearn.linear_model. LogisticRegression ( penalty = 'l2' , * , dual = False , tol = 0.0001 , C = 1.0 , fit_intercept = True , intercept_scaling = 1 , class_weight = None , random_state = None , solver = 'lbfgs' , max_iter = 100 , multi_class = 'deprecated' , verbose = 0 , warm_start = False , n_jobs = None , l1_ratio = None ) [source] #
Logistic Regression (aka logit, MaxEnt) classifier.
In the multiclass case, the training algorithm uses the one-vs-rest (OvR) scheme if the ‘multi_class’ option is set to ‘ovr’, and uses the cross-entropy loss if the ‘multi_class’ option is set to ‘multinomial’. (Currently the ‘multinomial’ option is supported only by the ‘lbfgs’, ‘sag’, ‘saga’ and ‘newton-cg’ solvers.)
This class implements regularized logistic regression using the ‘liblinear’ library, ‘newton-cg’, ‘sag’, ‘saga’ and ‘lbfgs’ solvers. Note that regularization is applied by default. It can handle both dense and sparse input. Use C-ordered arrays or CSR matrices containing 64-bit floats for optimal performance; any other input format will be converted (and copied).
The ‘newton-cg’, ‘sag’, and ‘lbfgs’ solvers support only L2 regularization with primal formulation, or no regularization. The ‘liblinear’ solver supports both L1 and L2 regularization, with a dual formulation only for the L2 penalty. The Elastic-Net regularization is only supported by the ‘saga’ solver.
Read more in the User Guide .
Parameters : penalty , default=’l2’
Specify the norm of the penalty:
Some penalties may not work with some solvers. See the parameter solver below, to know the compatibility between the penalty and solver.
Added in version 0.19: l1 penalty with SAGA solver (allowing ‘multinomial’ + L1)
dual bool, default=FalseDual (constrained) or primal (regularized, see also this equation ) formulation. Dual formulation is only implemented for l2 penalty with liblinear solver. Prefer dual=False when n_samples > n_features.
tol float, default=1e-4
Tolerance for stopping criteria.
C float, default=1.0
Inverse of regularization strength; must be a positive float. Like in support vector machines, smaller values specify stronger regularization.
fit_intercept bool, default=True
Specifies if a constant (a.k.a. bias or intercept) should be added to the decision function.
intercept_scaling float, default=1
Useful only when the solver ‘liblinear’ is used and self.fit_intercept is set to True. In this case, x becomes [x, self.intercept_scaling], i.e. a “synthetic” feature with constant value equal to intercept_scaling is appended to the instance vector. The intercept becomes intercept_scaling * synthetic_feature_weight .
Note! the synthetic feature weight is subject to l1/l2 regularization as all other features. To lessen the effect of regularization on synthetic feature weight (and therefore on the intercept) intercept_scaling has to be increased.
class_weight dict or ‘balanced’, default=None
Weights associated with classes in the form . If not given, all classes are supposed to have weight one.
The “balanced” mode uses the values of y to automatically adjust weights inversely proportional to class frequencies in the input data as n_samples / (n_classes * np.bincount(y)) .
Note that these weights will be multiplied with sample_weight (passed through the fit method) if sample_weight is specified.
Added in version 0.17: class_weight=’balanced’
random_state int, RandomState instance, default=NoneUsed when solver == ‘sag’, ‘saga’ or ‘liblinear’ to shuffle the data. See Glossary for details.
Algorithm to use in the optimization problem. Default is ‘lbfgs’. To choose a solver, you might want to consider the following aspects:
The choice of the algorithm depends on the penalty chosen and on (multinomial) multiclass support: