SHOGUN  v1.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
CLaplacianEigenmaps Class Reference

Detailed Description

the class LaplacianEigenmaps used to preprocess data using Laplacian Eigenmaps algorithm as described in:

Belkin, M., & Niyogi, P. (2002). Laplacian Eigenmaps and Spectral Techniques for Embedding and Clustering. Science, 14, 585-591. MIT Press. Retrieved from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.19.9400&rep=rep1&type=pdf

Note that the algorithm is very sensitive to the heat distribution coefficient and number of neighbors in the nearest neighbor graph. No connectivity check is provided, so the preprocessor will not produce reasonable embeddings if the k value makes a graph that is not connected.

This implementation is not parallel due to performance issues. Generalized eigenproblem is the bottleneck for this algorithm.

Solving of generalized eigenproblem involves LAPACK DSYGVX routine and requires extra memory for right-hand side matrix storage. If ARPACK is available then DSAUPD/DSEUPD is used with no extra memory usage.

Definition at line 47 of file LaplacianEigenmaps.h.

Inheritance diagram for CLaplacianEigenmaps:
Inheritance graph
[legend]

Public Member Functions

 CLaplacianEigenmaps ()
virtual ~CLaplacianEigenmaps ()
virtual CFeaturesapply (CFeatures *features)
virtual CSimpleFeatures
< float64_t > * 
embed_distance (CDistance *distance, CFeatures *features=NULL)
void set_k (int32_t k)
int32_t get_k () const
void set_tau (float64_t tau)
float64_t get_tau () const
virtual const char * get_name () const
- Public Member Functions inherited from CEmbeddingConverter
 CEmbeddingConverter ()
virtual ~CEmbeddingConverter ()
virtual CSimpleFeatures
< float64_t > * 
embed (CFeatures *features)
void set_target_dim (int32_t dim)
int32_t get_target_dim () const
void set_distance (CDistance *distance)
CDistanceget_distance () const
void set_kernel (CKernel *kernel)
CKernelget_kernel () const
- Public Member Functions inherited from CConverter
 CConverter ()
virtual ~CConverter ()
- Public Member Functions inherited from CSGObject
 CSGObject ()
 CSGObject (const CSGObject &orig)
virtual ~CSGObject ()
virtual bool is_generic (EPrimitiveType *generic) const
template<class T >
void set_generic ()
void unset_generic ()
virtual void print_serializable (const char *prefix="")
virtual bool save_serializable (CSerializableFile *file, const char *prefix="")
virtual bool load_serializable (CSerializableFile *file, const char *prefix="")
void set_global_io (SGIO *io)
SGIOget_global_io ()
void set_global_parallel (Parallel *parallel)
Parallelget_global_parallel ()
void set_global_version (Version *version)
Versionget_global_version ()
SGVector< char * > get_modelsel_names ()
char * get_modsel_param_descr (const char *param_name)
index_t get_modsel_param_index (const char *param_name)

Protected Member Functions

void init ()
virtual CSimpleFeatures
< float64_t > * 
construct_embedding (CFeatures *features, SGMatrix< float64_t > W_matrix)

Protected Attributes

int32_t m_k
float64_t m_tau
- Protected Attributes inherited from CEmbeddingConverter
int32_t m_target_dim
CDistancem_distance
CKernelm_kernel

Additional Inherited Members

- Public Attributes inherited from CSGObject
SGIOio
Parallelparallel
Versionversion
Parameterm_parameters
Parameterm_model_selection_parameters

Constructor & Destructor Documentation

constructor

Definition at line 24 of file LaplacianEigenmaps.cpp.

~CLaplacianEigenmaps ( )
virtual

destructor

Definition at line 39 of file LaplacianEigenmaps.cpp.

Member Function Documentation

CFeatures * apply ( CFeatures features)
virtual

apply to features

Parameters
featuresto embed
embeddingfeatures

Implements CEmbeddingConverter.

Definition at line 69 of file LaplacianEigenmaps.cpp.

CSimpleFeatures< float64_t > * construct_embedding ( CFeatures features,
SGMatrix< float64_t W_matrix 
)
protectedvirtual

construct embedding

Parameters
featuresfeatures
W_matrixW matrix to be used

Reimplemented in CLocalityPreservingProjections.

Definition at line 160 of file LaplacianEigenmaps.cpp.

CSimpleFeatures< float64_t > * embed_distance ( CDistance distance,
CFeatures features = NULL 
)
virtual

embed distance

Parameters
distanceto use for embedding
embeddingfeatures

Definition at line 88 of file LaplacianEigenmaps.cpp.

int32_t get_k ( ) const

getter for K parameter

Returns
k value

Definition at line 49 of file LaplacianEigenmaps.cpp.

const char * get_name ( ) const
virtual

get name

Reimplemented from CEmbeddingConverter.

Reimplemented in CLocalityPreservingProjections.

Definition at line 64 of file LaplacianEigenmaps.cpp.

float64_t get_tau ( ) const

getter for TAU parameter

Returns
tau value

Definition at line 59 of file LaplacianEigenmaps.cpp.

void init ( )
protected

init

Reimplemented from CEmbeddingConverter.

Definition at line 33 of file LaplacianEigenmaps.cpp.

void set_k ( int32_t  k)

setter for K parameter

Parameters
kk value

Definition at line 43 of file LaplacianEigenmaps.cpp.

void set_tau ( float64_t  tau)

setter for TAU parameter

Parameters
tautau value

Definition at line 54 of file LaplacianEigenmaps.cpp.

Member Data Documentation

int32_t m_k
protected

number of neighbors

Definition at line 107 of file LaplacianEigenmaps.h.

float64_t m_tau
protected

tau parameter of heat distribution

Definition at line 110 of file LaplacianEigenmaps.h.


The documentation for this class was generated from the following files:

SHOGUN Machine Learning Toolbox - Documentation