Elastic Net Regularization via Iterative Soft Thresholding matlab code 

Content 
Elastic Net Regularization is an algorithm for learning and variable selection. It is based on a regularized least square procedure with a penalty which is the sum of an L1 penalty (like Lasso) and an L2 penalty (like ridge regression). The first term enforces the sparsity of the solution, whereas the second term ensures democracy among groups of correlated variables. The second term has also a smoothing effect that stabilizes the obtained solution. The algorithm has two parameters to be tuned. The first is a regularization parameter controlling overfitting and can be tuned via cross validation. The second is a correlation parameter preserving correlation among variables against sparsity. This parameter should be fixed according to the goal of the user. The solutions obtained for different values of the correlation parameter have the same prediction properties but different feature representation. The optimization problem underlying elastic net regularization is solved using an iterative soft thresholding technique. The iteration converges to the elastic net estimator with a prescribed rate of convergence and in practice is stopped when some user defined precision is reached. 
The code includes three matlab functions for training elastic net, test the obtained estimator and also a kfold cross validation procedure to choose the regularization parameter. A detailed matlab help is included for each function and includes examples. 
DOWNLOAD HERE 
(the code we provided in this page is meant for reasearch and teaching purpose) 
