Skip to content
A python port of the glmnet package for fitting generalized linear models via penalized maximum likelihood.
Branch: master
Clone or download
stephen-hoover DOC Mark Fortran code as linguist-vendored (#57)
GitHub's linguist library sees the glmnet Fortran code and marks this repository as a Fortran project. It would be better to have it display as Python. Tell `linguist` that the Fortran code is vendored so that it will be ignored in summary statistics.

Latest commit f2dac4f Mar 22, 2019



This is a Python wrapper for the fortran library used in the R package glmnet. While the library includes linear, logistic, Cox, Poisson, and multiple-response Gaussian, only linear and logistic are implemented in this package.

The API follows the conventions of Scikit-Learn, so it is expected to work with tools from that ecosystem.



python-glmnet requires Python version >= 3.4, scikit-learn, numpy, and scipy. Installation from source or via pip requires a Fortran compiler.


conda install -c conda-forge glmnet


pip install glmnet


glmnet depends on numpy, scikit-learn and scipy. A working Fortran compiler is also required to build the package, for Mac users, brew install gcc will take care of this requirement.

git clone
cd python-glmnet
python install



By default, LogitNet and ElasticNet fit a series of models using the lasso penalty (α = 1) and up to 100 values for λ (determined by the algorithm). In addition, after computing the path of λ values, performance metrics for each value of λ are computed using 3-fold cross validation. The value of λ corresponding to the best performing model is saved as the lambda_max_ attribute and the largest value of λ such that the model performance is within cut_point * standard_error of the best scoring model is saved as the lambda_best_ attribute.

The predict and predict_proba methods accept an optional parameter lamb which is used to select which model(s) will be used to make predictions. If lamb is omitted, lambda_best_ is used.

Both models will accept dense or sparse arrays.

Regularized Logistic Regression

from glmnet import LogitNet

m = LogitNet()
m =, y)

Prediction is similar to Scikit-Learn:

# predict labels
p = m.predict(x)
# or probability estimates
p = m.predict_proba(x)

Regularized Linear Regression

from glmnet import ElasticNet

m = ElasticNet()
m =, y)


p = m.predict(x)
You can’t perform that action at this time.