Learn R Programming

lfda (version 1.1.1)

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

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

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
## 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)

Run the code above in your browser using DataLab