Cosan  1.0
Data Analytics Library
Implementation.cpp
Go to the documentation of this file.
1 //
2 // Created by Xinyu Zhang on 3/26/21.
3 //
4 #include <iostream>
5 // #include <Eigen/Dense>
6 // #include <cosan/io/utils.h>
12 #include <cosan/utils/utils.h>
13 #include <cosan/data/CosanData.h>
30 // #include <cosan/model/CosanLinearRegression.h>
31 // #include <cosan/model/CosanRidgeRegression.h>
32 //using namespace Eigen;
33 //using namespace std;
34 // gcc -I. ./test/Implementation.cpp
35 typedef double db;
36 int main() {
37  fmt::print("fmt library can be used", 42);
38 // Data Reading
39  constexpr gsl::index nrows = 3;
40  constexpr gsl::index ncols = 3;
41 
42 
44  CM.resize(nrows,ncols);
45  CM<< 1,2,3,
46  4,5,6,
47  7,8,9;
48  Cosan::CosanData<db> CD0(CM);
49  std::vector<db> inputX({1,2,3,4,5,6});
50  Cosan::CosanData<db> CD1(inputX,inputX,6,"rowfirst");
51  std::cout<<CD1.GetInput()<<std::endl;
52  db lb=0,ub=1;
53  Cosan::CosanData<db> CD2(3,4,lb,ub);
54  std::cout<<CD2.GetInput()<<std::endl;
55 
56 // Data Preprocessing
57  Cosan::CosanRawData<db> CRD("./example_data/toy2/X_.csv","./example_data/toy2/Y_.csv");
58  std::cout<<CRD.GetSummaryMessageX()<<std::endl;
59  std::cout<<CRD.GetSummaryMessageY()<<std::endl;
60  Cosan::OverUnderFlow OUF(CRD);
61  Cosan::MissingValues MSV(CRD);
62  Cosan::StandardScaler SS(CRD);
63  Cosan::Normalizer NM(CRD,2);
64  Cosan::Encoder ED(CRD,true);
65  lb = 2;
66  ub=6;
67  Cosan::MinmaxScaler MMS(CRD,lb,ub);
68  Cosan::PolynomialFeatures PF(CRD,{{1,0},{1,1}});
70  std::cout<<PCA.GetPC()<<std::endl;
71 // Model fitting
72  Cosan::CosanRawData<db> CD("./example_data/toy/X.csv","./example_data/toy/y.csv");
73  Cosan::CosanLinearRegression<db> CLRwbias(true);
74  CLRwbias.fit(CD.GetInput(),CD.GetTarget());
75  std::cout<<CLRwbias.GetBeta()<<std::endl;
76  std::cout<<(CLRwbias.predict(CD.GetInput())-CD.GetTarget()).norm()<<std::endl;
77  Cosan::CosanLinearRegression<db> CLRwobias(false);
78  CLRwobias.fit(CD.GetInput(),CD.GetTarget());
79  std::cout<<CLRwobias.GetBeta()<<std::endl;
80  std::cout<<(CLRwobias.predict(CD.GetInput())-CD.GetTarget()).norm()<<std::endl;
81 
82  db RegularizationTerm = 1;
83  Cosan::CosanRidgeRegression<db> CRRwBias(RegularizationTerm,true);
84  CRRwBias.fit(CD.GetInput(),CD.GetTarget());
85  std::cout<<CRRwBias.GetBeta()<<std::endl;
86  std::cout<<(CRRwBias.predict(CD.GetInput())-CD.GetTarget()).norm()<<std::endl;
87 
88  gsl::index ncomp = 4;
90  CPCR.fit(CD.GetInput(),CD.GetTarget());
91  std::cout<<CPCR.GetBeta()<<std::endl;
92  std::cout<<(CPCR.predict(CD.GetInput())-CD.GetTarget()).norm()<<std::endl;
93 
94 
95  db regularier = 0.01;
96  Cosan::CosanPCRRidge<db> CPCRR({ncomp,regularier});
97  CPCRR.fit(CD.GetInput(),CD.GetTarget());
98  std::cout<<CPCRR.GetBeta()<<std::endl;
99  std::cout<<(CPCRR.predict(CD.GetInput())-CD.GetTarget()).norm()<<std::endl;
100  std::cout<<CD.GetcolsX()<<std::endl;
101 
102 
103  constexpr gsl::index nrows1 = 10000;
104  constexpr gsl::index ncols1 = 10;
105 
106  Cosan::CosanMatrix<db> X_input;
107  Cosan::CosanMatrix<db> Y_input;
108  X_input.resize(nrows1,ncols1);
109  Y_input.resize(nrows1,1);
110  X_input = Eigen::Matrix<decltype(X_input)::Scalar,nrows1,ncols1>::Random();
111  Y_input = Eigen::Matrix<decltype(X_input)::Scalar,nrows1,1>::Random();
112  Cosan::CosanData CD_search(X_input,Y_input);
113 // Cosan::CosanRidgeRegression<db> CRRwBias(RegularizationTerm,true);
114  Cosan::MeanSquareError<decltype(X_input)::Scalar> mse;
115  db a = 0.05;
116  std::vector<db> v(10);
117  std::generate(v.begin(), v.end(), [n = 1, &a]() mutable { return n++ * a; });
118  Cosan::KFold kf(5);
119  Cosan::GridSearch GDS(CD_search,CRRwBias,mse,kf,v);
120  fmt::print("The best params selected is\n ");
121  std::cout<<GDS.GetBestParams()<<std::endl;
122 // Grid Search
123 
124  return 0;
125 }
timeseriessplit.h
Cosan::MinmaxScaler
Definition: minmaxscaler.h:12
encoder.h
CosanData.h
Cosan::CosanRawData::GetInput
CosanMatrix< NumericType > GetInput()
Get a copy of CosanMatrix<NumericType> X.
Definition: CosanData.h:141
Cosan::CosanRawData::GetTarget
CosanMatrix< NumericType > GetTarget()
Get a copy of CosanMatrix<NumericType> Y.
Definition: CosanData.h:147
Cosan::Encoder
Definition: encoder.h:9
Cosan::GridSearch
Definition: gridsearch.h:26
Cosan::CosanPCRRidge::fit
void fit(T &&X, const CosanMatrix< NumericType > &Y)
Definition: CosanPCRRidge.h:56
utils.h
onehotEncoder.h
Cosan::CosanRidgeRegression
Definition: CosanRidgeRegression.h:18
customtransform.h
CosanRidgeRegression.h
Cosan::CosanLinearModel::GetBeta
const CosanMatrix< NumericType > & GetBeta() const
Definition: CosanLinearModel.h:44
Cosan::MeanSquareError
Mean squared error.
Definition: CosanMetric.h:132
Cosan::CosanPrincipalComponentRegression
Definition: CosanPrincipalComponentRegression.h:20
Cosan::KFold
Definition: kfold.h:12
Cosan::CosanRawData::GetcolsX
gsl::index GetcolsX()
Get the number of columns for X.
Definition: CosanData.h:270
Cosan::PolynomialFeatures
Definition: polynomialfeatures.h:14
Cosan::OverUnderFlow
Definition: overunderflow.h:14
normalizer.h
Cosan::CosanPrincipalComponentRegression::predict
virtual CosanMatrix< NumericType > predict(const CosanMatrix< NumericType > &X) override
Definition: CosanPrincipalComponentRegression.h:63
gridsearch.h
randomkfold.h
Cosan::CosanMatrix
Eigen::Matrix< NumericType, Eigen::Dynamic, Eigen::Dynamic > CosanMatrix
Definition: CosanBO.h:37
Cosan::Normalizer
Definition: normalizer.h:12
standardScaler.h
randomgridsearch.h
minmaxscaler.h
Cosan::CosanData
Data container.
Definition: CosanData.h:546
Cosan::CosanLinearRegression::fit
void fit(T &&X, const CosanMatrix< NumericType > &Y)
Definition: CosanLinearRegression.h:55
CosanPCRRidge.h
CosanLinearRegression.h
principalcomponentanalysis.h
db
double db
Definition: Implementation.cpp:35
Cosan::PrincipalComponentAnalysis
Definition: principalcomponentanalysis.h:16
polynomialfeatures.h
Cosan::CosanPrincipalComponentRegression::fit
void fit(T &&X, const CosanMatrix< NumericType > &Y)
Definition: CosanPrincipalComponentRegression.h:57
Cosan::CosanRawData
Raw Data container.
Definition: CosanData.h:36
overunderflow.h
Cosan::GridSearch::GetBestParams
auto GetBestParams()
Definition: gridsearch.h:48
Cosan::MissingValues
Definition: missingvalues.h:13
CosanPrincipalComponentRegression.h
Cosan::CosanRawData::GetSummaryMessageY
const std::string & GetSummaryMessageY() const
Get the summary message on reading csv file on Y.
Definition: CosanData.h:192
Cosan::StandardScaler
Definition: standardScaler.h:11
ordinalEncoder.h
Cosan::CosanPCRRidge
Definition: CosanPCRRidge.h:19
Cosan::CosanRawData::GetSummaryMessageX
const std::string & GetSummaryMessageX() const
Get the summary message on reading csv file on X.
Definition: CosanData.h:187
Cosan::CosanLinearRegression::predict
virtual CosanMatrix< NumericType > predict(const CosanMatrix< NumericType > &X) override
Definition: CosanLinearRegression.h:75
kfold.h
Cosan::CosanRidgeRegression::fit
void fit(T &&X, const CosanMatrix< NumericType > &Y)
Definition: CosanRidgeRegression.h:57
missingvalues.h
Cosan::CosanLinearRegression
Definition: CosanLinearRegression.h:20
preprocessor.h
main
int main()
Definition: Implementation.cpp:36