1#ifndef FSTDATASPLITTERLEAVE1OUT_H
2#define FSTDATASPLITTERLEAVE1OUT_H
99template<
class INTERVALCONTAINER,
typename IDXTYPE>
100class Data_Splitter_Leave1Out :
public Clonable_Impl<Data_Splitter_Leave1Out<INTERVALCONTAINER,IDXTYPE>,Data_Splitter<INTERVALCONTAINER,IDXTYPE>,CLONE_INHERIT,CLONE_INHERIT,CLONE_DEEP> {
103 Data_Splitter_Leave1Out() :
parent_impl() {
notify(
"Data_Splitter_Leave1Out (empty) constructor.");}
111 virtual std::ostream&
print(std::ostream& os)
const override {os <<
"Data_Splitter_Leave1Out()";
return os;}
115 virtual const char*
splitter_name()
const override {
return "Data_Splitter_Leave1Out";}
125 if(
pivot>=(*pivotclass)->n) {
144 (*c)->train->clear();
159template<
class INTERVALCONTAINER,
typename IDXTYPE>
CRTP mixin implementing the Clonable protocol for a concrete class.
Definition clonable.hpp:184
Implements train/test data splitting: by means of leave-one-out.
Definition data_splitter_leave1out.hpp:100
virtual const char * splitter_name() const override
class name, used in error messages
Definition data_splitter_leave1out.hpp:115
virtual IDXTYPE getNoOfSplits() const override
Definition data_splitter_leave1out.hpp:160
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_leave1out.hpp:111
Data_Splitter< INTERVALLER, IDXTYPE > TCC
Definition data_splitter_leave1out.hpp:113
TCC::ClassIterator pivotclass
Definition data_splitter_leave1out.hpp:156
virtual void splitClassFirst(typename TCC::ClassIterator c, const unsigned int) override
write first-split train/test intervals of class cidx (c is that class's entry in csplit)
Definition data_splitter_leave1out.hpp:133
IDXTYPE pivot
Definition data_splitter_leave1out.hpp:155
virtual void splitClassNext(typename TCC::ClassIterator c, const unsigned int) override
write next-split train/test intervals of class cidx (a single-split splitter never gets here,...
Definition data_splitter_leave1out.hpp:142
virtual bool prepareFirstSplit() override
set up split-sequence state; false = no split can be made
Definition data_splitter_leave1out.hpp:116
Clonable_Impl< Data_Splitter_Leave1Out, Data_Splitter< INTERVALLER, IDXTYPE >, CLONE_INHERIT, CLONE_INHERIT, CLONE_DEEP > parent_impl
Definition data_splitter_leave1out.hpp:102
Data_Splitter_Leave1Out(const Data_Splitter_Leave1Out &dsp)
Definition data_splitter_leave1out.hpp:107
virtual void finishSplit() override
post-loop state update shared by first/next split
Definition data_splitter_leave1out.hpp:153
virtual bool prepareNextSplit() override
advance split-sequence state; false = no more splits
Definition data_splitter_leave1out.hpp:123
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