Cosan  1.0
Data Analytics Library
PCATest.cpp File Reference
#include <iostream>
#include <Eigen/Dense>
#include <Eigen/Core>
#include <cosan/data/CosanData.h>
#include <gsl/gsl>
#include <cosan/preprocessing/overunderflow.h>
#include <cosan/preprocessing/missingvalues.h>
#include <cosan/preprocessing/minmaxscaler.h>
#include <cosan/preprocessing/principalcomponentanalysis.h>
#include <vector>
#include <fmt/format.h>
#include <numeric>

Go to the source code of this file.

Macros

#define FMT_HEADER_ONLY
 

Functions

int main ()
 

Macro Definition Documentation

◆ FMT_HEADER_ONLY

#define FMT_HEADER_ONLY

Definition at line 18 of file PCATest.cpp.

Function Documentation

◆ main()

int main ( )

Definition at line 26 of file PCATest.cpp.

26  {
27 
28  // std::cout<< value1<<value2<<std::endl;
29  // std::cout<<X.col(i).array().isNaN().sum()<<std::endl;
30  Cosan::CosanMatrix X{5,3};
31  X << 1,2,2,
32  4,3,4,
33  2,4,6,
34  12,51,6,
35  435,4,15;
36  // (X.array().colwise()-X.colwise().minCoeff())/X.colwise().maxCoeff()-X.colwise().minCoeff();
37  std::cout<<X<<std::endl;
38 
39  Cosan::CosanMatrix centered = X.rowwise() - X.colwise().mean();
40  Cosan::CosanMatrix cov = centered.adjoint() * centered;
41 
42  Eigen::SelfAdjointEigenSolver<Cosan::CosanMatrix> eigensolver(cov);
43  if (eigensolver.info() != Eigen::Success) {
44  throw std::invalid_argument("Cannot solve eigenvalue decomposition.");}
45  std::cout<<eigensolver.eigenvalues()<<std::endl;
46  std::cout<<eigensolver.eigenvectors()<<std::endl;
47  std::cout<<eigensolver.eigenvectors().rightCols(2)<<std::endl;
48  centered = eigensolver.eigenvectors().rightCols(2);
49  std::vector<double> vec(eigensolver.eigenvalues().data(), eigensolver.eigenvalues().data() + eigensolver.eigenvalues().size());
50  std::reverse(vec.begin(),vec.end());
51  std::vector<double> runningSum(vec.size());
52  std::partial_sum(vec.begin(), vec.end(), runningSum.begin(), std::plus<double>());
53  for (auto & each :runningSum){
54  std::cout<<each<<std::endl;
55  }
56 
57 
58 
59  Cosan::CosanRawData CRD("./example_data/toy2/X_.csv","./example_data/toy2/Y_.csv");
60  std::cout<<CRD.GetSummaryMessageX()<<CRD.GetSummaryMessageY()<<std::endl;
61  Cosan::OverUnderFlow ouf(CRD);
62  Cosan::MissingValues MissV(CRD);
63  Cosan::MinmaxScaler MMS(CRD,3,5);
64  auto [value1, value2] = CRD.GetMissingNumber();
65  std::cout<< value1<<value2<<std::endl;
67 
68  // std::cout<<M.array().isNaN().sum()<<std::endl;
69  // CRD.GetTarget().rows()-CRD.GetTarget().array().isNaN().sum()
70  // CRD.GetTarget().array().isNaN().select(0,CRD.GetTarget())
71 
72  // std::cout<<CRD.GetTarget().array().isNaN().select(0,CRD.GetTarget()).sum()<<std::endl;
73 
74  // std::cout<<(1-CRD.GetTarget().array().isNaN()).cast<double>().array()*CRD.GetTarget().array()<<std::endl;
75 
76 
77  return 0;
78 }
Cosan::MinmaxScaler
Definition: minmaxscaler.h:12
Cosan::OverUnderFlow
Definition: overunderflow.h:14
Cosan::vec
std::vector< NumericType > vec
Definition: templateTest.cpp:14
Cosan::CosanMatrix
Eigen::Matrix< NumericType, Eigen::Dynamic, Eigen::Dynamic > CosanMatrix
Definition: CosanBO.h:37
Cosan::PrincipalComponentAnalysis
Definition: principalcomponentanalysis.h:16
Cosan::CosanRawData
Raw Data container.
Definition: CosanData.h:36
Cosan::MissingValues
Definition: missingvalues.h:13