14#ifndef MLPACK_METHODS_PCA_DECOMPOSITION_POLICIES_QUIC_SVD_METHOD_HPP
15#define MLPACK_METHODS_PCA_DECOMPOSITION_POLICIES_QUIC_SVD_METHOD_HPP
53 void Apply(
const arma::mat& data,
54 const arma::mat& centeredData,
55 arma::mat& transformedData,
64 svd::QUIC_SVD quicsvd(centeredData, eigvec, v, sigma, epsilon, delta);
69 eigVal = arma::pow(arma::diagvec(sigma), 2) / (data.n_cols - 1);
72 transformedData = arma::trans(eigvec) * centeredData;
76 double Epsilon()
const {
return epsilon; }
81 double Delta()
const {
return delta; }
83 double&
Delta() {
return delta; }
Implementation of the QUIC-SVD policy.
void Apply(const arma::mat &data, const arma::mat ¢eredData, arma::mat &transformedData, arma::vec &eigVal, arma::mat &eigvec, const size_t)
Apply Principal Component Analysis to the provided data set using the QUIC-SVD method.
QUICSVDPolicy(const double epsilon=0.03, const double delta=0.1)
Use QUIC-SVD method to perform the principal components analysis (PCA).
double & Epsilon()
Modify the error tolerance fraction for calculated subspace.
double & Delta()
Modify the cumulative probability for Monte Carlo error lower bound.
double Delta() const
Get the cumulative probability for Monte Carlo error lower bound.
double Epsilon() const
Get the error tolerance fraction for calculated subspace.
QUIC-SVD is a matrix factorization technique, which operates in a subspace such that A's approximatio...
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.