DSPCA: Sparse PCA using semidefinite programming


  • TITLE: DSPCA: Sparse PCA using semidefinite programming.

  • AUTHORS: Ronny Luss, Alexandre d'Aspremont, Laurent El Ghaoui

  • CONTENT: This package contains the numerical code used in the corresponding paper. The M-files, source code and MEX binaries for Linux, Mac OS X and Windows are available below. PathSPCA, another much simpler code for computing a full path of approximate solutions based on the results in the JMLR paper “Optimal Solutions for Sparse Principal Component Analysis.” by A. d'Aspremont, F. Bach and L. El Ghaoui is available here. This code is available in pure MATLAB and Python, is much faster, scales better and is easier to use. By default, try this one first. The results are only slighty less accurate on “natural” data and significantly worst on purely random matrices.

  • SOURCE CODE: DSPCA Source. Unless you are a MATLAB/MEX shogun, by default, please try PathSPCA first.


Release History

  • (May 2011): The MATLAB MEX interface is changing every six months, we have not yet managed to link with ARPACK in the latest versions. Hopefully things will stabilize some time soon…

  • Version 0.6: (December 2008) Freshly updated MATLABMEX binaries for Win32 and MATLAB R2008a, MATLAB has once again changed its BLASLAPACK distribution…

  • Version 0.5: (May 2008) Updated MATLAB/MEX binaries for intel Macs, Win32, and LINUX. Directly calls ARPACK, much faster but harder to compile on Win32.

  • Version 0.4: (July 2007) Updated MATLAB/MEX binaries for intel Macs.

  • Version 0.3: (July 2006) Uses partial eigenvalue decomposition (with ARPACK) and Padé approximations to compute the matrix exponential. Partial eigenvalue decomposition is significantly faster (2x to 10x) on most problems. Works with MATLAB 7.3. The code is compatible with previous versions of MATLAB but might need to be recompiled because of changes in the way MATLAB handles MEX files.

  • Version 0.2: (Nov. 2005) Works with Sedumi 1.1 and MATLAB 7.1, unified sources for win32 and Mac.

  • Version 0.1: (Jan. 2005) First version out.