Last data update: 2014.03.03

R: Kernel Local Fisher Discriminant Analysis for Supervised...
klfdaR Documentation

Kernel Local Fisher Discriminant Analysis for Supervised Dimensionality Reduction

Description

Performs kernel local fisher discriminant analysis on the given data, which is the non-linear version of LFDA (see details lfda).

Usage

klfda(k, y, r, metric = c("weighted", "orthonormalized", "plain"), knn = 6,
  reg = 0.001)

Arguments

k

n x n kernel matrix. Result of the kmatrixGauss function. n is the number of samples

y

n dimensional vector of class labels

r

dimensionality of reduced space (default: d)

metric

type of metric in the embedding space (default: 'weighted') 'weighted' — weighted eigenvectors 'orthonormalized' — orthonormalized 'plain' — raw eigenvectors

knn

parameter used in local scaling method (default: 6)

reg

regularization parameter (default: 0.001)

Value

list of the LFDA results:

T

d x r transformation matrix (Z = t(T) * X)

Z

r x n matrix of dimensionality reduced samples

Author(s)

Yuan Tang

References

Sugiyama, M (2007). - contain implementation Dimensionality reduction of multimodal labeled data by local Fisher discriminant analysis. Journal of Machine Learning Research, vol.8, 1027–1061.

Sugiyama, M (2006). Local Fisher discriminant analysis for supervised dimensionality reduction. In W. W. Cohen and A. Moore (Eds.), Proceedings of 23rd International Conference on Machine Learning (ICML2006), 905–912.

Original Matlab Implementation: http://www.ms.k.u-tokyo.ac.jp/software.html#LFDA

See Also

See lfda for the linear version.

Examples

## Not run: 
## example without dimension reduction
k <- kmatrixGauss(x = trainData[,-1])
y <- trainData[,1]
r <- 26 # dimensionality of reduced space. Here no dimension reduction is performed
result <- klfda(k,y,r,metric="plain")
transformedMat <- result$Z # transformed training data
metric.train <- as.data.frame(cbind(trainData[,1],transformedMat))
colnames(metric.train)=colnames(trainData)

## example with dimension reduction
k <- kmatrixGauss(x = trainData[,-1])
y <- trainData[,1]
r <- 3 # dimensionality of reduced space
result <- klfda(k,y,r,metric="plain")
transformMat  <- result$T # transforming matrix - distance metric

# transformed training data with Style
transformedMat <- result$Z # transformed training data
metric.train <- as.data.frame(cbind(trainData[,1],transformedMat))
colnames(metric.train)[1] <- "Style"

# transformed testing data with Style (unfinished)
metric.test <- kmatrixGauss(x = testData[,-1])
metric.test <- as.matrix(testData[,-1]) %*% transformMat
metric.test <- as.data.frame(cbind(testData[,1],metric.test))
colnames(metric.test)[1] <- "Style"


## End(Not run)

Results