Cosan  1.0
Data Analytics Library
onehotencodingTest.cpp File Reference

Go to the source code of this file.

Typedefs

typedef double NumericType
 

Functions

int main ()
 

Typedef Documentation

◆ NumericType

typedef double NumericType

Definition at line 20 of file onehotencodingTest.cpp.

Function Documentation

◆ main()

int main ( )

Definition at line 22 of file onehotencodingTest.cpp.

22  {
23  std::vector<std::vector<std::string>> svalues;
24  std::vector<std::unordered_map<std::string, gsl::index>> categories;
25  std::vector<std::string> svaluesX = std::vector<std::string>({"a","b","c","b","a","c"});
26  gsl::index colCat = 3 ;
27  svalues = std::vector<std::vector<std::string>>(colCat,std::vector<std::string>(svaluesX.size()/colCat,"") );
28  CosanMatrix<NumericType> OneHotMatrixi;
29  CosanMatrix<NumericType> newMatrix;
30  for (gsl::index col = 0;col<colCat;col++){
31  std::unordered_map<std::string, gsl::index> categoryToOrdinal{};
32  for (gsl::index row = 0;row<svaluesX.size()/colCat;row++){
33  svalues[col][row] = svaluesX[row*colCat+col];
34  if (categoryToOrdinal.find(svalues[col][row]) == categoryToOrdinal.end()) {
35  categoryToOrdinal.insert({svalues[col][row], categoryToOrdinal.size()});
36  }
37  }
38  categories.push_back(categoryToOrdinal);
39  OneHotMatrixi = CosanMatrix<NumericType>::Zero(svaluesX.size()/colCat,categoryToOrdinal.size());
40  for (gsl::index row = 0;row<svaluesX.size()/colCat;row++){
41  OneHotMatrixi(row,categoryToOrdinal[svalues[col][row]]) = 1;
42  }
43  if (col ==0){
44  newMatrix =OneHotMatrixi;
45  }
46  else{
47  for (gsl::index i = 0;i<OneHotMatrixi.cols();i++){
48  newMatrix.conservativeResize(newMatrix.rows(), newMatrix.cols()+1);
49  newMatrix.col(newMatrix.cols()-1) = OneHotMatrixi.col(i);
50  }
51  }
52 
53  }
54 
55  // std::vector<std::string> svaluesX = std::vector<std::string>({"a","b","c","b","a","c"});
56  // gsl::index colCat = 2;
57  // std::vector<std::unordered_map<std::string, gsl::index>> categories;
58  // std::vector<std::vector<std::string>> svalues;
59  // svalues = std::vector<std::vector<std::string>>(colCat,std::vector<std::string>(svaluesX.size()/colCat,"") );
60  // Cosan::CosanMatrix<double> OneHotMatrixi;
61  // Cosan::CosanMatrix<double> newMatrix;
62  // for (gsl::index col = 0;col<colCat;col++){
63  // std::unordered_map<std::string, gsl::index> categoryToOrdinal{};
64  // for (gsl::index row = 0;row<svaluesX.size()/colCat;row++){
65  // svalues[col][row] = svaluesX[row*colCat+col];
66  // if (categoryToOrdinal.find(svalues[col][row]) == categoryToOrdinal.end()) {
67  // categoryToOrdinal.insert({svalues[col][row], categoryToOrdinal.size()});
68  // }
69  // }
70  // categories.push_back(categoryToOrdinal);
71  // OneHotMatrixi = Cosan::CosanMatrix<double>::Zero(svaluesX.size()/colCat,categoryToOrdinal.size());
72 
73  // for (gsl::index row = 0;row<svaluesX.size()/colCat;row++){
74  // OneHotMatrixi(row,categoryToOrdinal[svalues[col][row]]) = 1;
75  // }
76  // if (col ==0){
77  // newMatrix =OneHotMatrixi;
78  // }
79  // else{
80  // for (gsl::index i = 0;i<OneHotMatrixi.cols();i++){
81  // newMatrix.conservativeResize(newMatrix.rows(), newMatrix.cols()+1);
82  // newMatrix.col(newMatrix.cols()-1) = OneHotMatrixi.col(i);
83  // }
84  // }
85 
86  // }
87  std::cout<<newMatrix<<std::endl;
88 
89  // int x = 5;
90  // int y = 5;
91  // Cosan::CosanMatrix<double> X_input = Cosan::CosanMatrix<double>::Zero(x,y);
92  // // std::cout<<X_input.rows()<<std::endl;
93  // // X_input.setZero();
94  // std::cout<<X_input<<std::endl;
95  // Cosan::CosanMatrix<db> Y_input;
96  // constexpr gsl::index nrows = 10000;
97  // constexpr gsl::index ncols = 5;
98  // X_input.resize(nrows,ncols);
99  // Y_input.resize(nrows,1);
100  // // X_input = Eigen::Matrix<decltype(X_input)::Scalar,nrows,ncols>::Random();
101  // // Y_input = Eigen::Matrix<decltype(X_input)::Scalar,nrows,1>::Random();
102  // // std::cout<<X_input <<std::endl;
103  // // std::cout<<Y_input <<std::endl;
104  // // X_input = Eigen::Matrix<X_input::Scalr,X_input.rows(),X_input.cols()>::Random();
105 
106  // // Cosan::CosanData<db> CRD(X_input,Y_input);
107  // Cosan::CosanData<db> CRD(Eigen::Matrix<decltype(X_input)::Scalar,nrows,ncols>::Random()
108  // ,Eigen::Matrix<decltype(X_input)::Scalar,nrows,1>::Random());
109  // // Cosan::CosanLinearRegression<decltype(X_input)::Scalar> CRRwbias(true);
110  // Cosan::CosanPCRRidge<decltype(X_input)::Scalar> CRRwbias;
111 
112  // CRRwbias.fit(CRD.GetInput(),CRD.GetTarget());
113  // // std::cout<<CRRwbias.GetParams()<<std::endl;
114  // Cosan::CosanMatrix<db> beta = CRRwbias.GetBeta();
115  // std::cout<<CRRwbias.predict(CRD.GetInput())<<std::endl;
116  // std::cout<<beta<<std::endl;
117  // Cosan::MeanSquareError<decltype(X_input)::Scalar> mse;
118  // Cosan::MeanAbsError<decltype(X_input)::Scalar> mae;
119  // Cosan::R2Score<decltype(X_input)::Scalar> r2;
120  // Cosan::MaxError<decltype(X_input)::Scalar> me;
121 
122  // db a = 0.05;
123  // std::vector<db> v(10);
124  // std::generate(v.begin(), v.end(), [n = 1, &a]() mutable { return n++ * a; });
125  // Cosan::RandomKFold kf(5);
126  // for (auto & each : v){
127  // std::cout<<each<<std::endl;
128  // }
129 
130  // // KFoldParallel
131  // // TimeSeriesSplitParallel
132  // // TimeSeriesSplit
133  // // RandomKFoldParallel
134  // // RandomKFold
135  // // Cosan::RandomGridSearch GDS1(CRD,CRRwbias,mse,kf,v);
136  // std::cout<<Cosan::RandomGridSearch(CRD,CRRwbias,mse,kf,v).GetBestParams()<<std::endl;
137  // // Cosan::RandomGridSearch GDS2(CRD,CRRwbias,mae,kf,v);
138  // std::cout<<GDS2.GetBestParams()<<std::endl;
139  // Cosan::RandomGridSearch GDS3(CRD,CRRwbias,r2,kf,v);
140  // std::cout<<GDS3.GetBestParams()<<std::endl;
141  // Cosan::RandomGridSearch GDS4(CRD,CRRwbias,me,kf,v);
142  // std::cout<<GDS4.GetBestParams()<<std::endl;
143 
144 
145  // std::cout<<GDS.GetBestParams()<<std::endl;
146  // std::cout<<CRRwbias.predict(X_input)<<std::endl;
147 
148 
149  return 0;
150 }
Cosan::CosanMatrix
Eigen::Matrix< NumericType, Eigen::Dynamic, Eigen::Dynamic > CosanMatrix
Definition: CosanBO.h:37