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
do.mve(X, ndim = 2, knn = ceiling(nrow(X)/10), kwidth = 1,
preprocess = c("null", "center", "scale", "cscale", "whiten",
"decorrelate"), tol = 1e-04, maxiter = 1000)
an
an integer-valued target dimension.
size of
bandwidth for Gaussian kernel.
an additional option for preprocessing the data.
Default is "null". See also aux.preprocess
for more details.
stopping criterion for incremental change.
maximum number of iterations allowed.
a named list containing
an
a list containing information for out-of-sample prediction.
shaw_minimum_2007Rdimtools
# NOT RUN {
## generate ribbon-shaped data
## in order to pass CRAN pretest, n is set to be small.
X = aux.gensamples(dname="ribbon",n=50)
## Compare MVU and MVE
# Note that MVE actually requires much larger number of iterations
# Here, due to CRAN limit, it was set as 7.
outMVU5 <- do.mvu(X, ndim=2, type=c("knn",5), projtype="kpca")
outMVE5 <- do.mve(X, ndim=2, knn=5, maxiter=7)
## Visualize two comparisons
par(mfrow=c(1,2))
plot(outMVU5$Y[,1], outMVU5$Y[,2], main="MVU (k=5)")
plot(outMVE5$Y[,1], outMVE5$Y[,2], main="MVE (k=5)")
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab