5 #ifndef COSAN_TIMESERIESSPLIT_H
6 #define COSAN_TIMESERIESSPLIT_H
19 fmt::print(
"*********************************\n");
20 fmt::print(
"Begin Time Series Splitting!!\n");
23 std::vector <gsl::index> idx(nrows);
24 std::iota(idx.begin(), idx.end(), 0);
30 split_batch.push_back({ std::vector<gsl::index>(idx.begin(), idx.begin()+foldSize*i+nrows%(
KFoldNumber+1)),
31 std::vector<gsl::index>(idx.begin()+foldSize*i+nrows%(
KFoldNumber+1), idx.begin()+foldSize*(1+i)+nrows%(
KFoldNumber+1))});
32 fmt::print(
"Current Index is {:}, trainidx size:{:}, testidx size:{:}\n",
35 fmt::print(
"End Time Series Splitting!!\n");
36 fmt::print(
"*********************************\n");
39 std::vector< std::tuple<std::vector<gsl::index>,std::vector<gsl::index> > >
GetSplit() {
return split_batch;}
41 std::vector< std::tuple<std::vector<gsl::index>,std::vector<gsl::index> > >
split_batch;
57 std::vector <gsl::index> idx(nrows);
58 std::iota(idx.begin(), idx.end(), 0);
61 fmt::print(
"*********************************\n");
62 fmt::print(
"Begin Time Series Splitting in Parallel!!\n");
64 #pragma omp parallel for
70 fmt::print(
"Current Index is {:}, the current thread num is {:}, total number of threads {:}. trainidx size:{:}, testidx size:{:}\n",
71 i-1, omp_get_thread_num(),omp_get_num_threads(),foldSize*i+nrows%(
KFoldNumber+1),foldSize);
73 std::vector<gsl::index>(idx.begin()+foldSize*i+nrows%(
KFoldNumber+1), idx.begin()+foldSize*(1+i)+nrows%(
KFoldNumber+1))};
77 fmt::print(
"End Time Series Splitting in Parallel!!\n");
78 fmt::print(
"*********************************\n");
80 std::vector< std::tuple<std::vector<gsl::index>,std::vector<gsl::index> > > &
GetSplit() {
return split_batch;}
82 std::vector< std::tuple<std::vector<gsl::index>,std::vector<gsl::index> > >
split_batch;
86 #endif //COSAN_TIMESERIESSPLIT_H