All Projects → hazimehh → L0Learn

hazimehh / L0Learn

Licence: other
Efficient Algorithms for L0 Regularized Learning

Programming Languages

C++
36643 projects - #6 most used programming language
r
7636 projects
M4
1887 projects

Projects that are alternatives of or similar to L0Learn

SparseRegression.jl
Statistical Models with Regularization in Pure Julia
Stars: ✭ 37 (-50%)
Mutual labels:  regularization, sparse-regression
pyunfold
Iterative unfolding for Python
Stars: ✭ 23 (-68.92%)
Mutual labels:  regularization
fsfc
Feature Selection for Clustering
Stars: ✭ 80 (+8.11%)
Mutual labels:  feature-selection
bess
Best Subset Selection algorithm for Regression, Classification, Count, Survival analysis
Stars: ✭ 14 (-81.08%)
Mutual labels:  feature-selection
spm-image
Sparse modeling and Compressive sensing in Python
Stars: ✭ 93 (+25.68%)
Mutual labels:  sparse-modeling
Statistical-Learning-using-R
This is a Statistical Learning application which will consist of various Machine Learning algorithms and their implementation in R done by me and their in depth interpretation.Documents and reports related to the below mentioned techniques can be found on my Rpubs profile.
Stars: ✭ 27 (-63.51%)
Mutual labels:  regularization
SSE-PT
Codes and Datasets for paper RecSys'20 "SSE-PT: Sequential Recommendation Via Personalized Transformer" and NurIPS'19 "Stochastic Shared Embeddings: Data-driven Regularization of Embedding Layers"
Stars: ✭ 103 (+39.19%)
Mutual labels:  regularization
GraphOfDocs
GraphOfDocs: Representing multiple documents as a single graph
Stars: ✭ 13 (-82.43%)
Mutual labels:  feature-selection
pyowl
Ordered Weighted L1 regularization for classification and regression in Python
Stars: ✭ 52 (-29.73%)
Mutual labels:  regularization
Reinforcement-Learning-Feature-Selection
Feature selection for maximizing expected cumulative reward
Stars: ✭ 27 (-63.51%)
Mutual labels:  feature-selection
variational-bayes-cs
Scalable sparse Bayesian learning for large CS recovery problems
Stars: ✭ 17 (-77.03%)
Mutual labels:  compressed-sensing
PenaltyFunctions.jl
Julia package of regularization functions for machine learning
Stars: ✭ 25 (-66.22%)
Mutual labels:  regularization
Magni
A package for AFM image reconstruction and compressed sensing in general
Stars: ✭ 37 (-50%)
Mutual labels:  compressed-sensing
CS MoCo LAB
Compressed Sensing and Motion Correction LAB: An MR acquisition and reconstruction system
Stars: ✭ 91 (+22.97%)
Mutual labels:  compressed-sensing
skrobot
skrobot is a Python module for designing, running and tracking Machine Learning experiments / tasks. It is built on top of scikit-learn framework.
Stars: ✭ 22 (-70.27%)
Mutual labels:  feature-selection
hyperstar
Hyperstar: Negative Sampling Improves Hypernymy Extraction Based on Projection Learning.
Stars: ✭ 24 (-67.57%)
Mutual labels:  regularization
FIFA-2019-Analysis
This is a project based on the FIFA World Cup 2019 and Analyzes the Performance and Efficiency of Teams, Players, Countries and other related things using Data Analysis and Data Visualizations
Stars: ✭ 28 (-62.16%)
Mutual labels:  feature-selection
Ball
Statistical Inference and Sure Independence Screening via Ball Statistics
Stars: ✭ 22 (-70.27%)
Mutual labels:  feature-selection
sparsereg
a collection of modern sparse (regularized) linear regression algorithms.
Stars: ✭ 55 (-25.68%)
Mutual labels:  sparse-regression
sparsebn
Software for learning sparse Bayesian networks
Stars: ✭ 41 (-44.59%)
Mutual labels:  regularization

L0Learn: Fast Best Subset Selection

CRAN Codacy Badge codecov

Hussein Hazimeh, Rahul Mazumder, and Tim Nonet

Massachusetts Institute of Technology

Downloads from Rstudio:

Introduction

