Learn R Programming

lfda (version 1.0.0)

klfda: 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

Value

list of the LFDA results:Td x r transformation matrix (Z = t(T) * X)Zr x n matrix of dimensionality reduced samples

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

Run this code
## 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"

Run the code above in your browser using DataLab