Skip to content

CederGroupHub/sparse-lm

Repository files navigation

Sparse Linear Regression Models

test Codacy Badge pre-commit.ci status pypi version Static Badge DOI

sparse-lm includes several (structured) sparse linear regression estimators that are absent in the sklearn.linear_model module. The estimators in sparse-lm are designed to fit right into scikit-learn, but the underlying optimization problem is expressed and solved by leveraging cvxpy.


Available regression models

  • Lasso, Group Lasso, Overlap Group Lasso, Sparse Group Lasso & Ridged Group Lasso.
  • Adaptive versions of Lasso, Group Lasso, Overlap Group Lasso, Sparse Group Lasso & Ridged Group Lasso.
  • Best Subset Selection, Ridged Best Subset, L0, L1L0 & L2L0 (all with optional grouping of parameters)

Installation

sparse-lm is available on PyPI, and can be installed via pip:

pip install sparse-lm

Additional information on installation can be found the documentation here.

Basic usage

If you already use scikit-learn, using sparse-lm will be very easy. Just use any model like you would any linear model in scikit-learn:

import numpy as np
from sklearn.datasets import make_regression
from sklearn.model_selection import GridSearchCV
from sparselm.model import AdaptiveLasso

X, y = make_regression(n_samples=100, n_features=80, n_informative=10, random_state=0)
alasso = AdaptiveLasso(fit_intercept=False)
param_grid = {'alpha': np.logspace(-8, 2, 10)}

cvsearch = GridSearchCV(alasso, param_grid)
cvsearch.fit(X, y)
print(cvsearch.best_params_)

For more details on use and functionality have a look at the examples and API sections of the documentation.

Contributing

We welcome any contributions that you think may improve the package! Please have a look at the contribution guidelines in the documentation.