33 fmt::print(
"*********************************\n");
34 fmt::print(
"Begin encoding categorical data !\n");
36 gsl::index colCat = RD.GetcolCatX().size();
37 std::vector <std::string> svaluesX = RD.GetsvaluesX();
38 gsl::index totalCol = 0;
39 std::vector<std::vector<std::string>> svalues;
40 svalues = std::vector < std::vector <
41 std::string >> (colCat, std::vector<std::string>(svaluesX.size() / colCat,
""));
42 CosanMatrix <NumericType> OneHotMatrixi;
43 for (gsl::index col = 0; col < colCat; col++) {
44 std::unordered_map <std::string, gsl::index> categoryToOrdinal{};
45 for (gsl::index row = 0; row < svaluesX.size() / colCat; row++) {
46 svalues[col][row] = svaluesX[row * colCat + col];
47 if (categoryToOrdinal.find(svalues[col][row]) == categoryToOrdinal.end()) {
48 categoryToOrdinal.insert({svalues[col][row], categoryToOrdinal.size()});
52 OneHotMatrixi = CosanMatrix<NumericType>::Zero(svaluesX.size() / colCat, categoryToOrdinal.size());
53 for (gsl::index row = 0; row < svaluesX.size() / colCat; row++) {
54 OneHotMatrixi(row, categoryToOrdinal[svalues[col][row]]) = 1;
59 for (gsl::index i = 0; i < OneHotMatrixi.cols(); i++) {
66 fmt::print(
"Finish encoding categorical data! Get access to the newly-generated additional matrix via .GetCatMatrix()\n");
67 fmt::print(
"*********************************\n");