Xmipp  v3.23.11-Nereus
Public Member Functions | Public Attributes | List of all members
LaplacianEigenmap Class Reference

#include <laplacianEigenmaps.h>

Inheritance diagram for LaplacianEigenmap:
Inheritance graph
[legend]
Collaboration diagram for LaplacianEigenmap:
Collaboration graph
[legend]

Public Member Functions

void setSpecificParameters (double sigma=1.0, size_t numberOfNeighbours=7)
 Set specific parameters. More...
 
void reduceDimensionality ()
 Reduce dimensionality. More...
 
- Public Member Functions inherited from DimRedAlgorithm
 DimRedAlgorithm ()
 Empty constructor. More...
 
void setInputData (Matrix2D< double > &X)
 Set input data. More...
 
void setOutputDimensionality (size_t outputDim)
 Set output dimensionality. More...
 
const Matrix2D< double > & getReducedData ()
 Get reduced data. More...
 

Public Attributes

double sigma
 
size_t numberOfNeighbours
 
- Public Attributes inherited from DimRedAlgorithm
Matrix2D< double > * X
 Pointer to input data. More...
 
size_t outputDim
 Output dim. More...
 
Matrix2D< double > Y
 Output data. More...
 
DimRedDistance2 distance
 Distance function. More...
 
FileName fnMapping
 Save mapping. More...
 

Detailed Description

Class for making a Kernel PCA dimensionality reduction

Definition at line 37 of file laplacianEigenmaps.h.

Member Function Documentation

◆ reduceDimensionality()

void LaplacianEigenmap::reduceDimensionality ( )
virtual

Reduce dimensionality.

Implements DimRedAlgorithm.

Definition at line 35 of file laplacianEigenmaps.cpp.

36 {
37  Matrix2D<double> G,L,D;
38  Matrix1D<double> mappedX;
39  //Construct neighborhood graph
41  //Compute Gaussian kernel(heat kernel based weights)
42  computeSimilarityMatrix(G,sigma,true,true);
43  //Compute Laplacian
45  //Construct diagonal weight matrix
46  D.initZeros(MAT_YSIZE(G),MAT_YSIZE(G));
48  MAT_ELEM(D,i,i)+=MAT_ELEM(G,i,j);
49  //Construct eigenmaps
50  generalizedEigs(L,D,mappedX,Y);
51  keepColumns(Y,1,(int)outputDim);
52 }
#define FOR_ALL_ELEMENTS_IN_MATRIX2D(m)
Definition: matrix2d.h:104
#define MAT_YSIZE(m)
Definition: matrix2d.h:124
void computeSimilarityMatrix(Matrix2D< double > &D2, double sigma, bool skipZeros, bool normalize)
Matrix2D< double > Y
Output data.
Definition: dimred_tools.h:147
Matrix2D< double > * X
Pointer to input data.
Definition: dimred_tools.h:141
void computeGraphLaplacian(const Matrix2D< double > &G, Matrix2D< double > &L)
#define i
size_t outputDim
Output dim.
Definition: dimred_tools.h:144
#define MAT_ELEM(m, i, j)
Definition: matrix2d.h:116
void computeDistanceToNeighbours(const Matrix2D< double > &X, int K, Matrix2D< double > &distance, DimRedDistance2 f, bool computeSqrt)
void generalizedEigs(const Matrix2D< double > &A, const Matrix2D< double > &B, Matrix1D< double > &D, Matrix2D< double > &P)
Definition: matrix2d.cpp:267
#define j
DimRedDistance2 distance
Distance function.
Definition: dimred_tools.h:150
void keepColumns(Matrix2D< double > &A, int j0, int jF)
Definition: matrix2d.cpp:551
void initZeros()
Definition: matrix2d.h:626

◆ setSpecificParameters()

void LaplacianEigenmap::setSpecificParameters ( double  sigma = 1.0,
size_t  numberOfNeighbours = 7 
)

Set specific parameters.

Definition at line 29 of file laplacianEigenmaps.cpp.

30 {
31  this->sigma=sigma;
33 }

Member Data Documentation

◆ numberOfNeighbours

size_t LaplacianEigenmap::numberOfNeighbours

Definition at line 41 of file laplacianEigenmaps.h.

◆ sigma

double LaplacianEigenmap::sigma

Definition at line 40 of file laplacianEigenmaps.h.


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