Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TMVA::ExpectedErrorPruneTool Class Reference

A helper class to prune a decision tree using the expected error (C4.5) method.

Uses an upper limit on the error made by the classification done by each node. If the \( \frac{S}{S+B} \) of the node is \( f \), then according to the training sample, the error rate (fraction of misclassified events by this node) is \( (1-f) \). Now \( f \) has a statistical error according to the binomial distribution hence the error on \( f \) can be estimated (same error as the binomial error for efficiency calculations \( (\sigma = \sqrt{\frac{(eff(1-eff)}{nEvts}}) \)

This tool prunes branches from a tree if the expected error of a node is less than that of the sum of the error in its descendants.

Definition at line 54 of file ExpectedErrorPruneTool.h.

Public Member Functions

 ExpectedErrorPruneTool ()
 
virtual ~ExpectedErrorPruneTool ()
 
virtual PruningInfoCalculatePruningInfo (DecisionTree *dt, const IPruneTool::EventSample *testEvents=nullptr, Bool_t isAutomatic=kFALSE)
 
void SetPruneStrengthIncrement (Double_t dalpha)
 
- Public Member Functions inherited from TMVA::IPruneTool
 IPruneTool ()
 
virtual ~IPruneTool ()
 
Double_t GetPruneStrength () const
 
Bool_t IsAutomatic () const
 
void SetAutomatic ()
 
void SetPruneStrength (Double_t alpha)
 

Private Member Functions

Int_t CountNodes (DecisionTreeNode *node, Int_t icount=0)
 
void FindListOfNodes (DecisionTreeNode *node)
 recursive pruning of nodes using the Expected Error Pruning (EEP)
 
Double_t GetNodeError (DecisionTreeNode *node) const
 Calculate an UPPER limit on the error made by the classification done by this node.
 
Double_t GetSubTreeError (DecisionTreeNode *node) const
 calculate the expected statistical error on the subtree below "node" which is used in the expected error pruning
 
MsgLoggerLog () const
 

Private Attributes

Double_t fDeltaPruneStrength
 ! the stepsize for optimizing the pruning strength parameter
 
MsgLoggerfLogger
 ! message logger
 
Double_t fNodePurityLimit
 ! the purity limit for labelling a terminal node as signal
 
std::vector< DecisionTreeNode * > fPruneSequence
 ! the (optimal) prune sequence
 

Additional Inherited Members

- Public Types inherited from TMVA::IPruneTool
typedef std::vector< const Event * > EventSample
 
- Protected Attributes inherited from TMVA::IPruneTool
Double_t B
 
Double_t fPruneStrength
 ! regularization parameter in pruning
 
Double_t S
 

#include <TMVA/ExpectedErrorPruneTool.h>

Inheritance diagram for TMVA::ExpectedErrorPruneTool:
[legend]

Constructor & Destructor Documentation

◆ ExpectedErrorPruneTool()

TMVA::ExpectedErrorPruneTool::ExpectedErrorPruneTool ( )

Definition at line 62 of file ExpectedErrorPruneTool.cxx.

◆ ~ExpectedErrorPruneTool()

TMVA::ExpectedErrorPruneTool::~ExpectedErrorPruneTool ( )
virtual

Definition at line 71 of file ExpectedErrorPruneTool.cxx.

Member Function Documentation

◆ CalculatePruningInfo()

TMVA::PruningInfo * TMVA::ExpectedErrorPruneTool::CalculatePruningInfo ( DecisionTree dt,
const IPruneTool::EventSample testEvents = nullptr,
Bool_t  isAutomatic = kFALSE 
)
virtual

Implements TMVA::IPruneTool.

Definition at line 79 of file ExpectedErrorPruneTool.cxx.

◆ CountNodes()

Int_t TMVA::ExpectedErrorPruneTool::CountNodes ( DecisionTreeNode node,
Int_t  icount = 0 
)
inlineprivate

Definition at line 81 of file ExpectedErrorPruneTool.h.

◆ FindListOfNodes()

void TMVA::ExpectedErrorPruneTool::FindListOfNodes ( DecisionTreeNode node)
private

recursive pruning of nodes using the Expected Error Pruning (EEP)

Definition at line 175 of file ExpectedErrorPruneTool.cxx.

◆ GetNodeError()

Double_t TMVA::ExpectedErrorPruneTool::GetNodeError ( DecisionTreeNode node) const
private

Calculate an UPPER limit on the error made by the classification done by this node.

If the S/S+B of the node is f, then according to the training sample, the error rate (fraction of misclassified events by this node) is (1-f) Now f has a statistical error according to the binomial distribution hence the error on f can be estimated (same error as the binomial error for efficiency calculations \( (\sigma = \sqrt{\frac{(eff(1-eff)}{nEvts}}) \)

Definition at line 219 of file ExpectedErrorPruneTool.cxx.

◆ GetSubTreeError()

Double_t TMVA::ExpectedErrorPruneTool::GetSubTreeError ( DecisionTreeNode node) const
private

calculate the expected statistical error on the subtree below "node" which is used in the expected error pruning

Definition at line 193 of file ExpectedErrorPruneTool.cxx.

◆ Log()

MsgLogger & TMVA::ExpectedErrorPruneTool::Log ( ) const
inlineprivate

Definition at line 78 of file ExpectedErrorPruneTool.h.

◆ SetPruneStrengthIncrement()

void TMVA::ExpectedErrorPruneTool::SetPruneStrengthIncrement ( Double_t  dalpha)
inline

Definition at line 65 of file ExpectedErrorPruneTool.h.

Member Data Documentation

◆ fDeltaPruneStrength

Double_t TMVA::ExpectedErrorPruneTool::fDeltaPruneStrength
private

! the stepsize for optimizing the pruning strength parameter

Definition at line 73 of file ExpectedErrorPruneTool.h.

◆ fLogger

MsgLogger* TMVA::ExpectedErrorPruneTool::fLogger
mutableprivate

! message logger

Definition at line 77 of file ExpectedErrorPruneTool.h.

◆ fNodePurityLimit

Double_t TMVA::ExpectedErrorPruneTool::fNodePurityLimit
private

! the purity limit for labelling a terminal node as signal

Definition at line 74 of file ExpectedErrorPruneTool.h.

◆ fPruneSequence

std::vector<DecisionTreeNode*> TMVA::ExpectedErrorPruneTool::fPruneSequence
private

! the (optimal) prune sequence

Definition at line 75 of file ExpectedErrorPruneTool.h.

Libraries for TMVA::ExpectedErrorPruneTool:

The documentation for this class was generated from the following files: