kernel_pca.hpp

Go to the documentation of this file.
00001 
00023 #ifndef __MLPACK_METHODS_KERNEL_PCA_KERNEL_PCA_HPP
00024 #define __MLPACK_METHODS_KERNEL_PCA_KERNEL_PCA_HPP
00025 
00026 #include <mlpack/core.hpp>
00027 #include <mlpack/core/kernels/linear_kernel.hpp>
00028 
00029 namespace mlpack {
00030 namespace kpca {
00031 
00045 template <typename KernelType>
00046 class KernelPCA
00047 {
00048  public:
00057   KernelPCA(const KernelType kernel = KernelType(),
00058             const bool centerTransformedData = false);
00059 
00068   void Apply(const arma::mat& data,
00069              arma::mat& transformedData,
00070              arma::vec& eigval,
00071              arma::mat& eigvec);
00072 
00080   void Apply(const arma::mat& data,
00081              arma::mat& transformedData,
00082              arma::vec& eigval);
00083 
00097   void Apply(arma::mat& data, const size_t newDimension);
00098 
00100   const KernelType& Kernel() const { return kernel; }
00102   KernelType& Kernel() { return kernel; }
00103 
00105   bool CenterTransformedData() const { return centerTransformedData; }
00107   bool& CenterTransformedData() { return centerTransformedData; }
00108 
00109  private:
00111   KernelType kernel;
00114   bool centerTransformedData;
00115 
00122   void GetKernelMatrix(const arma::mat& data, arma::mat& kernelMatrix);
00123 
00124 }; // class KernelPCA
00125 
00126 }; // namespace kpca
00127 }; // namespace mlpack
00128 
00129 // Include implementation.
00130 #include "kernel_pca_impl.hpp"
00131 
00132 #endif // __MLPACK_METHODS_KERNEL_PCA_KERNEL_PCA_HPP

Generated on 13 Aug 2014 for MLPACK by  doxygen 1.6.1