pyglmnet

Elastic-net regularized generalized linear models.


Keywords
data-science, elastic-net, glm, lasso, machine-learning, python
License
MIT
Install
pip install pyglmnet==1.1

Documentation

pyglmnet

A python implementation of elastic-net regularized generalized linear models

License Travis Coverage Status Gitter

We follow the same approach and notations as in Friedman, J., Hastie, T., & Tibshirani, R. (2010) and the accompanying widely popular R package.

Installation

Clone the repository.

$ git clone http://github.com/pavanramkumar/pyglmnet

Install pyglmnet using setup.py as follows

$ python setup.py develop install

Getting Started

Here is an example on how to use GLM class.

import numpy as np
import scipy.sparse as sps
from sklearn.preprocessing import StandardScaler
from pyglmnet import GLM

# create an instance of the GLM class
glm = GLM(distr='poisson', verbose=True, alpha=0.05)

n_samples, n_features = 10000, 100

# sample random coefficients
beta0 = np.random.normal(0.0, 1.0, 1)
beta = sps.rand(n_features, 1, 0.1)
beta = np.array(beta.todense())

# simulate training data
Xr = np.random.normal(0.0, 1.0, [n_samples, n_features])
yr = glm.simulate(beta0, beta, Xr)

# simulate testing data
Xt = np.random.normal(0.0, 1.0, [n_samples, n_features])
yt = glm.simulate(beta0, beta, Xt)

# fit the model on the training data
scaler = StandardScaler().fit(Xr)
glm.fit(scaler.transform(Xr), yr)

# predict using fitted model on the test data
yhat = glm.predict(scaler.transform(Xt))

More pyglmnet examples and use cases

Tutorial

Here is an extensive tutorial on GLMs with optimization and pseudo-code.

How to contribute?

We welcome pull requests. Please see our developer documentation page for more details.

Author

Contributors

License

MIT License Copyright (c) 2016 Pavan Ramkumar