A primal-dual framework for distributed L1-regularized optimization
Scala Shell
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
conf initial commit Dec 11, 2015
data
project initial commit Dec 11, 2015
sbt sbt update Dec 11, 2015
src/main/scala elastic net Apr 18, 2016
.gitignore initial commit Dec 11, 2015
LICENSE initial commit Dec 11, 2015
README.md
build.sbt variable naming closer to paper (don't use w for alpha), spark 1.5.2,… Dec 15, 2015
cluster-helper.sh initial commit Dec 11, 2015
local-helper.sh initial commit Dec 11, 2015
run-demo-local.sh

README.md

ProxCoCoA+

A primal-dual framework for distributed L1-regularized optimization, running on Apache Spark.

This code trains a standard least squares sparse regression with L1 or elastic net regularizer. The proxCoCoA+ framework runs on the primal optimization problem (called D in the paper). To solve the data-local subproblems on each machine, an arbitrary solver can be used. In this example we use randomized coordinate descent as the local solver, as the L1-regularized single coordinate problems have simple closed-form solutions.

The code can be easily adapted to include other internal solvers or to solve other data-fit objectives or regularizers.

Getting Started

How to run the code locally:

sbt/sbt assembly
./run-demo-local.sh

(For the sbt script to run, make sure you have downloaded CoCoA into a directory whose path contains no spaces.)

References

The algorithmic framework is described in more detail in the following paper:

Smith, V., Forte, S., Jordan, M.I., Jaggi, M. L1-Regularized Distributed Optimization: A Communication-Efficient Primal-Dual Framework