mmtsne {mmtsne} | R Documentation |
Multiple maps t-SNE
Description
mmtsne
estimates a multiple maps t-distributed stochastic neighbor
embedding (multiple maps t-SNE) model.
Usage
mmtsne(X, no_maps = 1, no_dims = 2, perplexity = 30, max_iter = 500,
momentum = 0.5, final_momentum = 0.8, mom_switch_iter = 250,
eps = 1e-07)
Arguments
X |
A dataframe or matrix of |
no_maps |
The number of maps (positive whole number) to be estimated. |
no_dims |
The number of dimensions per map. Typical values are 2 or 3. |
perplexity |
The target perplexity for probability matrix construction. Commonly recommended values range from 5 to 30. Perplexity roughly corresponds to the expected number of neighbors per data point. |
max_iter |
The number of iterations to run. |
momentum |
Constant scaling factor for update momentum in gradient descent algorithm. |
final_momentum |
Constant scaling factor for update momentum in gradient descent algorithm after the momentum switch point. |
mom_switch_iter |
The iteration at which momentum switches from
|
eps |
A small positive value near zero. |
Details
mmtsne
is a wrapper that performs multiple maps t-SNE on an input
dataset, X
. The function will pre-process X
, an N
by D
matrix or dataframe, then call mmtsneP
.
The pre-processing steps include calls to x2p
and
p2sp
to convert X
into an N
by N
symmetrical joint probability matrix.
The mmtnseP
code is an almost direct port of the original multiple
maps t-SNE Matlab code by van der Maaten and Hinton (2012). mmtsne
estimates a multidimensional array of N x no_dims x no_maps
. Each
map is an N x no_dims
matrix of estimated t-SNE coordinates. When
no_maps=1
, multiple maps t-SNE reduces to standard t-SNE.
Value
A list that includes the following objects:
- Y
An
N x no_dims x no_maps
array of predicted coordinates.- weights
An
N x no_maps
matrix of unscaled weights. A high weight on entryi, j
indicates a greater contribution of pointi
on mapj
.- proportions
An
N x no_maps
matrix of scaled weights. A high weight on entryi, j
indicates a greater contribution of pointi
on mapj
.
References
L.J.P. van der Maaten and G.E. Hinton. “Visualizing Non-Metric Similarities in Multiple Maps.” Machine Learning 87(1):33-55, 2012. PDF.
Examples
# Load the iris dataset
data("iris")
# Estimate a mmtsne model with 2 maps, 2 dimensions each
model <- mmtsne(iris[,1:4], no_maps=2, max_iter=100)
# Plot the results side-by-side for inspection
# Points scaled by map proportion weights plus constant factor
par(mfrow=c(1,2))
plot(model$Y[,,1], col=iris$Species, cex=model$proportions[,1] + .2)
plot(model$Y[,,2], col=iris$Species, cex=model$proportions[,2] + .2)
par(mfrow=c(1,1))