16 #ifndef MLPACK_METHODS_PCA_PCA_HPP 17 #define MLPACK_METHODS_PCA_PCA_HPP 32 template<
typename DecompositionPolicy = ExactSVDPolicy>
42 PCA(
const bool scaleData =
false,
43 const DecompositionPolicy& decomposition = DecompositionPolicy());
54 void Apply(
const arma::mat& data,
55 arma::mat& transformedData,
67 void Apply(
const arma::mat& data,
68 arma::mat& transformedData,
82 double Apply(arma::mat& data,
const size_t newDimension);
85 inline double Apply(arma::mat& data,
const int newDimension)
87 return Apply(data,
size_t(newDimension));
105 double Apply(arma::mat& data,
const double varRetained);
123 arma::vec stdDev = arma::stddev(
124 centeredData, 0, 1 );
127 for (
size_t i = 0; i < stdDev.n_elem; ++i)
131 centeredData /= arma::repmat(stdDev, 1, centeredData.n_cols);
140 DecompositionPolicy decomposition;
147 #include "pca_impl.hpp" void Apply(const arma::mat &data, arma::mat &transformedData, arma::vec &eigVal, arma::mat &eigvec)
Apply Principal Component Analysis to the provided data set.
bool & ScaleData()
Modify whether or not this PCA object will scale (by standard deviation) the data when PCA is perform...
The core includes that mlpack expects; standard C++ includes and Armadillo.
This class implements principal components analysis (PCA).
PCA(const bool scaleData=false, const DecompositionPolicy &decomposition=DecompositionPolicy())
Create the PCA object, specifying if the data should be scaled in each dimension by standard deviatio...
bool ScaleData() const
Get whether or not this PCA object will scale (by standard deviation) the data when PCA is performed...
double Apply(arma::mat &data, const int newDimension)
This overload is here to make sure int gets casted right to size_t.