Least absolute shrinkage and selection operator¶
The least absolute shrinkage and selection operator (lasso) solves the problem
\[\min_z \frac{1}{2} \| A z - b \|_2^2 + \lambda \| z \|_1,\]
where the \(\ell_1\) penalty coefficient, \(\lambda\), provides a tradeoff between sparsity and fidelity.
The following routines make use of Alternating Direction Method of Multipliers techniques for finding approximate solutions and are inspired by a simple MATLAB script due to Boyd et al.
C++ API¶
-
Int
Lasso
(const Matrix<F> &A, const Matrix<F> &b, Base<F> lambda, Matrix<F> &z, Base<F> rho = 1, Base<F> alpha = 1.2, Int maxIter = 500, Base<F> absTol = 1e-6, Base<F> relTol = 1e-4, bool inv = true, bool progress = true)¶
-
Int
Lasso
(const AbstractDistMatrix<F> &A, const AbstractDistMatrix<F> &b, Base<F> lambda, AbstractDistMatrix<F> &z, Base<F> rho = 1, Base<F> alpha = 1.2, Int maxIter = 500, Base<F> absTol = 1e-6, Base<F> relTol = 1e-4, bool inv = true, bool progress = true)¶
TODO: Discussion of parameters
C API¶
-
ElError
ElLasso_d
(ElConstMatrix_d A, ElConstMatrix_d b, double lambda, ElMatrix_d z, ElInt* numIts)¶
-
ElError
ElLasso_z
(ElConstMatrix_z A, ElConstMatrix_z b, double lambda, ElMatrix_z z, ElInt* numIts)¶
-
ElError
ElLassoDist_s
(ElConstDistMatrix_s A, ElConstDistMatrix_s b, float lambda, ElDistMatrix_s z, ElInt* numIts)¶
-
ElError
ElLassoDist_d
(ElConstDistMatrix_d A, ElConstDistMatrix_d b, double lambda, ElDistMatrix_d z, ElInt* numIts)¶