#include <FgIsomap.h>
Classes | |
struct | Xstruct |
Public Member Functions | |
Isomap (int numNeighbours) | |
Constructor. More... | |
~Isomap () | |
Destructor. More... | |
af::array | Compute (af::array &M, int q) |
Solves. More... | |
virtual af::array | Compute (af::array &M, int q)=0 |
Private Member Functions | |
Xstruct | isomap (af::array &D, int n_size, int q) |
af::array | L2_distance (af::array &a, af::array &b, bool df) |
Private Attributes | |
int | _numNeighbours |
Isomap is one representative of isometric mapping methods, and extends metric multidimensional scaling (MDS) by incorporating the geodesic distances imposed by a weighted graph. To be specific, the classical scaling of metric MDS performs low-dimensional embedding based on the pairwise distance between data points, which is generally measured using straight-line Euclidean distance. Isomap is distinguished by its use of the geodesic distance induced by a neighborhood graph embedded in the classical scaling. This is done to incorporate manifold structure in the resulting embedding. Isomap defines the geodesic distance to be the sum of edge weights along the shortest path between two nodes (computed using Dijkstra's algorithm, for example). The top n eigenvectors of the geodesic distance matrix, represent the coordinates in the new n-dimensional Euclidean space.
Translation of Tenenbaum, de Silva, and Langford' Matlab code.
Algorithm:
Definition at line 86 of file FgIsomap.h.
NeuralEngine::MachineLearning::Isomap::Isomap | ( | int | numNeighbours | ) |
Constructor.
Hmetal T, 17.04.2017.
neighbours | The number of neighbours to compute. |
NeuralEngine::MachineLearning::Isomap::~Isomap | ( | ) |
Destructor.
Hmetal T, 17.04.2017.
|
virtual |
Solves.
Hmetal T, 11.04.2017.
M | [in,out] N by D data matrix. |
q | Latent dimension. |
Implements NeuralEngine::MachineLearning::IEmbed.
|
private |
Definition at line 128 of file FgIsomap.h.