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();