do.mve | R Documentation |
Minimum Volume Embedding (MVE) is a nonlinear dimension reduction algorithm that exploits semidefinite programming (SDP), like MVU/SDE. Whereas MVU aims at stretching through all direction by maximizing ∑ λ_i, MVE only opts for unrolling the top eigenspectrum and chooses to shrink left-over spectral dimension. For ease of use, unlike kernel PCA, we only made use of Gaussian kernel for MVE.
do.mve( X, ndim = 2, knn = ceiling(nrow(X)/10), kwidth = 1, preprocess = c("null", "center", "scale", "cscale", "whiten", "decorrelate"), tol = 1e-04, maxiter = 10 )
X |
an (n\times p) matrix or data frame whose rows are observations and columns represent independent variables. |
ndim |
an integer-valued target dimension. |
knn |
size of k-nn neighborhood. |
kwidth |
bandwidth for Gaussian kernel. |
preprocess |
an additional option for preprocessing the data.
Default is "null". See also |
tol |
stopping criterion for incremental change. |
maxiter |
maximum number of iterations allowed. |
a named list containing
an (n\times ndim) matrix whose rows are embedded observations.
a list containing information for out-of-sample prediction.
Kisung You
shaw_minimum_2007Rdimtools
do.mvu
## Not run: ## use a small subset of iris data set.seed(100) id = sample(1:150, 50) X = as.matrix(iris[id,1:4]) lab = as.factor(iris[id,5]) ## try different connectivity levels output1 <- do.mve(X, knn=5) output2 <- do.mve(X, knn=10) output3 <- do.mve(X, knn=20) ## Visualize two comparisons opar <- par(no.readonly=TRUE) par(mfrow=c(1,3)) plot(output1$Y, main="knn:k=5", pch=19, col=lab) plot(output2$Y, main="knn:k=10", pch=19, col=lab) plot(output3$Y, main="knn:k=20", pch=19, col=lab) par(opar) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.