64 fDeltaPruneStrength(0),
66 fLogger( new
MsgLogger(
"ExpectedErrorPruneTool") )
86 Log() << kWARNING <<
"Sorry automatic pruning strength determination is not implemented yet" <<
Endl;
88 if( dt == NULL || (IsAutomatic() && validationSample == NULL) ) {
97 Log() << kFATAL <<
"Sorry automatic pruning strength determination is not implemented yet" <<
Endl;
168 return new PruningInfo( -1.0, fPruneStrength, fPruneSequence );
180 this->FindListOfNodes(
l);
181 this->FindListOfNodes(
r);
182 if (this->GetSubTreeError(node) >= this->GetNodeError(node)) {
184 fPruneSequence.push_back(node);
199 (
l->GetNEvents() * this->GetSubTreeError(
l) +
200 r->GetNEvents() * this->GetSubTreeError(
r)) /
205 return this->GetNodeError(node);
232 errorRate = std::min(1.0,(1.0 - (
f-fPruneStrength*df)));
virtual DecisionTreeNode * GetLeft() const
Int_t GetNodeType(void) const
Float_t GetNEvents(void) const
Float_t GetPurity(void) const
Bool_t IsTerminal() const
virtual DecisionTreeNode * GetRight() const
Implementation of a Decision Tree.
Double_t GetNodePurityLimit() const
virtual DecisionTreeNode * GetRoot() const
ostringstream derivative to redirect and format output
MsgLogger & Endl(MsgLogger &ml)
Double_t Sqrt(Double_t x)