Learn R Programming

mmtsne (version 0.1.0)

mmtsne: 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.

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

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.

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

Run this code
# NOT RUN {
# 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))

# }

Run the code above in your browser using DataLab