|
ROOT
Reference Guide |
|
Go to the documentation of this file.
32 #ifndef ROOT_TMVA_DecisionTree
33 #define ROOT_TMVA_DecisionTree
98 virtual const char*
ClassName()
const {
return "DecisionTree"; }
Calculate the "SeparationGain" for Regression analysis separation criteria used in various training a...
void SetNodePurityLimit(Double_t p)
Types::EAnalysisType fAnalysisType
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 fMinLinCorrForFisher
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.
void SetAnalysisType(Types::EAnalysisType t)
void FillTree(const EventList &eventSample)
fill the existing the decision tree structure by filling event in from the top node and see where the...
Int_t GetNNodesBeforePruning()
EPruneMethod fPruneMethod
DecisionTree(void)
default constructor using the GiniIndex as separation criterion, no restrictions on minium number of ...
static const Int_t fgRandomSeed
void SetPruneMethod(EPruneMethod m=kCostComplexityPruning)
void SetUseFisherCuts(Bool_t t=kTRUE)
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...
virtual const char * ClassName() const
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...
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...
UInt_t CountLeafNodes(TMVA::Node *n=NULL)
return the number of terminal nodes in the sub-tree below Node n
Int_t fNNodesBeforePruning
Node for the BinarySearch or Decision Trees.
void SetUseExclusiveVars(Bool_t t=kTRUE)
void PruneNode(TMVA::DecisionTreeNode *node)
prune away the subtree below the node
Implementation of a Decision Tree.
Double_t GetNodePurityLimit() const
UInt_t CleanTree(DecisionTreeNode *node=NULL)
remove those last splits that result in two leaf nodes that are both of the type (i....
virtual ~DecisionTree(void)
destructor
void GetRandomisedVariables(Bool_t *useVariable, UInt_t *variableMap, UInt_t &nVars)
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
virtual DecisionTreeNode * GetRoot() const
void CheckEventWithPrunedTree(const TMVA::Event *) const
pass a single validation event through a pruned decision tree on the way down the tree,...
Class that contains all the data information.
TMVA::DecisionTreeNode * GetEventNode(const TMVA::Event &e) const
get the pointer to the leaf node where a particular event ends up in...
Random number generator class based on M.
void SetMinLinCorrForFisher(Double_t min)
Base class for BinarySearch and Decision Trees.
static const Int_t fgDebugLevel
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...
void ApplyValidationSample(const EventConstList *validationSample) const
run the validation sample through the (pruned) tree and fill in the nodes the variables NSValidation ...
Double_t GetPruneStrength() const
void SetTreeID(Int_t treeID)
void SetPruneStrength(Double_t p)
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...
Bool_t DoRegression() const
std::vector< Double_t > fVariableImportance
An interface to calculate the "SeparationGain" for different separation criteria used in various trai...
Double_t PruneTree(const EventConstList *validationSample=NULL)
prune (get rid of internal nodes) the Decision tree to avoid overtraining several different pruning m...
std::vector< TMVA::Event * > EventList
DataSetInfo * fDataSetInfo
#define TMVA_VERSION_CODE
void ClearTree()
clear the tree nodes (their S/N, Nevents etc), just keep the structure of the tree
Double_t GetSumWeights(const EventConstList *validationSample) const
calculate the normalization factor for a pruning validation sample
virtual BinaryTree * CreateTree() const
#define ClassDef(name, id)
std::vector< Double_t > GetVariableImportance()
Return the relative variable importance, normalized to all variables together having the importance 1...
void DescendTree(Node *n=NULL)
descend a tree to find all its leaf nodes
Node * GetNode(ULong_t sequence, UInt_t depth)
retrieve node from the tree.
SeparationBase * fSepType
Double_t fNodePurityLimit
void PruneNodeInPlace(TMVA::DecisionTreeNode *node)
prune a node temporarily (without actually deleting its descendants which allows testing the pruned t...
virtual DecisionTreeNode * CreateNode(UInt_t) const
Double_t SamplePurity(EventList eventSample)
calculates the purity S/(S+B) of a given event sample
RegressionVariance * fRegType
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...
Double_t TrainNode(const EventConstList &eventSample, DecisionTreeNode *node)
std::vector< const TMVA::Event * > EventConstList
Types::EAnalysisType GetAnalysisType(void)
create variable transformations