Skip to main content
. Author manuscript; available in PMC: 2012 Jul 1.
Published in final edited form as: Appl Comput Harmon Anal. 2011 Jul;31(1):44–58. doi: 10.1016/j.acha.2010.10.001

Algorithm 1.

Orientable Diffusion Map (ODM)

Require: Data points x1, x2, …, xn ∈ ℝp.
  1. Apply local PCA for each xi and its Nn nearest neighbors to find a p × d matrix Oi whose columns form an orthonormal basis to a subspace that approximates the tangent space Txiℳ.

  2. For nearby points xi and xj define Oij=argminOO(d)OOiTOjF given by Oij=UVT via the SVD OiTOj=UΣVT.

  3. Define a n × n matrix Z whose entries are zij = det Oij for nearby points, and zij = 0 otherwise.

  4. Define 𝒵 = D−1Z, where D is diagonal with Dii=j=1n|zij|.

  5. Compute the top eigenvector υ1𝒵 of 𝒵.

  6. Examine the histogram of υ1𝒵 to decide the orientability of the manifold.

  7. If the manifold is orientable, estimate the reflections as z^i=sign υ1𝒵(i).

  8. Compute the other eigenvectors υ2, υ3, …, υk of 𝒵 corresponding to the largest eigenvalues and embed the data points in ℝk−1 using
    xiz^i(λ2tυ2𝒵(i),λ3tυ3𝒵(i),,λktυk𝒵(i)),  with t>0.