[mlpack-svn] [MLPACK] #166: PCA fails comparison with MATLAB

MLPACK Trac trac at coffeetalk-1.cc.gatech.edu
Mon Nov 28 01:07:40 EST 2011

#166: PCA fails comparison with MATLAB
 Reporter:  rcurtin   |        Owner:  ajinkya                                      
     Type:  defect    |       Status:  new                                          
 Priority:  critical  |    Milestone:  MLPACK 1.0                                   
Component:  MLPACK    |     Keywords:  pca incorrect dimensionality reduction matlab
 Blocking:  126       |   Blocked By:                                               
 So, I hate to file a second bug against this in one day, but I wanted to
 be sure that PCA worked for dimensionality reduction and it does not
 appear that it does.

 I coded up a test case in pca_test.cpp [10433] but it does not work.  I
 took a very simple 3-dimensional dataset and used MATLAB to project the
 dimensions down to 2 using the following command:

 >>> [a, b, c] = princomp(X) % X is our fake dataset

 and in that case, `a` is the PC coefficients, `b` is the transformed data
 (what I am comparing against), and `c` is the eigenvalues of the
 covariance.  `c` appears to be correct (although I am not explicitly
 checking that in the test case I wrote).

 I suspect that this may have to do with an incorrect transformation.  When
 transforming the input data to the principal component space, the mean
 must not be present in the data.

 Also, is it possible to reduce code duplication in Apply()?  I see a lot
 of the same...

Ticket URL: <http://trac.research.cc.gatech.edu/fastlab/ticket/166>
MLPACK <www.fast-lab.org>
MLPACK is an intuitive, fast, and scalable C++ machine learning library developed by the FASTLAB at Georgia Tech under Dr. Alex Gray.

More information about the mlpack-svn mailing list