32#ifndef ROOT_TMVA_DecisionTree 
   33#define ROOT_TMVA_DecisionTree 
   97      virtual const char* 
ClassName()
 const { 
return "DecisionTree"; }
 
#define ClassDef(name, id)
 
#define TMVA_VERSION_CODE
 
Base class for BinarySearch and Decision Trees.
 
Class that contains all the data information.
 
Implementation of a Decision Tree.
 
Bool_t DoRegression() const
 
Int_t fNNodesBeforePruning
 
void SetAnalysisType(Types::EAnalysisType t)
 
void SetUseExclusiveVars(Bool_t t=kTRUE)
 
Double_t GetNodePurityLimit() const
 
void FillTree(const EventList &eventSample)
fill the existing the decision tree structure by filling event in from the top node and see where the...
 
void PruneNode(TMVA::DecisionTreeNode *node)
prune away the subtree below the node
 
void SetPruneMethod(EPruneMethod m=kCostComplexityPruning)
 
void ApplyValidationSample(const EventConstList *validationSample) const
run the validation sample through the (pruned) tree and fill in the nodes the variables NSValidation ...
 
Double_t TrainNodeFull(const EventConstList &eventSample, DecisionTreeNode *node)
train a node by finding the single optimal cut for a single variable that best separates signal and b...
 
EPruneMethod fPruneMethod
 
std::vector< TMVA::Event * > EventList
 
virtual DecisionTreeNode * GetRoot() const
 
TMVA::DecisionTreeNode * GetEventNode(const TMVA::Event &e) const
get the pointer to the leaf node where a particular event ends up in... (used in gradient boosting)
 
static const Int_t fgDebugLevel
 
SeparationBase * fSepType
 
void SetUseFisherCuts(Bool_t t=kTRUE)
 
virtual const char * ClassName() const
 
void SetNodePurityLimit(Double_t p)
 
void GetRandomisedVariables(Bool_t *useVariable, UInt_t *variableMap, UInt_t &nVars)
 
virtual DecisionTreeNode * CreateNode(UInt_t) const
 
virtual BinaryTree * CreateTree() const
 
UInt_t CleanTree(DecisionTreeNode *node=NULL)
remove those last splits that result in two leaf nodes that are both of the type (i....
 
void SetPruneStrength(Double_t p)
 
Double_t TrainNode(const EventConstList &eventSample, DecisionTreeNode *node)
 
std::vector< const TMVA::Event * > EventConstList
 
Double_t fNodePurityLimit
 
Double_t CheckEvent(const TMVA::Event *, Bool_t UseYesNoLeaf=kFALSE) const
the event e is put into the decision tree (starting at the root node) and the output is NodeType (sig...
 
static const Int_t fgRandomSeed
 
void SetTreeID(Int_t treeID)
 
UInt_t BuildTree(const EventConstList &eventSample, DecisionTreeNode *node=NULL)
building the decision tree by recursively calling the splitting of one (root-) node into two daughter...
 
Double_t fMinLinCorrForFisher
 
Double_t PruneTree(const EventConstList *validationSample=NULL)
prune (get rid of internal nodes) the Decision tree to avoid overtraining several different pruning m...
 
virtual ~DecisionTree(void)
destructor
 
Types::EAnalysisType fAnalysisType
 
std::vector< Double_t > GetVariableImportance()
Return the relative variable importance, normalized to all variables together having the importance 1...
 
void CheckEventWithPrunedTree(const TMVA::Event *) const
pass a single validation event through a pruned decision tree on the way down the tree,...
 
void PruneNodeInPlace(TMVA::DecisionTreeNode *node)
prune a node temporarily (without actually deleting its descendants which allows testing the pruned t...
 
std::vector< Double_t > fVariableImportance
 
void FillEvent(const TMVA::Event &event, TMVA::DecisionTreeNode *node)
fill the existing the decision tree structure by filling event in from the top node and see where the...
 
UInt_t CountLeafNodes(TMVA::Node *n=NULL)
return the number of terminal nodes in the sub-tree below Node n
 
Int_t GetNNodesBeforePruning()
 
Double_t TestPrunedTreeQuality(const DecisionTreeNode *dt=NULL, Int_t mode=0) const
return the misclassification rate of a pruned tree a "pruned tree" may have set the variable "IsTermi...
 
DataSetInfo * fDataSetInfo
 
void ClearTree()
clear the tree nodes (their S/N, Nevents etc), just keep the structure of the tree
 
static DecisionTree * CreateFromXML(void *node, UInt_t tmva_Version_Code=TMVA_VERSION_CODE)
re-create a new tree (decision tree or search tree) from XML
 
Double_t SamplePurity(EventList eventSample)
calculates the purity S/(S+B) of a given event sample
 
void SetParentTreeInNodes(Node *n=NULL)
descend a tree to find all its leaf nodes, fill max depth reached in the tree at the same time.
 
Node * GetNode(ULong_t sequence, UInt_t depth)
retrieve node from the tree.
 
std::vector< Double_t > GetFisherCoefficients(const EventConstList &eventSample, UInt_t nFisherVars, UInt_t *mapVarInFisher)
calculate the fisher coefficients for the event sample and the variables used
 
Double_t TrainNodeFast(const EventConstList &eventSample, DecisionTreeNode *node)
Decide how to split a node using one of the variables that gives the best separation of signal/backgr...
 
Types::EAnalysisType GetAnalysisType(void)
 
void DescendTree(Node *n=NULL)
descend a tree to find all its leaf nodes
 
void SetMinLinCorrForFisher(Double_t min)
 
RegressionVariance * fRegType
 
DecisionTree(void)
default constructor using the GiniIndex as separation criterion, no restrictions on minium number of ...
 
Double_t GetSumWeights(const EventConstList *validationSample) const
calculate the normalization factor for a pruning validation sample
 
Double_t GetPruneStrength() const
 
Node for the BinarySearch or Decision Trees.
 
Calculate the "SeparationGain" for Regression analysis separation criteria used in various training a...
 
An interface to calculate the "SeparationGain" for different separation criteria used in various trai...
 
Random number generator class based on M.
 
create variable transformations