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 N rows and D columns.

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 momentum to final_momentum.

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 entry i, j indicates a greater contribution of point i on map j.

proportions

An N x no_maps matrix of scaled weights. A high weight on entry i, j indicates a greater contribution of point i on map j.

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))


[Package mmtsne version 0.1.0 Index]