GitHub user coderxiang opened a pull request:

    https://github.com/apache/spark/pull/458

    [SPARK-1543][MLlib] Add ADMM for solving Lasso (and elastic net) problem

    This PR introduces the Alternating Direction Method of Multipliers (ADMM) 
for solving Lasso (elastic net, in fact) in mllib. 
    
    ADMM is capable of solving a class of composite minimization problems in a 
distributed way. Specifically for Lasso (if only L1-regularization) or 
elastic-net (both L1- and L2- regularization), it requires solving independent 
systems of linear equations on each partition and a soft-threholding operation 
on the driver. Unlike SGD, it is a deterministic algorithm (except for the 
random partition). Details can be found in the [S. Boyd's 
paper](http://www.stanford.edu/~boyd/papers/admm_distr_stats.html).
    
    The linear algebra operations mainly rely on the Breeze library, 
particularly, it applies `breeze.linalg.cholesky` to perform cholesky 
decomposition on each partition to solve the linear system.
    
    I tried to follow the organization of existing Lasso implementation. 
However, as ADMM is also a good fit for similar optimization problems, e.g., 
(sparse) logistic regression, it may worth to re-organize and put ADMM into a 
separate section.
    


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/coderxiang/spark admmlasso

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/spark/pull/458.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #458
    
----
commit 6c06c710dd098a3280fe5a9a5d5f490f6dcd3b9c
Author: lebesgue <[email protected]>
Date:   2014-04-20T21:37:28Z

    add admm for lasso

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to