23 #ifndef __MLPACK_METHODS_KERNEL_PCA_NYSTROEM_METHOD_HPP 24 #define __MLPACK_METHODS_KERNEL_PCA_NYSTROEM_METHOD_HPP 35 typename PointSelectionPolicy = kernel::KMeansSelection<>
51 arma::mat& transformedData,
55 KernelType kernel = KernelType())
61 transformedData = G.t() * G;
68 arma::rowvec rowMean = arma::sum(transformedData, 0) /
69 transformedData.n_cols;
70 transformedData.each_col() -= arma::sum(transformedData, 1) /
71 transformedData.n_cols;
72 transformedData.each_row() -= rowMean;
73 transformedData += arma::sum(rowMean) / transformedData.n_cols;
76 arma::svd(eigvec, eigval, v, transformedData);
77 eigval %= eigval / (data.n_cols - 1);
79 transformedData = eigvec.t() * G.t();
Linear algebra utility functions, generally performed on matrices or vectors.
void Apply(arma::mat &output)
Apply the low-rank factorization to obtain an output matrix G such that K' = G * G^T.
static void ApplyKernelMatrix(const arma::mat &data, arma::mat &transformedData, arma::vec &eigval, arma::mat &eigvec, const size_t rank, KernelType kernel=KernelType())
Construct the kernel matrix approximation using the nystroem method.