Code covered by the BSD License  

Highlights from
Direct LDA and PCA+LDA

1.0 | 1 rating Rate this file 109 Downloads (last 30 days) File Size: 6.78 KB File ID: #41379

Direct LDA and PCA+LDA



18 Apr 2013 (Updated )

Implementation of LDA, Direct LDA and PCA+LDA. See description for details.

| Watch this File

File Information

This implements the algorithm described in
Hua Yu and Jie Yang "A direct LDA algorithm for high-dimensional data -
with application to face recognition"
Read it. It's short.

Basically what we have here is LDA (linear discriminant analysis), Direct LDA, which does LDA but better (basically when your within class scatter matrix, Sw, is singular, it does not throw away the null space of Sw, which contains most of the discriminating information), and PCA+LDA, which does PCA on the data and then does LDA on the dimensionally reduced data.

There is also an implementation of PCA (principal component analysis) using eigendecomposition and another using SVD in here.


X : nt x n where nt examples of feature vectors of size n
y : vector of size nt of class labels
 X = [2 3 4 2; 8 2 3 4; 3 9 2 3; 8 4 2 3; 9 9 2 8];
 y = [3; 2; 4; 3; 2];
k : the number of features we want at the end

method : either pcalda or directlda
if method = directlda then we are maximizing |A'*Sb*A|/|A'*Sw*A| except
  that the null space of Sw, which apparently has the most discriminating
  information, is not thrown away
if method = pcalda then we are maximizing |A'*St*A|/|A'*Sw*A|

m :
 if method = directlda then m = the no. dims. we want from the Sb scatter matrix
 if method = pcalda then m = the no. of dims. we want from the pca part
 if method = pcalda and m = inf, then this is just regular lda


A : the projection A which maximizes between class / within class scatter
T : transformation that spheres the data, for classification/comparison

In the demo, I compared this to for checking correctness.


Fischer Linear Dicriminant Analysis inspired this file.

MATLAB release MATLAB 7.13 (R2011b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (3)
19 Dec 2014 J

J (view profile)


In normal LDA we find the transformation matrix W_LDA.

How can I use your code to find W?


Comment only
26 Jan 2014 Gyver

Gyver (view profile)

06 Nov 2013 hidangmayum saxena

thnk u

Comment only
19 Apr 2013

Minor update to fix output argument order.

Contact us