1#ifndef FSTDATASPLITTERCV_H
2#define FSTDATASPLITTERCV_H
105template<
class INTERVALCONTAINER,
typename IDXTYPE>
106class Data_Splitter_CV :
public Clonable_Impl<Data_Splitter_CV<INTERVALCONTAINER,IDXTYPE>,Data_Splitter<INTERVALCONTAINER,IDXTYPE>,CLONE_INHERIT,CLONE_INHERIT,CLONE_DEEP> {
114 virtual std::ostream&
print(std::ostream& os)
const override {os <<
"Data_Splitter_CV(" <<
kfold <<
")";
return os;}
118 virtual const char*
splitter_name()
const override {
return "Data_Splitter_CV";}
CRTP mixin implementing the Clonable protocol for a concrete class.
Definition clonable.hpp:184
Implements train/test data splitting: by means of k-fold cross-validation.
Definition data_splitter_cv.hpp:106
virtual bool prepareFirstSplit() override
set up split-sequence state; false = no split can be made
Definition data_splitter_cv.hpp:119
virtual void splitClassFirst(typename TCC::ClassIterator c, const unsigned int cidx) override
write first-split train/test intervals of class cidx (c is that class's entry in csplit)
Definition data_splitter_cv.hpp:126
virtual void finishSplit() override
post-loop state update shared by first/next split
Definition data_splitter_cv.hpp:146
std::vector< IDXTYPE > tmpstartidx
Definition data_splitter_cv.hpp:152
Data_Splitter< INTERVALLER, IDXTYPE > TCC
Definition data_splitter_cv.hpp:116
std::vector< IDXTYPE > tmpn
Definition data_splitter_cv.hpp:151
const IDXTYPE kfold
Definition data_splitter_cv.hpp:148
virtual bool prepareNextSplit() override
advance split-sequence state; false = no more splits
Definition data_splitter_cv.hpp:125
virtual std::ostream & print(std::ostream &os) const override
writes a human-readable identification of the splitter and its configuration; base default writes not...
Definition data_splitter_cv.hpp:114
Clonable_Impl< Data_Splitter_CV, Data_Splitter< INTERVALLER, IDXTYPE >, CLONE_INHERIT, CLONE_INHERIT, CLONE_DEEP > parent_impl
Definition data_splitter_cv.hpp:108
virtual void splitClassNext(typename TCC::ClassIterator c, const unsigned int cidx) override
write next-split train/test intervals of class cidx (a single-split splitter never gets here,...
Definition data_splitter_cv.hpp:137
Data_Splitter_CV(const Data_Splitter_CV &dsp)
copies configuration only; a split sequence in progress is not reproduced (prepareFirstSplit() sets t...
Definition data_splitter_cv.hpp:110
virtual const char * splitter_name() const override
class name, used in error messages
Definition data_splitter_cv.hpp:118
Data_Splitter_CV(const IDXTYPE _kfold)
_kfold-fold cross-validation (_kfold must be > 1)
Definition data_splitter_cv.hpp:109
IDXTYPE tmpod
Definition data_splitter_cv.hpp:150
virtual IDXTYPE getNoOfSplits() const override
Definition data_splitter_cv.hpp:112
Abstract class, defines interface for data splitting implementations (for use in data accessors).
Definition data_splitter.hpp:124
std::vector< PClassSplitter > csplit
one TClassSplitter per data class, indexed by class index; grown on demand by assign()/set_n()
Definition data_splitter.hpp:173
std::vector< PClassSplitter >::const_iterator ClassIterator
iterator over csplit, as passed to the per-class splitClassFirst()/splitClassNext() hooks
Definition data_splitter.hpp:174
Defines interface for data splitting implementations (for use in data accessors).
FST4 specific error passing class.
The Feature Selection Toolbox 4 library: every library component – data access, criteria and classifi...
Definition data_accessor.hpp:80
@ CLONE_DEEP
new Derived(*this), then set_cloned()
Definition clonable.hpp:149
@ CLONE_INHERIT
do not add behavior; defer to the Base class body (typically a family-level throwing default)
Definition clonable.hpp:147
void notify(const std::string msg)
Prints msg followed by a newline via syncout::print(); a no-op unless the preprocessor macro DEBUG is...
Definition global.hpp:112
Support structure to hold data interval (referring into data held by data accessor).
Definition data_intervaller.hpp:88