Skip to main content

Scikit-learn compatible implementation of nonconvex sparse estimators for single- and multi-task linear regressions (e.g. SCAD, MCP, l1-group-SCAD, etc).

Project description

ncvx-sparse

ncvx-sparse is a Python library for learning high-dimensional linear regresion models (single- and -multi-task) with nonconvex sparsity (e.g. SCAD, MCP, l1-group SCAD). Solvers are written in Cython and implementation follows the Scikit-learn API.

Why imposing sparsity with nonconvex penalties (e.g. LASSO) ? Because…

Currently, the ncvx-sparse solves the following problems:

  1. Single-task linear regression,

\arg \min_{\beta \in \mathbb{R}^p} \frac{1}{2n} \sum_i (y_i - x_i^{\top} \beta)^2 + \lambda \rho P(\beta) + \frac{1-\rho}{2} ||\beta||_2^2

where P stands for:

  • SCAD (SCADnet estimator), with parameter $gamma > 2$.

  1. Multi-task linear regression,

\arg \min_{\beta = (\beta_1 \dots \beta_k) \in \mathbb{R}^{K \times p}} \frac{1}{2} \sum_j^K \sum_i^n (y_{ik} - x_{ik}^{\top} \beta_j)^2

where P stands for:

  • SCAD-l1 i.e. SCAD on the l1-norm of p-th feature vector accross the K tasks,

  • SCAD-l2, same as SCAD-l1 but with respect to the l2-norm (not squared).

Install the released version

Create a Python=3.6 environment (e.g. Anaconda), and install ncvx-sparse from pip. with the following command line in your Anaconda prompt:

pip install -U ncvx-sparse

Example

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ncvx-sparse-0.0.1.dev3.tar.gz (195.4 kB view hashes)

Uploaded Source

Built Distribution

ncvx_sparse-0.0.1.dev3-cp39-cp39-win_amd64.whl (113.0 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page