# SuiteLasso

## SuiteLasso: a MATLAB suite for regression problems with generalized Lasso regularizers

### Xudong Li, Defeng Sun, Kim-Chuan Toh

The software was first released on January 2019. It was last updated in January 2019. The software is designed to solve linear least squares problems with various generalized lasso regularizers. Currently, it can handle the following regularizers:

1. Classic Lasso
$$\min\Big\{ h(Ax) + \lambda\|x\|_1 \mid x\in \mathbb{R}^n \Big\}$$
Solver: ClassicLasso_SSNAL.m
2. Fused Lasso
$$\min\Big\{ h(Ax) + \lambda\|x\|_1 + \beta\sum_{k=1}^n|x_{k+1}-x_k| \mid x\in \mathbb{R}^n\Big\}$$
where $$\lambda$$ and $$\beta$$ are regularization parameters and $$h(x) = \frac{1}{2}\|x\|^2$$.
Solver: FusedLasso_SSNAL.m
3. Elastic net
$$\min\Big\{ h(Ax) + \lambda \|x\|_1 + \frac{\beta}{2}\|x\|^2 \mid \mathbb{R}^n \Big\}$$
where $$\lambda$$ and $$\beta$$ are regularization parameters.
Solver: Under construction.
4. Group Lasso (non-overlapping):
$$\min\Big\{ h(Ax) + \lambda_1 \|x\|_1 + \lambda_2\sum_{\ell=1}^gw_\ell \|x_{G_\ell}\| \mid x\in \mathbb{R}^n\Big\}$$
where $$\lambda_1$$ and $$\lambda_2$$ are regularization parameters and $$h(x) = \frac{1}{2}\|x\|^2$$;
$$G_\ell$$, $$\ell=1,\ldots,g$$ form a disjoint partition of $$\{1,\ldots,n\}$$.
Solver: Under construction.

Important note: this is a research software. It is not intended nor designed to be a general purpose software at the moment.

##### Citation:
1. Xudong Li, Defeng Sun, and Kim-Chuan Toh, A highly efficient semismooth Netwon augmented Lagrangian method for solving Lasso problems, _SIAM Journal on Optimization, 28 (2018), 433–458.
2. Xudong Li, Defeng Sun, and Kim-Chuan Toh, On efficiently solving the subproblems of a level-set method for fused lasso problems,  SIAM J. Optimization, 28 (2018), 1842–1866.
3. Y.J. Zhang, N. Zhang, D.F. Sun and K.C. Toh, Mathematical Programming, 179 (2020), pp. 223–263.

• Firstly, unpack the software.
• Run Matlab in the directory SuiteLasso-0.
• After that, to see whether you have installed SuiteLasso-0 correctly, type:
 >> startup >> test_ClassicLasso_random
• By now, SuiteLasso is ready for you to use.