Shooting Algorithms for the Lasso and Group Lasso
Shooting algorithm implemented in Matlab for solving the Lasso [1] and group Lasso [2] problems in the penalized form.
I/O:
Input: a design matrix X, a response vector Y, grouping index G (only
required by group Lasso), penalty parameter lambda.
Output: the estimated coefficient vector.
Example:
Lasso and group Lasso for the diabetes data set used in [1].
lambda = 100;
b = lassoShooting(X, Y, lambda);
% Grouping index:
% G1: age & sex; G2: BMI & BP; G3: S1-S6;
G = [1 1 2 2 3 3 3 3 3 3];
b_grp = grplassoShooting(X, Y, G, lambda);
% We can solve the Lasso and group Lasso on a set of penalty parameters (example
below lambda=0:2:730) with the shooting algorithms.
Remark:
in general, the group Lasso path is
NOT piecewise linear.
Download .m files:
lassoShooting.m
grplassoShooting.m
References:
[1] Fu (1998) Penalized regression: the bridge versus the lasso. J. Comput.
Graph. Stats.
[2] Yuan and Lin (2005) Model selection and estimation in regression with
grouped variables. JRSSB.
[3] Efron Brad, et al. (2004) Least angle regression. Annals of Statistics,
32(2):407-499.