qkIsomap {qkerntool} | R Documentation |
qKernel Isometric Feature Mapping
Description
Computes the Isomap embedding as introduced in 2000 by Tenenbaum, de Silva and Langford.
Usage
## S4 method for signature 'matrix'
qkIsomap(x, kernel = "rbfbase", qpar = list(sigma = 0.1, q = 0.9),
dims = 2, k, mod = FALSE, plotResiduals = FALSE, verbose = TRUE, na.action = na.omit, ...)
## S4 method for signature 'cndkernmatrix'
qkIsomap(x, dims = 2, k, mod = FALSE, plotResiduals = FALSE,
verbose = TRUE, na.action = na.omit, ...)
## S4 method for signature 'qkernmatrix'
qkIsomap(x, dims = 2, k, mod = FALSE, plotResiduals = FALSE,
verbose = TRUE, na.action = na.omit, ...)
Arguments
x |
N x D matrix (N samples, D features) or a kernel matrix of |
kernel |
the kernel function used in training and predicting. This parameter can be set to any function, of class kernel, which computes a kernel function value between two vector arguments. qkerntool provides the most popular kernel functions which can be used by setting the kernel parameter to the following strings:
The kernel parameter can also be set to a user defined function of class kernel by passing the function name as an argument. |
qpar |
the list of hyper-parameters (kernel parameters). This is a list which contains the parameters to be used with the kernel function. Valid parameters for existing kernels are :
Hyper-parameters for user defined kernels can be passed through the qpar parameter as well. |
dims |
vector containing the target space dimension(s) |
k |
number of neighbours |
mod |
use modified Isomap algorithm |
plotResiduals |
show a plot with the residuals between the high and the low dimensional data |
verbose |
show a summary of the embedding procedure at the end |
na.action |
A function to specify the action to be taken if |
... |
additional parameters |
Details
The qkIsomap is a nonlinear dimension reduction technique, that preserves
global properties of the data. That means, that geodesic distances
between all samples are captured best in the low dimensional
embedding.
This R version is based on the Matlab implementation by Tenenbaum and
uses Floyd's Algorithm to compute the neighbourhood graph of shortest
distances, when calculating the geodesic distances.
A modified version of the original Isomap algorithm is included. It
respects nearest and farthest neighbours.
To estimate the intrinsic dimension of the data, the function can plot
the residuals between the high and the low dimensional data for a
given range of dimensions.
Value
qkIsomap
gives out an S4 object which is a LIST with components
prj |
a N x dim matrix (N samples, dim features) with the reduced input data (list of several matrices if more than one dimension was specified). |
dims |
the dimension of the target space. |
Residuals |
the residual variances for all dimensions. |
eVal |
the corresponding eigenvalues. |
eVec |
the corresponding eigenvectors. |
cndkernf |
the kernel function used. |
kcall |
The formula of the function called |
all the slots of the object can be accessed by accessor functions.
Author(s)
Yusen Zhang
yusenzhang@126.com
References
Tenenbaum, J. B. and de Silva, V. and Langford, J. C., "A global geometric framework for nonlinear dimensionality reduction.", 2000; Matlab code is available at http://waldron.stanford.edu/~isomap/
Examples
# another example using the iris
data(iris)
testset <- sample(1:150,20)
train <- as.matrix(iris[-testset,-5])
labeltrain<- as.integer(iris[-testset,5])
test <- as.matrix(iris[testset,-5])
# ratibase(c=1,q=0.8)
d_low = qkIsomap(train, kernel = "ratibase", qpar = list(c=1,q=0.8),
dims=2, k=5, plotResiduals = TRUE)
#plot the data projection on the components
plot(prj(d_low),col=labeltrain, xlab="1st Principal Component",ylab="2nd Principal Component")
prj(d_low)
dims(d_low)
Residuals(d_low)
eVal(d_low)
eVec(d_low)
kcall(d_low)
cndkernf(d_low)