61 fDeltaPruneStrength(0),
63 fLogger( new
MsgLogger(
"ExpectedErrorPruneTool") )
83 Log() << kWARNING <<
"Sorry automatic pruning strength determination is not implemented yet" <<
Endl;
85 if( dt == NULL || (IsAutomatic() && validationSample == NULL) ) {
94 Log() << kFATAL <<
"Sorry automatic pruning strength determination is not implemented yet" <<
Endl;
165 return new PruningInfo( -1.0, fPruneStrength, fPruneSequence );
177 this->FindListOfNodes(
l);
178 this->FindListOfNodes(
r);
179 if (this->GetSubTreeError(node) >= this->GetNodeError(node)) {
181 fPruneSequence.push_back(node);
196 (
l->GetNEvents() * this->GetSubTreeError(
l) +
197 r->GetNEvents() * this->GetSubTreeError(
r)) /
202 return this->GetNodeError(node);
229 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)