LocalTangentSpaceAlignment used to embed data using Local Tangent Space Alignment (LTSA) algorithm as described in:
Zhang, Z., & Zha, H. (2002). Principal Manifolds and Nonlinear Dimension Reduction via Local Tangent Space Alignment. Journal of Shanghai University English Edition, 8(4), 406-424. SIAM. Retrieved from http://arxiv.org/abs/cs/0212008
Due to performance reasons on high-dimensional datasets please use KernelLocalTangentSpaceAlignment with linear kernel.
The stated eigenproblem is solved in the same way as CLocallyLinearEmbedding (LAPACK or ARPACK if available).
The local tangent space alignment step is parallel. Neighborhood determination is parallel as in CLocallyLinearEmbedding.
This algorithm is pretty stable for variations of k parameter value but be sure it is set with a consistent value (at least 3-5) for reasonable results.
Please do not use multithreading whether your LAPACK is not thread-safe.
Definition at line 50 of file LocalTangentSpaceAlignment.h.
Public Member Functions | |
CLocalTangentSpaceAlignment () | |
virtual | ~CLocalTangentSpaceAlignment () |
virtual const char * | get_name () const |
Protected Member Functions | |
virtual SGMatrix< float64_t > | construct_weight_matrix (CSimpleFeatures< float64_t > *simple_features, float64_t *W_matrix, SGMatrix< int32_t > neighborhood_matrix) |
HELPER. | |
Static Protected Member Functions | |
static void * | run_ltsa_thread (void *p) |
THREAD. |
constructor
Definition at line 67 of file LocalTangentSpaceAlignment.cpp.
~CLocalTangentSpaceAlignment | ( | ) | [virtual] |
destructor
Definition at line 72 of file LocalTangentSpaceAlignment.cpp.
SGMatrix< float64_t > construct_weight_matrix | ( | CSimpleFeatures< float64_t > * | simple_features, | |
float64_t * | W_matrix, | |||
SGMatrix< int32_t > | neighborhood_matrix | |||
) | [protected, virtual] |
HELPER.
construct weight matrix
simple_features | features to be used | |
W_matrix | weight matrix | |
neighborhood_matrix | matrix containing neighbor idxs |
Reimplemented from CLocallyLinearEmbedding.
Definition at line 81 of file LocalTangentSpaceAlignment.cpp.
const char * get_name | ( | ) | const [virtual] |
get name
Reimplemented from CLocallyLinearEmbedding.
Reimplemented in CLinearLocalTangentSpaceAlignment.
Definition at line 76 of file LocalTangentSpaceAlignment.cpp.
void * run_ltsa_thread | ( | void * | p | ) | [static, protected] |
THREAD.
run ltsa thread
p | thread params |
Definition at line 175 of file LocalTangentSpaceAlignment.cpp.