the class Isomap used to preprocess data using K-Isomap algorithm as described in
Silva, V. D., & Tenenbaum, J. B. (2003). Global versus local methods in nonlinear dimensionality reduction. Advances in Neural Information Processing Systems 15, 15(Figure 2), 721-728. MIT Press. Retrieved from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.9.3407&rep=rep1&type=pdf
Shortest paths are being computed with Dijkstra's algorithm with heap in parallel. Due to sparsity of the kNN graph Fibonacci Heap with amortized O(1) Extract-Min operation time complexity is used.
It is possible to apply preprocessor to specified distance using apply_to_distance.
Definition at line 45 of file Isomap.h.
Public Member Functions | |
CIsomap () | |
virtual | ~CIsomap () |
const char * | get_name () const |
void | set_k (int32_t k) |
int32_t | get_k () const |
Protected Member Functions | |
virtual void | init () |
HELPERS. | |
virtual SGMatrix< float64_t > | process_distance_matrix (SGMatrix< float64_t > distance_matrix) |
SGMatrix< float64_t > | isomap_distance (SGMatrix< float64_t > D_matrix) |
Static Protected Member Functions | |
static void * | run_dijkstra_thread (void *p) |
THREADS. | |
Protected Attributes | |
int32_t | m_k |
FIELDS. |
CIsomap | ( | ) |
Definition at line 56 of file Isomap.cpp.
~CIsomap | ( | ) | [virtual] |
Definition at line 68 of file Isomap.cpp.
int32_t get_k | ( | ) | const |
const char * get_name | ( | ) | const [virtual] |
void init | ( | ) | [protected, virtual] |
HELPERS.
default init
Reimplemented from CMultidimensionalScaling.
Definition at line 63 of file Isomap.cpp.
approximate geodesic distance with shortest path in kNN graph
D_matrix | distance matrix (deleted on exit) |
Definition at line 93 of file Isomap.cpp.
SGMatrix< float64_t > process_distance_matrix | ( | SGMatrix< float64_t > | distance_matrix | ) | [protected, virtual] |
process distance matrix (redefined in isomap, for mds does nothing)
distance_matrix | distance matrix |
Reimplemented from CMultidimensionalScaling.
Definition at line 88 of file Isomap.cpp.
void * run_dijkstra_thread | ( | void * | p | ) | [static, protected] |
void set_k | ( | int32_t | k | ) |
int32_t m_k [protected] |