Data & Code

Note: this site is still under construction. In the near future we will provide the Matlab scripts that generate the figures and tables in the Robust Subspace Clustering paper along with the source data required to run them. For now we have provided the code for the various solvers used in the paper.

Code

General guidelines: The LASSO based solvers provided here use TFOCS. After downloading and saving the TFOCS path, please replace TFOCS's prox_l1.m with prox_l1.m. The Dantzig based solvers use L1 Homotopy methods tool box. The comparison files use CVX. Please make sure to have these toolboxes installed/added to your Matlab path.

Complete Package

You can download all of the M-files provided on this webpage as a single zip file: RSC.zip.

Matlab solvers

LASSO based solvers

  1. RSC:
    Uses LASSO to simultaneously regress each column against all others with a single choice of lambda for all data points.

    1. solver: solver_RSC.m.

    2. comparison with CVX: run_RSC.m.

  2. partial RSC:
    Uses LASSO to regress each column against all others with a single choice of lambda for all data points. This process is carried out simultaneously over a partial subset of the data points.

    1. solver: solver_RSC_partial.m.

    2. comparison with CVX: run_RSC_partial.m.

  3. multi-RSC:
    Uses LASSO to simultaneously regress each column against all others with a different choice of lambda for each of the data points.

    1. solver: solver_multi_RSC.m.

    2. comparison with CVX: run_multi_RSC.m.

  4. partial multi-RSC:
    Uses LASSO to regress each column against all others with a different choice of lambda for each of the data points. This process is carried out simultaneously over a partial subset of the data points.

    1. solver: solver_multi_RSC_partial.m.

    2. comparison with CVX: run_multi_RSC_partial.m.

  5. constrained RSC:
    Uses the constrained version of LASSO to simultaneously regress each column against all others with a single choice of tau for each of the data points.

    1. solver: solver_constr_RSC.m.

    2. comparison with CVX: run_constr_RSC.m.

  6. partial constrained RSC:
    Uses the constrained version of LASSO to regress each column against all others with a single choice of tau for each of the data points. This process is carried out simultaneously over a partial subset of the data points.

    1. solver: solver_constr_RSC_partial.m.

    2. comparison with CVX: run_constr_RSC_partial.m.

Dantzig based solvers

  1. Bias-corrected Dantzig:
    Solves the bias-corrected Dantzig formulation for each data point.

    1. solver: solver_BCDantzig.m

    2. comparison with CVX: run_BCDantzig.m

  2. Bias-corrected Dantzig with multiple parameters:
    Solves the bias-corrected Dantzig formulation for each data point using multiple values of the parameter lambda.

    1. solver: solver_BCDantzig_all.m

    2. comparison with CVX: run_BCDantzig_all.m

Matlab functions

op functions

These functions build the linear operators needed to simultaneously run all the regression problems in parallel for each of the solvers.

prox functions

spectral clustering functions

Matlab scripts

  • coming soon!

Data

  • coming soon!