23 using namespace shogun;
36 return "NeighborhoodPreservingEmbedding";
53 cblas_dgemm(CblasColMajor,CblasNoTrans,CblasNoTrans,dim,N,N,1.0,feature_matrix.
matrix,dim,matrix.
matrix,N,0.0,XTM,dim);
54 cblas_dgemm(CblasColMajor,CblasNoTrans,CblasTrans,dim,dim,N,1.0,XTM,dim,feature_matrix.
matrix,dim,0.0,lhs_M,dim);
55 cblas_dgemm(CblasColMajor,CblasNoTrans,CblasTrans,dim,dim,N,1.0,feature_matrix.
matrix,dim,feature_matrix.
matrix,dim,0.0,rhs_M,dim);
61 arpack_dsxupd(lhs_M,rhs_M,
false,dim,dimension,
"LA",
false,3,
true,
m_nullspace_shift,0.0,
64 wrap_dsygvx(1,
'V',
'U',dim,lhs_M,dim,rhs_M,dim,dim-dimension+1,dim,evals,evectors,&info);
69 if (info!=0)
SG_ERROR(
"Failed to solve eigenproblem (%d)\n",info);
71 cblas_dgemm(CblasColMajor,CblasTrans,CblasNoTrans,N,dimension,dim,1.0,feature_matrix.
matrix,dim,evectors,dim,0.0,XTM,N);
75 for (i=0; i<dimension; i++)
78 new_features[j*dimension+i] = XTM[i*N+j];
virtual int32_t get_num_vectors() const
void get_feature_matrix(ST **dst, int32_t *num_feat, int32_t *num_vec)
virtual ~CNeighborhoodPreservingEmbedding()
CNeighborhoodPreservingEmbedding()
the class LocallyLinearEmbedding used to preprocess data using Locally Linear Embedding algorithm des...
void wrap_dsygvx(int itype, char jobz, char uplo, int n, double *a, int lda, double *b, int ldb, int il, int iu, double *eigenvalues, double *eigenvectors, int *info)
virtual const char * get_name() const
virtual SGMatrix< float64_t > construct_embedding(CFeatures *features, SGMatrix< float64_t > matrix, int dimension)
The class Features is the base class of all feature objects.
float64_t m_nullspace_shift
#define SG_MALLOC(type, len)
int32_t get_num_features()