Cosan  1.0
Data Analytics Library
Cosan::TimeSeriesSplit Class Reference

#include <timeseriessplit.h>

Inheritance diagram for Cosan::TimeSeriesSplit:
Cosan::Splitter Cosan::Selection Cosan::CosanBO

Public Member Functions

 TimeSeriesSplit ()
 
 TimeSeriesSplit (gsl::index kfoldnumber)
 
 TimeSeriesSplit (gsl::index nrows, gsl::index kfoldnumber)
 
void SetSplit (gsl::index nrows)
 
std::vector< std::tuple< std::vector< gsl::index >, std::vector< gsl::index > > > GetSplit ()
 
- Public Member Functions inherited from Cosan::Splitter
 Splitter ()
 
 Splitter (gsl::index kfoldnumber)
 
 Splitter (gsl::index nrows, gsl::index kfoldnumber)
 
gsl::index GetKFoldNumber ()
 
- Public Member Functions inherited from Cosan::Selection
 Selection ()
 
- Public Member Functions inherited from Cosan::CosanBO
 CosanBO ()
 Default constructor. More...
 
virtual const std::string GetName () const
 Get the name of the objects. More...
 

Private Attributes

std::vector< std::tuple< std::vector< gsl::index >, std::vector< gsl::index > > > split_batch
 

Additional Inherited Members

- Protected Attributes inherited from Cosan::Splitter
gsl::index KFoldNumber = 5
 

Detailed Description

Definition at line 10 of file timeseriessplit.h.

Constructor & Destructor Documentation

◆ TimeSeriesSplit() [1/3]

Cosan::TimeSeriesSplit::TimeSeriesSplit ( )
inline

Definition at line 12 of file timeseriessplit.h.

12 : Splitter() {}

◆ TimeSeriesSplit() [2/3]

Cosan::TimeSeriesSplit::TimeSeriesSplit ( gsl::index  kfoldnumber)
inline

Definition at line 13 of file timeseriessplit.h.

13 : Splitter(kfoldnumber) {}

◆ TimeSeriesSplit() [3/3]

Cosan::TimeSeriesSplit::TimeSeriesSplit ( gsl::index  nrows,
gsl::index  kfoldnumber 
)
inline

Definition at line 14 of file timeseriessplit.h.

14 : Splitter(nrows,kfoldnumber){}

Member Function Documentation

◆ GetSplit()

std::vector< std::tuple<std::vector<gsl::index>,std::vector<gsl::index> > > Cosan::TimeSeriesSplit::GetSplit ( )
inline

Definition at line 39 of file timeseriessplit.h.

39 {return split_batch;}

◆ SetSplit()

void Cosan::TimeSeriesSplit::SetSplit ( gsl::index  nrows)
inlinevirtual

Reimplemented from Cosan::Splitter.

Definition at line 15 of file timeseriessplit.h.

15  {
16  if (nrows <= KFoldNumber) {
17  throw SmallRows;
18  }
19  fmt::print("*********************************\n");
20  fmt::print("Begin Time Series Splitting!!\n");
21 
23  std::vector <gsl::index> idx(nrows);
24  std::iota(idx.begin(), idx.end(), 0);
25  gsl::index foldSize = nrows/(KFoldNumber+1);
26  for (gsl::index i = 1; i<=KFoldNumber;i++){
27 // std::vector<gsl::index> trainidx = std::vector<gsl::index>(idx.begin(), idx.begin()+foldSize*i+nrows%(kfoldnumber+1));
28 // std::vector<gsl::index> testidx = std::vector<gsl::index>(idx.begin()+foldSize*i+nrows%(kfoldnumber+1), idx.begin()+foldSize*(1+i)+nrows%(kfoldnumber+1));
29 // split_batch.push_back({trainidx,testidx});
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",
33  i-1,foldSize*i+nrows%(KFoldNumber+1),foldSize);
34  }
35  fmt::print("End Time Series Splitting!!\n");
36  fmt::print("*********************************\n");
37  }

Member Data Documentation

◆ split_batch

std::vector< std::tuple<std::vector<gsl::index>,std::vector<gsl::index> > > Cosan::TimeSeriesSplit::split_batch
private

Definition at line 41 of file timeseriessplit.h.


The documentation for this class was generated from the following file:
Cosan::SmallRows
Cosan::TooSmallSizeException SmallRows
Cosan::Splitter::Splitter
Splitter()
Definition: selection.h:33
Cosan::Splitter::KFoldNumber
gsl::index KFoldNumber
Definition: selection.h:49
Cosan::TimeSeriesSplit::split_batch
std::vector< std::tuple< std::vector< gsl::index >, std::vector< gsl::index > > > split_batch
Definition: timeseriessplit.h:41