Tapkee: An Efficient Dimension Reduction Library

Abstract

We present Tapkee, a C++ template library that provides
efficient implementations of more than $20$ widely used
dimensionality reduction techniques ranging from Locally
Linear Embedding (Roweis and Saul, 2000) and Isomap (de
Silva and Tenenbaum, 2002) to the recently introduced Barnes-
Hut-SNE (van der Maaten, 2013). Our library was designed
with a focus on performance and flexibility. For performance, we
combine efficient multi-core algorithms, modern data structures
and state-of-the-art low-level libraries. To achieve
flexibility, we designed a clean interface for applying methods
to user data and provide a callback API that facilitates
integration with the library. The library is freely available as
open-source software and is distributed under the permissive
BSD 3-clause license. We encourage the integration of
Tapkee into other open-source toolboxes and libraries.
For example, Tapkee has been integrated into the codebase
of the Shogun toolbox (Sonnenburg et al., 2010), giving
us access to a rich set of kernels, distance measures and
bindings to common programming languages including Python,
Octave, Matlab, R, Java, C#, Ruby, Perl and Lua. Source code,
examples and documentation are available at http://tapkee.lisitsyn.me.