A fast algorithm with dual extrapolation for sparse problems
Project description
celer
celer
is a Python package that solves Lasso-like problems and provides estimators that follow the scikit-learn
API. Thanks to a tailored implementation, celer
provides a fast solver that tackles large-scale datasets with millions of features up to 100 times faster than scikit-learn
.
Currently, the package handles the following problems:
Problem | Support Weights | Native cross-validation |
---|---|---|
Lasso | ✓ | ✓ |
ElasticNet | ✓ | ✓ |
Group Lasso | ✓ | ✓ |
Multitask Lasso | ✕ | ✓ |
Sparse Logistic regression | ✕ | ✕ |
Why celer
?
celer
is specially designed to handle Lasso-like problems which makes it a fast solver of such problems.
In particular it comes with tools such as:
- automated parallel cross-validation
- support of sparse and dense data
- optional feature centering and normalization
- unpenalized intercept fitting
celer
also provides easy-to-use estimators as it is designed under the scikit-learn
API.
Get started
To get stared, install celer
via pip
pip install -U celer
On your python console, run the following commands to fit a Lasso estimator on a toy dataset.
>>> from celer import Lasso
>>> from celer.datasets import make_correlated_data
>>> X, y, _ = make_correlated_data(n_samples=100, n_features=1000)
>>> estimator = Lasso()
>>> estimator.fit(X, y)
This is just a starter examples.
Make sure to browse celer
documentation to learn more about its features.
To get familiar with celer
API, you can also explore the gallery of examples
which includes examples on real-life datasets as well as timing comparison with other solvers.
Contribute to celer
celer
is an open source project and hence rely on community efforts to evolve.
Your contribution is highly valuable and can come in three forms
- bug report: you may encounter a bug while using
celer
. Don't hesitate to report it on the issue section. - feature request: you may want to extend/add new features to
celer
. You can use the issue section to make suggestions. - pull request: you may have fixed a bug, enhanced the documentation, ... you can submit a pull request and we will reach out to you asap.
For the last mean of contribution, here are the steps to help you setup celer
on your local machine:
- Fork the repository and afterwards run the following command to clone it on your local machine
git clone https://github.com/{YOUR_GITHUB_USERNAME}/celer.git
cd
toceler
directory and install it in edit mode by running
cd celer
pip install -e .
- To run the gallery examples and build the documentation, run the followings
cd doc
pip install -e .[doc]
make html
Cite
celer
is licensed under the BSD 3-Clause. Hence, you are free to use it.
If you do so, please cite:
@InProceedings{pmlr-v80-massias18a,
title = {Celer: a Fast Solver for the Lasso with Dual Extrapolation},
author = {Massias, Mathurin and Gramfort, Alexandre and Salmon, Joseph},
booktitle = {Proceedings of the 35th International Conference on Machine Learning},
pages = {3321--3330},
year = {2018},
volume = {80},
}
@article{massias2020dual,
author = {Mathurin Massias and Samuel Vaiter and Alexandre Gramfort and Joseph Salmon},
title = {Dual Extrapolation for Sparse GLMs},
journal = {Journal of Machine Learning Research},
year = {2020},
volume = {21},
number = {234},
pages = {1-33},
url = {http://jmlr.org/papers/v21/19-587.html}
}
Further links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for celer-0.7.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7c786e808b8040387f63816e2d035b963c44042a9074d0ec74a928a50f3fdd8 |
|
MD5 | c6fe65bbeb2bfd87a8f0f4db1a0b25f6 |
|
BLAKE2b-256 | 602b71c62b7dd01251c035ae5bd8f5a8b1e47f0aa0d60b4d290053b97ed9928f |
Hashes for celer-0.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59153d118e1c775d3952e76d38ee1ae8b881619189865ca4530963ff29bc5ed8 |
|
MD5 | 8b7941cc1485ffeae695155437009817 |
|
BLAKE2b-256 | a4c8aad0ee117e953554973d16066805885e17fae47bde9b4a51969e38fc5b1d |
Hashes for celer-0.7.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 196146babb6e335cb8b7fd0c1f6f70ad3721fb9edbacb1c57763eff0ae9beff9 |
|
MD5 | dc32e0c61f3d4cd1d34b82eb65b38803 |
|
BLAKE2b-256 | 4d8b385d117d4221a3ac6fa3c0ce0d3425f4d7f24538b1f3ab9e4016df246c1f |
Hashes for celer-0.7.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29eb1ea1dbfeaf2ce02cb06fe48f9dd2ba6fc0531f7c16f4203a85f975865ca6 |
|
MD5 | 7c6ef6a09b3675c47620525b4a2abd25 |
|
BLAKE2b-256 | 75d3bedbf293c60882dc94b076684d3b8794a231f2408f54cd2ef8c180717e08 |
Hashes for celer-0.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d280d8687b2573b02003ec0b9b6a2fc02735115b2dfe263362cf7a5e0dc7be2 |
|
MD5 | 0ebbf7cc386d045368ba01692d27bcd8 |
|
BLAKE2b-256 | 13339cb32e6c0b37a3d3459b1e9bd4c6c0b1ffeb1485c06b3e54a0845603cdcd |
Hashes for celer-0.7.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0996bcae9ea06a78f35a0260efff689923a80d2129347b26288b75ee24f590c0 |
|
MD5 | 5fc7752ff1cafcdb5f8040f79e61be06 |
|
BLAKE2b-256 | 66ec3c600d1d5494171521d5f25233eaca4a346b106d125c4eb825228ce1ceb7 |
Hashes for celer-0.7.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7699453853852ab4369cda7b6fee1632ea063d1f3fb42600fa6d89931ccccb84 |
|
MD5 | b95d5fad67b8ae4f0242e9918d343c22 |
|
BLAKE2b-256 | 2fc54bb254906b61074fb1f40af29bd5b9a68e0e4dbedcf10e6dcff7604803ea |
Hashes for celer-0.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dfa7736ae6a0121989001309964a2b25aa4a1390ebb604f2580a3a0a15b300d |
|
MD5 | f4a752c0d405a7c0789c9890b9e54174 |
|
BLAKE2b-256 | cef445b5747d07d74879199dbb4853f26f843008864c8a0cc1e9aa375af63920 |
Hashes for celer-0.7.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62d5c8c6e06dcba4be3382197ae73dff852d50b1318aeb8a3e63ecae71a91e59 |
|
MD5 | 0cb3edc2223c78bbf366fed50ec60ed7 |
|
BLAKE2b-256 | 5060fb7de64a2d3543d7c3e05f98b39187dfd98a9bf0d7f8519ff15e8301e08f |