-
-
Notifications
You must be signed in to change notification settings - Fork 1k
/
LocalTangentSpaceAlignment.h
54 lines (45 loc) · 1.4 KB
/
LocalTangentSpaceAlignment.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
* This software is distributed under BSD 3-clause license (see LICENSE file).
*
* Authors: Sergey Lisitsyn, Heiko Strathmann, Evan Shelhamer
*/
#ifndef LOCALTANGENTSPACEALIGNMENT_H_
#define LOCALTANGENTSPACEALIGNMENT_H_
#include <shogun/lib/config.h>
#include <shogun/converter/LocallyLinearEmbedding.h>
#include <shogun/features/Features.h>
#include <shogun/distance/Distance.h>
namespace shogun
{
class CFeatures;
class CDistance;
/** @brief class 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
*
* 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.
*
* Uses implementation from the Tapkee library.
*
*/
class CLocalTangentSpaceAlignment: public CLocallyLinearEmbedding
{
public:
/** constructor */
CLocalTangentSpaceAlignment();
/** destructor */
virtual ~CLocalTangentSpaceAlignment();
/** get name */
virtual const char* get_name() const;
/** apply */
virtual CFeatures* apply(CFeatures* features, bool inplace = true);
};
}
#endif /* LOCALTANGENTSPACEALINGMENT_H_ */