Skip to content

glinka/dmaps

Repository files navigation

Basic implementation of DMAPS algorithm in C++ and Python

Using the Python module

The module's methods are very basic, and can be used as follows

>>> from test_dmaps import gen_swissroll
>>> swissroll_data = gen_swissroll()
>>> k = 4; epsilon = 2.5
>>> eigvals, eigvects = dmaps.embed_data(data, k, epsilon)
>>> from plot_dmaps import plot_embeddings
>>> plot_embeddings(eigvects, eigvals, k=3)

where k is the number of eigenvector/eigenvalue pairs to compute, or equivalently, the dimension of the embedding. If each data vector x is n-dimensional, the preceeding code would embed into k=15 dimensions, and the new coordinates for the first data point would be v1(1), v2(1), v3(1),...,v15(1) where v i(j) represents the jth component of the ith eigenvector (glossing over the optional dependence on the eigenvalues).

Note: It is highly recommended to begin any analysis by running

>>> epsilon_plot(data)

to guide the selection of a proper epsilon value (chosen in the linearly increasing region of resulting figure).

About

implementation of Diffusion Maps in c++ and python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published