15 #ifndef __MLPACK_METHODS_KERNEL_PCA_NYSTROEM_METHOD_HPP
16 #define __MLPACK_METHODS_KERNEL_PCA_NYSTROEM_METHOD_HPP
27 typename PointSelectionPolicy = kernel::KMeansSelection<>
43 arma::mat& transformedData,
47 KernelType kernel = KernelType())
53 transformedData = G.t() * G;
60 arma::rowvec rowMean = arma::sum(transformedData, 0) /
61 transformedData.n_cols;
62 transformedData.each_col() -= arma::sum(transformedData, 1) /
63 transformedData.n_cols;
64 transformedData.each_row() -= rowMean;
65 transformedData += arma::sum(rowMean) / transformedData.n_cols;
68 arma::svd(eigvec, eigval, v, transformedData);
69 eigval %= eigval / (data.n_cols - 1);
71 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.