do.mve {Rdimtools} | R Documentation |
Minimum Volume Embedding
Description
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
\sum \lambda_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.
Usage
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
)
Arguments
X |
an |
ndim |
an integer-valued target dimension. |
knn |
size of |
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. |
Value
a named list containing
- Y
an
(n\times ndim)
matrix whose rows are embedded observations.- trfinfo
a list containing information for out-of-sample prediction.
Author(s)
Kisung You
References
Shaw B, Jebara T (2007). “Minimum Volume Embedding.” In Meila M, Shen X (eds.), Proceedings of the Eleventh International Conference on Artificial Intelligence and Statistics March 21-24, 2007, San Juan, Puerto Rico, 460–467.
See Also
Examples
## 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)