MLPACK  1.0.8
pca.hpp
Go to the documentation of this file.
1 
23 #ifndef __MLPACK_METHODS_PCA_PCA_HPP
24 #define __MLPACK_METHODS_PCA_PCA_HPP
25 
26 #include <mlpack/core.hpp>
27 
28 namespace mlpack {
29 namespace pca {
30 
38 class PCA
39 {
40  public:
47  PCA(const bool scaleData = false);
48 
58  void Apply(const arma::mat& data,
59  arma::mat& transformedData,
60  arma::vec& eigval,
61  arma::mat& eigvec) const;
62 
71  void Apply(const arma::mat& data,
72  arma::mat& transformedData,
73  arma::vec& eigVal) const;
74 
86  double Apply(arma::mat& data, const size_t newDimension) const;
87 
89  inline double Apply(arma::mat& data, const int newDimension) const
90  {
91  return Apply(data, size_t(newDimension));
92  }
93 
109  double Apply(arma::mat& data, const double varRetained) const;
110 
113  bool ScaleData() const { return scaleData; }
116  bool& ScaleData() { return scaleData; }
117 
118  private:
121  bool scaleData;
122 
123 }; // class PCA
124 
125 }; // namespace pca
126 }; // namespace mlpack
127 
128 #endif