public class LASSO extends Object implements Regression<double[]>
The Lasso typically yields a sparse solution, of which the parameter vector β has relatively few nonzero coefficients. In contrast, the solution of L2-regularized least squares (i.e. ridge regression) typically has all coefficients nonzero. Because it effectively reduces the number of variables, the Lasso is useful in some contexts.
For over-determined systems (more instances than variables, commonly in machine learning), we normalize variables with mean 0 and standard deviation 1. For under-determined systems (less instances than variables, e.g. compressed sensing), we assume white noise (i.e. no intercept in the linear model) and do not perform normalization. Note that the solution is not unique in this case.
There is no analytic formula or expression for the optimal solution to the L1-regularized least squares problems. Therefore, its solution must be computed numerically. The objective function in the L1-regularized least squares is convex but not differentiable, so solving it is more of a computational challenge than solving the L2-regularized least squares. The Lasso may be solved using quadratic programming or more general convex optimization methods, as well as by specific algorithms such as the least angle regression algorithm.
Modifier and Type | Class and Description |
---|---|
static class |
LASSO.Trainer
Trainer for LASSO regression.
|
Constructor and Description |
---|
LASSO(double[][] x,
double[] y,
double lambda)
Constructor.
|
LASSO(double[][] x,
double[] y,
double lambda,
double tol,
int maxIter)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
double[] |
coefficients()
Returns the linear coefficients.
|
double |
intercept()
Returns the intercept.
|
double |
predict(double[] x)
Predicts the dependent variable of an instance.
|
double |
shrinkage()
Returns the shrinkage parameter.
|
public LASSO(double[][] x, double[] y, double lambda)
x
- a matrix containing the explanatory variables.y
- the response values.lambda
- the shrinkage/regularization parameter.public LASSO(double[][] x, double[] y, double lambda, double tol, int maxIter)
x
- a matrix containing the explanatory variables.y
- the response values.lambda
- the shrinkage/regularization parameter.tol
- the tolerance for stopping iterations (relative target duality gap).maxIter
- the maximum number of iterations.public double[] coefficients()
public double intercept()
public double shrinkage()
public double predict(double[] x)
Regression
predict
in interface Regression<double[]>
x
- the instance.Copyright © 2015. All rights reserved.