ROOT
6.06/09
Reference Guide
|
Definition at line 73 of file DecisionTree.h.
Public Types | |
enum | EPruneMethod { kExpectedErrorPruning =0, kCostComplexityPruning, kNoPruning } |
typedef std::vector< TMVA::Event * > | EventList |
typedef std::vector< const TMVA::Event * > | EventConstList |
Public Member Functions | |
DecisionTree (void) | |
DecisionTree (SeparationBase *sepType, Float_t minSize, Int_t nCuts, DataSetInfo *=NULL, UInt_t cls=0, Bool_t randomisedTree=kFALSE, Int_t useNvars=0, Bool_t usePoissonNvars=kFALSE, UInt_t nMaxDepth=9999999, Int_t iSeed=fgRandomSeed, Float_t purityLimit=0.5, Int_t treeID=0) | |
constructor specifying the separation type, the min number of events in a no that is still subjected to further splitting, the number of bins in the grid used in applying the cut for the node splitting. More... | |
DecisionTree (const DecisionTree &d) | |
copy constructor that creates a true copy, i.e. More... | |
virtual | ~DecisionTree (void) |
destructor More... | |
virtual DecisionTreeNode * | GetRoot () const |
virtual DecisionTreeNode * | CreateNode (UInt_t) const |
virtual BinaryTree * | CreateTree () const |
virtual const char * | ClassName () const |
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 nodes (returns the number of nodes) More... | |
Double_t | TrainNode (const EventConstList &eventSample, DecisionTreeNode *node) |
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/background. More... | |
Double_t | TrainNodeFull (const EventConstList &eventSample, DecisionTreeNode *node) |
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 More... | |
void | FillTree (const EventList &eventSample) |
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 they happen to end up More... | |
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 (signal) or (background) of the final node (basket) in which the given events ends up. More... | |
TMVA::DecisionTreeNode * | GetEventNode (const TMVA::Event &e) const |
get the pointer to the leaf node where a particular event ends up in... More... | |
std::vector< Double_t > | GetVariableImportance () |
Return the relative variable importance, normalized to all variables together having the importance 1. More... | |
Double_t | GetVariableImportance (UInt_t ivar) |
returns the relative improtance of variable ivar More... | |
void | ClearTree () |
clear the tree nodes (their S/N, Nevents etc), just keep the structure of the tree More... | |
void | SetPruneMethod (EPruneMethod m=kCostComplexityPruning) |
Double_t | PruneTree (const EventConstList *validationSample=NULL) |
prune (get rid of internal nodes) the Decision tree to avoid overtraining serveral different pruning methods can be applied as selected by the variable "fPruneMethod". More... | |
void | SetPruneStrength (Double_t p) |
Double_t | GetPruneStrength () const |
void | ApplyValidationSample (const EventConstList *validationSample) const |
run the validation sample through the (pruned) tree and fill in the nodes the variables NSValidation and NBValidadtion (i.e. More... | |
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 "IsTerminal" to "arbitrary" at any node, hence this tree quality testing will stop there, hence test the pruned tree (while the full tree is still in place for normal/later use) More... | |
void | CheckEventWithPrunedTree (const TMVA::Event *) const |
pass a single validation event throught a pruned decision tree on the way down the tree, fill in all the "intermediate" information that would normally be there from training. More... | |
Double_t | GetSumWeights (const EventConstList *validationSample) const |
calculate the normalization factor for a pruning validation sample More... | |
void | SetNodePurityLimit (Double_t p) |
Double_t | GetNodePurityLimit () const |
void | DescendTree (Node *n=NULL) |
descend a tree to find all its leaf nodes More... | |
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. More... | |
Node * | GetNode (ULong_t sequence, UInt_t depth) |
retrieve node from the tree. More... | |
UInt_t | CleanTree (DecisionTreeNode *node=NULL) |
remove those last splits that result in two leaf nodes that are both of the type (i.e. More... | |
void | PruneNode (TMVA::DecisionTreeNode *node) |
prune away the subtree below the node More... | |
void | PruneNodeInPlace (TMVA::DecisionTreeNode *node) |
prune a node temporaily (without actually deleting its decendants which allows testing the pruned tree quality for many different pruning stages without "touching" the tree. More... | |
Int_t | GetNNodesBeforePruning () |
UInt_t | CountLeafNodes (TMVA::Node *n=NULL) |
return the number of terminal nodes in the sub-tree below Node n More... | |
void | SetTreeID (Int_t treeID) |
Int_t | GetTreeID () |
Bool_t | DoRegression () const |
void | SetAnalysisType (Types::EAnalysisType t) |
Types::EAnalysisType | GetAnalysisType (void) |
void | SetUseFisherCuts (Bool_t t=kTRUE) |
void | SetMinLinCorrForFisher (Double_t min) |
void | SetUseExclusiveVars (Bool_t t=kTRUE) |
void | SetNVars (Int_t n) |
Public Member Functions inherited from TMVA::BinaryTree | |
BinaryTree (void) | |
virtual | ~BinaryTree () |
destructor (deletes the nodes and "events" if owned by the tree More... | |
void | SetRoot (Node *r) |
UInt_t | GetNNodes () const |
UInt_t | CountNodes (Node *n=NULL) |
return the number of nodes in the tree. (make a new count –> takes time) More... | |
UInt_t | GetTotalTreeDepth () const |
void | SetTotalTreeDepth (Int_t depth) |
void | SetTotalTreeDepth (Node *n=NULL) |
descend a tree to find all its leaf nodes, fill max depth reached in the tree at the same time. More... | |
Node * | GetLeftDaughter (Node *n) |
get left daughter node current node "n" More... | |
Node * | GetRightDaughter (Node *n) |
get right daughter node current node "n" More... | |
virtual void | Print (std::ostream &os) const |
recursively print the tree More... | |
virtual void | Read (std::istream &istr, UInt_t tmva_Version_Code=TMVA_VERSION_CODE) |
Read the binary tree from an input stream. More... | |
virtual void * | AddXMLTo (void *parent) const |
add attributes to XML More... | |
virtual void | ReadXML (void *node, UInt_t tmva_Version_Code=TMVA_VERSION_CODE) |
read attributes from XML More... | |
Static Public Member Functions | |
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 More... | |
Private Member Functions | |
Double_t | SamplePurity (EventList eventSample) |
calculates the purity S/(S+B) of a given event sample More... | |
Static Private Attributes | |
static const Int_t | fgRandomSeed = 0 |
static const Int_t | fgDebugLevel = 0 |
Additional Inherited Members | |
Protected Member Functions inherited from TMVA::BinaryTree | |
void | DeleteNode (Node *) |
protected, recursive, function used by the class destructor and when Pruning More... | |
MsgLogger & | Log () const |
Protected Attributes inherited from TMVA::BinaryTree | |
Node * | fRoot |
UInt_t | fNNodes |
UInt_t | fDepth |
#include <TMVA/DecisionTree.h>
typedef std::vector<const TMVA::Event*> TMVA::DecisionTree::EventConstList |
Definition at line 82 of file DecisionTree.h.
typedef std::vector<TMVA::Event*> TMVA::DecisionTree::EventList |
Definition at line 81 of file DecisionTree.h.
Enumerator | |
---|---|
kExpectedErrorPruning | |
kCostComplexityPruning | |
kNoPruning |
Definition at line 147 of file DecisionTree.h.
TMVA::DecisionTree::DecisionTree | ( | void | ) |
Referenced by CreateTree().
TMVA::DecisionTree::DecisionTree | ( | TMVA::SeparationBase * | sepType, |
Float_t | minSize, | ||
Int_t | nCuts, | ||
DataSetInfo * | dataInfo = NULL , |
||
UInt_t | cls = 0 , |
||
Bool_t | randomisedTree = kFALSE , |
||
Int_t | useNvars = 0 , |
||
Bool_t | usePoissonNvars = kFALSE , |
||
UInt_t | nMaxDepth = 9999999 , |
||
Int_t | iSeed = fgRandomSeed , |
||
Float_t | purityLimit = 0.5 , |
||
Int_t | treeID = 0 |
||
) |
constructor specifying the separation type, the min number of events in a no that is still subjected to further splitting, the number of bins in the grid used in applying the cut for the node splitting.
Definition at line 133 of file DecisionTree.cxx.
TMVA::DecisionTree::DecisionTree | ( | const DecisionTree & | d | ) |
copy constructor that creates a true copy, i.e.
a completely independent tree the node copy will recursively copy all the nodes
Definition at line 183 of file DecisionTree.cxx.
|
virtual |
destructor
Definition at line 218 of file DecisionTree.cxx.
void TMVA::DecisionTree::ApplyValidationSample | ( | const EventConstList * | validationSample | ) | const |
run the validation sample through the (pruned) tree and fill in the nodes the variables NSValidation and NBValidadtion (i.e.
how many of the Signal and Background events from the validation sample. This is then later used when asking for the "tree quality" ..
Definition at line 671 of file DecisionTree.cxx.
Referenced by TMVA::CostComplexityPruneTool::CalculatePruningInfo().
UInt_t TMVA::DecisionTree::BuildTree | ( | const EventConstList & | eventSample, |
DecisionTreeNode * | node = NULL |
||
) |
building the decision tree by recursively calling the splitting of one (root-) node into two daughter nodes (returns the number of nodes)
Definition at line 277 of file DecisionTree.cxx.
Referenced by TMVA::RuleFit::BuildTree().
Double_t TMVA::DecisionTree::CheckEvent | ( | const TMVA::Event * | e, |
Bool_t | UseYesNoLeaf = kFALSE |
||
) | const |
the event e is put into the decision tree (starting at the root node) and the output is NodeType (signal) or (background) of the final node (basket) in which the given events ends up.
I.e. the result of the classification if the event for this decision tree.
Definition at line 1693 of file DecisionTree.cxx.
Referenced by TMVA::MethodBDT::AdaBoost(), TMVA::MethodBDT::AdaBoostR2(), TMVA::MethodBDT::AdaCost(), TMVA::RuleFit::Boost(), TMVA::MethodDT::TestTreeQuality(), and TMVA::MethodBDT::TestTreeQuality().
void TMVA::DecisionTree::CheckEventWithPrunedTree | ( | const TMVA::Event * | e | ) | const |
pass a single validation event throught a pruned decision tree on the way down the tree, fill in all the "intermediate" information that would normally be there from training.
Definition at line 727 of file DecisionTree.cxx.
|
inlinevirtual |
Implements TMVA::BinaryTree.
Definition at line 106 of file DecisionTree.h.
UInt_t TMVA::DecisionTree::CleanTree | ( | DecisionTreeNode * | node = NULL | ) |
remove those last splits that result in two leaf nodes that are both of the type (i.e.
both signal or both background) this of course is only a reasonable thing to do when you use "YesOrNo" leafs, while it might loose s.th. if you use the purity information in the nodes. –> hence I don't call it automatically in the tree building
Definition at line 575 of file DecisionTree.cxx.
void TMVA::DecisionTree::ClearTree | ( | ) |
clear the tree nodes (their S/N, Nevents etc), just keep the structure of the tree
Definition at line 561 of file DecisionTree.cxx.
UInt_t TMVA::DecisionTree::CountLeafNodes | ( | TMVA::Node * | n = NULL | ) |
return the number of terminal nodes in the sub-tree below Node n
Definition at line 775 of file DecisionTree.cxx.
|
static |
re-create a new tree (decision tree or search tree) from XML
Definition at line 263 of file DecisionTree.cxx.
Referenced by TMVA::MethodBDT::ReadWeightsFromXML().
|
inlinevirtual |
Implements TMVA::BinaryTree.
Definition at line 103 of file DecisionTree.h.
|
inlinevirtual |
Implements TMVA::BinaryTree.
Definition at line 104 of file DecisionTree.h.
descend a tree to find all its leaf nodes
Definition at line 804 of file DecisionTree.cxx.
|
inline |
Definition at line 196 of file DecisionTree.h.
void TMVA::DecisionTree::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 they happen to end up
Definition at line 527 of file DecisionTree.cxx.
Definition at line 513 of file DecisionTree.cxx.
|
inline |
Definition at line 198 of file DecisionTree.h.
TMVA::DecisionTreeNode * TMVA::DecisionTree::GetEventNode | ( | const TMVA::Event & | e | ) | const |
get the pointer to the leaf node where a particular event ends up in...
(used in gradient boosting)
Definition at line 1676 of file DecisionTree.cxx.
Referenced by TMVA::MethodBDT::GradBoost(), and TMVA::MethodBDT::GradBoostRegression().
std::vector< Double_t > TMVA::DecisionTree::GetFisherCoefficients | ( | const EventConstList & | eventSample, |
UInt_t | nFisherVars, | ||
UInt_t * | mapVarInFisher | ||
) |
calculate the fisher coefficients for the event sample and the variables used
Definition at line 1350 of file DecisionTree.cxx.
|
inline |
Definition at line 188 of file DecisionTree.h.
Referenced by TMVA::MethodDT::GetNNodesBeforePruning().
TMVA::Node * TMVA::DecisionTree::GetNode | ( | ULong_t | sequence, |
UInt_t | depth | ||
) |
retrieve node from the tree.
Its position (up to a maximal tree depth of 64) is coded as a sequence of left-right moves starting from the root, coded as 0-1 bit patterns stored in the "long-integer" (i.e. 0:left ; 1:right
Definition at line 875 of file DecisionTree.cxx.
|
inline |
Definition at line 170 of file DecisionTree.h.
Referenced by TMVA::ExpectedErrorPruneTool::CalculatePruningInfo(), TMVA::CostComplexityPruneTool::CalculatePruningInfo(), and TMVA::MethodDT::TestTreeQuality().
|
inline |
Definition at line 155 of file DecisionTree.h.
void TMVA::DecisionTree::GetRandomisedVariables | ( | Bool_t * | useVariable, |
UInt_t * | variableMap, | ||
UInt_t & | nVars | ||
) |
Definition at line 892 of file DecisionTree.cxx.
|
inlinevirtual |
Reimplemented from TMVA::BinaryTree.
Definition at line 102 of file DecisionTree.h.
Referenced by TMVA::RuleEnsemble::CalcNRules(), TMVA::ExpectedErrorPruneTool::CalculatePruningInfo(), TMVA::CostComplexityPruneTool::CalculatePruningInfo(), TMVA::CCTreeWrapper::CCTreeWrapper(), DecisionTree(), TMVA::StatDialogBDTReg::DrawTree(), TMVA::StatDialogBDT::DrawTree(), TMVA::RuleEnsemble::MakeRulesFromTree(), and TMVA::CostComplexityPruneTool::Optimize().
Double_t TMVA::DecisionTree::GetSumWeights | ( | const EventConstList * | validationSample | ) | const |
calculate the normalization factor for a pruning validation sample
Definition at line 760 of file DecisionTree.cxx.
Referenced by TMVA::CostComplexityPruneTool::CalculatePruningInfo().
|
inline |
Definition at line 194 of file DecisionTree.h.
Referenced by TMVA::CostComplexityPruneTool::CalculatePruningInfo(), and TMVA::CostComplexityPruneTool::Optimize().
vector< Double_t > TMVA::DecisionTree::GetVariableImportance | ( | ) |
Return the relative variable importance, normalized to all variables together having the importance 1.
The importance in evaluated as the total separation-gain that this variable had in the decision trees (weighted by the number of events)
Definition at line 1746 of file DecisionTree.cxx.
returns the relative improtance of variable ivar
Definition at line 1767 of file DecisionTree.cxx.
void TMVA::DecisionTree::PruneNode | ( | TMVA::DecisionTreeNode * | node | ) |
prune away the subtree below the node
Definition at line 838 of file DecisionTree.cxx.
void TMVA::DecisionTree::PruneNodeInPlace | ( | TMVA::DecisionTreeNode * | node | ) |
prune a node temporaily (without actually deleting its decendants which allows testing the pruned tree quality for many different pruning stages without "touching" the tree.
Definition at line 861 of file DecisionTree.cxx.
Referenced by TMVA::CostComplexityPruneTool::Optimize().
Double_t TMVA::DecisionTree::PruneTree | ( | const EventConstList * | validationSample = NULL | ) |
prune (get rid of internal nodes) the Decision tree to avoid overtraining serveral different pruning methods can be applied as selected by the variable "fPruneMethod".
Definition at line 602 of file DecisionTree.cxx.
Referenced by TMVA::RuleFit::BuildTree().
calculates the purity S/(S+B) of a given event sample
Definition at line 1723 of file DecisionTree.cxx.
|
inline |
Definition at line 197 of file DecisionTree.h.
Definition at line 200 of file DecisionTree.h.
Definition at line 169 of file DecisionTree.h.
Definition at line 202 of file DecisionTree.h.
Referenced by TMVA::RuleFit::MakeForest().
descend a tree to find all its leaf nodes, fill max depth reached in the tree at the same time.
Definition at line 230 of file DecisionTree.cxx.
Referenced by DecisionTree().
|
inline |
Definition at line 148 of file DecisionTree.h.
Referenced by TMVA::RuleFit::BuildTree().
Definition at line 154 of file DecisionTree.h.
Referenced by TMVA::RuleFit::BuildTree().
Definition at line 193 of file DecisionTree.h.
Definition at line 201 of file DecisionTree.h.
Definition at line 199 of file DecisionTree.h.
Double_t TMVA::DecisionTree::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 "IsTerminal" to "arbitrary" at any node, hence this tree quality testing will stop there, hence test the pruned tree (while the full tree is still in place for normal/later use)
Definition at line 685 of file DecisionTree.cxx.
Referenced by TMVA::CostComplexityPruneTool::CalculatePruningInfo(), and TMVA::CostComplexityPruneTool::Optimize().
|
inline |
Definition at line 116 of file DecisionTree.h.
Double_t TMVA::DecisionTree::TrainNodeFast | ( | const EventConstList & | eventSample, |
TMVA::DecisionTreeNode * | node | ||
) |
Decide how to split a node using one of the variables that gives the best separation of signal/background.
In order to do this, for each variable a scan of the different cut values in a grid (grid = fNCuts) is performed and the resulting separation gains are compared. in addition to the individual variables, one can also ask for a fisher discriminant being built out of (some) of the variables and used as a possible multivariate split.
Definition at line 925 of file DecisionTree.cxx.
Referenced by TrainNode().
Double_t TMVA::DecisionTree::TrainNodeFull | ( | const EventConstList & | eventSample, |
TMVA::DecisionTreeNode * | node | ||
) |
Definition at line 1542 of file DecisionTree.cxx.
|
private |
Definition at line 248 of file DecisionTree.h.
Referenced by DecisionTree(), DoRegression(), GetAnalysisType(), and SetAnalysisType().
|
private |
Definition at line 250 of file DecisionTree.h.
|
staticprivate |
Definition at line 245 of file DecisionTree.h.
|
staticprivate |
Definition at line 77 of file DecisionTree.h.
|
private |
Definition at line 243 of file DecisionTree.h.
|
private |
Definition at line 217 of file DecisionTree.h.
Referenced by SetMinLinCorrForFisher().
|
private |
Definition at line 224 of file DecisionTree.h.
|
private |
Definition at line 225 of file DecisionTree.h.
|
private |
Definition at line 223 of file DecisionTree.h.
|
private |
Definition at line 239 of file DecisionTree.h.
|
private |
Definition at line 215 of file DecisionTree.h.
Referenced by DecisionTree().
|
private |
Definition at line 231 of file DecisionTree.h.
Referenced by GetNNodesBeforePruning().
|
private |
Definition at line 233 of file DecisionTree.h.
Referenced by GetNodePurityLimit(), and SetNodePurityLimit().
|
private |
Definition at line 214 of file DecisionTree.h.
Referenced by SetNVars().
|
private |
Definition at line 230 of file DecisionTree.h.
Referenced by SetPruneMethod().
|
private |
Definition at line 228 of file DecisionTree.h.
Referenced by GetPruneStrength(), and SetPruneStrength().
|
private |
Definition at line 235 of file DecisionTree.h.
|
private |
Definition at line 221 of file DecisionTree.h.
Referenced by DecisionTree().
|
private |
Definition at line 220 of file DecisionTree.h.
|
private |
Definition at line 244 of file DecisionTree.h.
|
private |
Definition at line 246 of file DecisionTree.h.
Referenced by GetTreeID(), and SetTreeID().
|
private |
Definition at line 218 of file DecisionTree.h.
Referenced by SetUseExclusiveVars().
|
private |
Definition at line 216 of file DecisionTree.h.
Referenced by SetUseFisherCuts().
|
private |
Definition at line 236 of file DecisionTree.h.
|
private |
Definition at line 237 of file DecisionTree.h.
|
private |
Definition at line 227 of file DecisionTree.h.
|
private |
Definition at line 241 of file DecisionTree.h.