L0Learn is a highly efficient framework for solving L0-regularized learning problems. It can (approximately) solve the following three problems, where the empirical loss is penalized by combinations of the L0, L1, and L2 norms:

We support both regression (using squared error loss) and classification (using logistic or squared hinge loss). Optimization is done using coordinate descent and local combinatorial search over a grid of regularization parameter(s) values. Several computational tricks and heuristics are used to speed up the algorithms and improve the solution quality. These heuristics include warm starts, active set convergence, correlation screening, greedy cycling order, and efficient methods for updating the residuals through exploiting sparsity and problem dimensions. Moreover, we employed a new computationally efficient method for dynamically selecting the regularization parameter λ in the path. We describe the details of the algorithms in our paper: Fast Best Subset Selection: Coordinate Descent and Local Combinatorial Optimization Algorithms (link).

The toolkit is implemented in C++11 and can often run faster than popular sparse learning toolkits (see our experiments in the paper above). We also provide an easy-to-use R interface; see the section below for installation and usage of the R package.

NEW: Version 2 (03/2021) adds support for sparse matrices and box constraints on the coefficients.

R Package Installation

The latest version (v2.0.3) can be installed from CRAN as follows:

install.packages("L0Learn", repos = "http://cran.rstudio.com")

Alternatively, L0Learn can also be installed from Github as follows:

library(devtools)
install_github("hazimehh/L0Learn")

L0Learn's changelog can be accessed from here.

Usage

For a tutorial, please refer to L0Learn's Vignette. For a detailed description of the API, check the Reference Manual.

FAQ

Which penalty to use?

Pure L0 regularization can overfit when the signal strength in the data is relatively low. Adding L2 regularization can alleviate this problem and lead to competitive models (see the experiments in our paper). Thus, in practice, we strongly recommend using the L0L2 penalty. Ideally, the parameter gamma (for L2 regularization) should be tuned over a sufficiently large interval, and this can be performed using L0Learn's built-in cross-validation method.

Which algorithm to use?

By default, L0Learn uses a coordinate descent-based algorithm, which achieves competitive run times compared to popular sparse learning toolkits. This can work well for many applications. We also offer a local search algorithm which is guarantteed to return higher quality solutions, at the expense of an increase in the run time. We recommend using the local search algorithm if the problem has highly correlated features or the number of samples is much smaller than the number of features---see the local search section of the Vignette for how to use this algorithm.

How to certify optimality?

While for many challenging statistical instances L0Learn leads to optimal solutions, it cannot provide certificates of optimality. Such certificates can be provided via Integer Programming. Our toolkit L0BnB is a scalable integer programming framework for L0-regularized regression, which can provide such certificates and potentially improve upon the solutions of L0Learn (if they are sub-optimal). We recommend using L0Learn first to obtain a candidtate solution (or a pool of solutions) and then checking optimality using L0BnB.

Citing L0Learn

If you find L0Learn useful in your research, please consider citing the following papers.

Paper 1 (Regression):

@article{doi:10.1287/opre.2019.1919,
author = {Hazimeh, Hussein and Mazumder, Rahul},
title = {Fast Best Subset Selection: Coordinate Descent and Local Combinatorial Optimization Algorithms},
journal = {Operations Research},
volume = {68},
number = {5},
pages = {1517-1537},
year = {2020},
doi = {10.1287/opre.2019.1919},
URL = {https://doi.org/10.1287/opre.2019.1919},
eprint = {https://doi.org/10.1287/opre.2019.1919}
}

Paper 2 (Classification):

@article{JMLR:v22:19-1049,
  author  = {Antoine Dedieu and Hussein Hazimeh and Rahul Mazumder},
  title   = {Learning Sparse Classifiers: Continuous and Mixed Integer Optimization Perspectives},
  journal = {Journal of Machine Learning Research},
  year    = {2021},
  volume  = {22},
  number  = {135},
  pages   = {1-47},
  url     = {http://jmlr.org/papers/v22/19-1049.html}
}

Paper 3 (Toolkit):

@article{hazimeh2022l0learn,
      title={L0Learn: A Scalable Package for Sparse Learning using L0 Regularization}, 
      author={Hussein Hazimeh and Rahul Mazumder and Tim Nonet},
      year={2022},
      eprint={2202.04820},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].