Skip to content

Instantly share code, notes, and snippets.

@serialhex
Created August 16, 2011 23:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save serialhex/16e77bf6414e569e7214 to your computer and use it in GitHub Desktop.
Save serialhex/16e77bf6414e569e7214 to your computer and use it in GitHub Desktop.
/** @brief the class Multidimensionalscaling is used to perform
* multidimensional scaling (capable of landmark approximation
* if requested).
*
* Description of classical embedding is given on p.261 (Section 12.1) of
* Borg, I., & Groenen, P. J. F. (2005).
* Modern multidimensional scaling: Theory and applications. Springer.
*
* Description of landmark MDS approximation is given in
*
* Sparse multidimensional scaling using landmark points
* V De Silva, J B Tenenbaum (2004) Technology, p. 1-4
*
* In this preprocessor the LAPACK routine DSYEVR is used for
* solving an eigenproblem. If ARPACK library is available,
* its routines DSAUPD/DSEUPD are used instead.
*
* Note that the target dimension should be set with reasonable value
* (using set_target_dim). If it is higher than the intrinsic
* dimensionality of the dataset 'extra' features of the output
* might be inconsistent (essentially, having a zero or negative
* eigenvalue). In this case a warning is shown.
*
* Faster landmark approximation is parallel using pthreads.
* As for choice of landmark number it should be at least 3 for
* proper triangulation. For reasonable embedding accuracy greater
* values (30%-50% total number of examples) is pretty good for
* most tasks.
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment