Cosan  1.0
Data Analytics Library
onehotencoding.cpp File Reference

Go to the source code of this file.

Typedefs

typedef double db
 

Functions

int main ()
 

Typedef Documentation

◆ db

typedef double db

Definition at line 20 of file onehotencoding.cpp.

Function Documentation

◆ main()

int main ( )

Definition at line 22 of file onehotencoding.cpp.

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