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 47 of file Isomap.h.
Public Member Functions | |
CIsomap () | |
virtual | ~CIsomap () |
virtual bool | init (CFeatures *features) |
virtual void | cleanup () |
virtual CSimpleFeatures < float64_t > * | apply_to_distance (CDistance *distance) |
virtual SGMatrix< float64_t > | apply_to_feature_matrix (CFeatures *features) |
virtual SGVector< float64_t > | apply_to_feature_vector (SGVector< float64_t > vector) |
virtual const char * | get_name () const |
virtual EPreprocessorType | get_type () const |
void | set_k (int32_t k) |
int32_t | get_k () |
Protected Member Functions | |
void | init () |
SGMatrix< float64_t > | isomap_distance (SGMatrix< float64_t > D_matrix) |
Static Protected Member Functions | |
static void * | run_dijkstra_thread (void *p) |
Protected Attributes | |
int32_t | m_k |
CIsomap | ( | ) |
Definition at line 57 of file Isomap.cpp.
~CIsomap | ( | ) | [virtual] |
Definition at line 69 of file Isomap.cpp.
CSimpleFeatures< float64_t > * apply_to_distance | ( | CDistance * | distance | ) | [virtual] |
apply preprocessor to CDistance
distance | distance |
Reimplemented from CMultidimensionalScaling.
Definition at line 82 of file Isomap.cpp.
apply preprocessor to features
features |
Reimplemented from CMultidimensionalScaling.
Definition at line 100 of file Isomap.cpp.
apply preprocessor to feature vector
vector |
Reimplemented from CMultidimensionalScaling.
Definition at line 130 of file Isomap.cpp.
void cleanup | ( | ) | [virtual] |
empty cleanup
Reimplemented from CMultidimensionalScaling.
Definition at line 78 of file Isomap.cpp.
virtual const char* get_name | ( | void | ) | const [virtual] |
virtual EPreprocessorType get_type | ( | ) | const [virtual] |
bool init | ( | CFeatures * | features | ) | [virtual] |
empty init
features |
Reimplemented from CMultidimensionalScaling.
Definition at line 73 of file Isomap.cpp.
void init | ( | void | ) | [protected] |
approximate geodesic distance with shortest path in kNN graph
D_matrix | distance matrix (deleted on exit) |
Definition at line 136 of file Isomap.cpp.
void * run_dijkstra_thread | ( | void * | p | ) | [static, protected] |
void set_k | ( | int32_t | k | ) |
int32_t m_k [protected] |