ROOT 6.12/07 Reference Guide |
Analysis of Boosted Decision Trees.
Boosted decision trees have been successfully used in High Energy Physics analysis for example by the MiniBooNE experiment (Yang-Roe-Zhu, physics/0508045). In Boosted Decision Trees, the selection is done on a majority vote on the result of several decision trees, which are all derived from the same training sample by supplying different event weights during the training.
Successive decision nodes are used to categorize the events out of the sample as either signal or background. Each node uses only a single discriminating variable to decide if the event is signal-like ("goes right") or background-like ("goes left"). This forms a tree like structure with "baskets" at the end (leave nodes), and an event is classified as either signal or background according to whether the basket where it ends up has been classified signal or background during the training. Training of a decision tree is the process to define the "cut criteria" for each node. The training starts with the root node. Here one takes the full training event sample and selects the variable and corresponding cut value that gives the best separation between signal and background at this stage. Using this cut criterion, the sample is then divided into two subsamples, a signal-like (right) and a background-like (left) sample. Two new nodes are then created for each of the two sub-samples and they are constructed using the same mechanism as described for the root node. The devision is stopped once a certain node has reached either a minimum number of events, or a minimum or maximum signal purity. These leave nodes are then called "signal" or "background" if they contain more signal respective background events from the training sample.
The idea behind adaptive boosting (AdaBoost) is, that signal events from the training sample, that end up in a background node (and vice versa) are given a larger weight than events that are in the correct leave node. This results in a re-weighed training event sample, with which then a new decision tree can be developed. The boosting can be applied several times (typically 100-500 times) and one ends up with a set of decision trees (a forest). Gradient boosting works more like a function expansion approach, where each tree corresponds to a summand. The parameters for each summand (tree) are determined by the minimization of a error function (binomial log- likelihood for classification and Huber loss for regression). A greedy algorithm is used, which means, that only one tree is modified at a time, while the other trees stay fixed.
In this particular variant of the Boosted Decision Trees the boosting is not done on the basis of previous training results, but by a simple stochastic re-sampling of the initial training event sample.
Similar to the "Random Forests" from Leo Breiman and Adele Cutler, it uses the bagging algorithm together and bases the determination of the best node-split during the training on a random subset of variables only which is individually chosen for each split.
Applying an individual decision tree to a test event results in a classification of the event as either signal or background. For the boosted decision tree selection, an event is successively subjected to the whole set of decision trees and depending on how often it is classified as signal, a "likelihood" estimator is constructed for the event being signal or background. The value of this estimator is the one which is then used to select the events from an event sample, and the cut value on this estimator defines the efficiency and purity of the selection.
Definition at line 54 of file MethodBDT.h.
Public Member Functions | |
MethodBDT (const TString &jobName, const TString &methodTitle, DataSetInfo &theData, const TString &theOption="") | |
The standard constructor for the "boosted decision trees". More... | |
MethodBDT (DataSetInfo &theData, const TString &theWeightFile) | |
virtual | ~MethodBDT (void) |
Destructor. More... | |
void | AddWeightsXMLTo (void *parent) const |
Write weights to XML. More... | |
Double_t | Boost (std::vector< const TMVA::Event *> &, DecisionTree *dt, UInt_t cls=0) |
Apply the boosting algorithm (the algorithm is selecte via the the "option" given in the constructor. More... | |
const Ranking * | CreateRanking () |
Compute ranking of input variables. More... | |
void | DeclareOptions () |
Define the options (their key words). More... | |
const std::vector< double > & | GetBoostWeights () const |
const std::vector< TMVA::DecisionTree * > & | GetForest () const |
void | GetHelpMessage () const |
Get help message text. More... | |
const std::vector< Float_t > & | GetMulticlassValues () |
Get the multiclass MVA response for the BDT classifier. More... | |
Double_t | GetMvaValue (Double_t *err=0, Double_t *errUpper=0) |
UInt_t | GetNTrees () const |
const std::vector< Float_t > & | GetRegressionValues () |
Get the regression value generated by the BDTs. More... | |
const std::vector< const TMVA::Event * > & | GetTrainingEvents () const |
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 measure for the variable importance of variable "ivar" which is later used in GetVariableImportance() to calculate the relative variable importances. More... | |
virtual Bool_t | HasAnalysisType (Types::EAnalysisType type, UInt_t numberClasses, UInt_t numberTargets) |
BDT can handle classification with multiple classes and regression with one regression-target. More... | |
void | InitEventSample () |
Initialize the event sample (i.e. reset the boost-weights... etc). More... | |
void | MakeClassInstantiateNode (DecisionTreeNode *n, std::ostream &fout, const TString &className) const |
Recursively descends a tree and writes the node instance to the output stream. More... | |
void | MakeClassSpecific (std::ostream &, const TString &) const |
Make ROOT-independent C++ class for classifier response (classifier-specific implementation). More... | |
void | MakeClassSpecificHeader (std::ostream &, const TString &) const |
Specific class header. More... | |
virtual std::map< TString, Double_t > | OptimizeTuningParameters (TString fomType="ROCIntegral", TString fitType="FitGA") |
Call the Optimizer with the set of parameters and ranges that are meant to be tuned. More... | |
void | ProcessOptions () |
The option string is decoded, for available options see "DeclareOptions". More... | |
void | ReadWeightsFromStream (std::istream &istr) |
Read the weights (BDT coefficients). More... | |
void | ReadWeightsFromXML (void *parent) |
Reads the BDT from the xml file. More... | |
void | Reset (void) |
Reset the method, as if it had just been instantiated (forget all training etc.). More... | |
void | SetAdaBoostBeta (Double_t b) |
void | SetBaggedSampleFraction (Double_t f) |
void | SetMaxDepth (Int_t d) |
void | SetMinNodeSize (Double_t sizeInPercent) |
void | SetMinNodeSize (TString sizeInPercent) |
void | SetNodePurityLimit (Double_t l) |
void | SetNTrees (Int_t d) |
void | SetShrinkage (Double_t s) |
virtual void | SetTuneParameters (std::map< TString, Double_t > tuneParameters) |
Set the tuning parameters according to the argument. More... | |
void | SetUseNvars (Int_t n) |
Double_t | TestTreeQuality (DecisionTree *dt) |
Test the tree quality.. in terms of Misclassification. More... | |
void | Train (void) |
BDT training. More... | |
void | WriteMonitoringHistosToFile (void) const |
Here we could write some histograms created during the processing to the output file. More... | |
Public Member Functions inherited from TMVA::MethodBase | |
MethodBase (const TString &jobName, Types::EMVA methodType, const TString &methodTitle, DataSetInfo &dsi, const TString &theOption="") | |
standard constructor More... | |
MethodBase (Types::EMVA methodType, DataSetInfo &dsi, const TString &weightFile) | |
constructor used for Testing + Application of the MVA, only (no training), using given WeightFiles More... | |
virtual | ~MethodBase () |
destructor More... | |
void | AddOutput (Types::ETreeType type, Types::EAnalysisType analysisType) |
TDirectory * | BaseDir () const |
returns the ROOT directory where info/histograms etc of the corresponding MVA method instance are stored More... | |
virtual void | CheckSetup () |
check may be overridden by derived class (sometimes, eg, fitters are used which can only be implemented during training phase) More... | |
DataSet * | Data () const |
DataSetInfo & | DataInfo () const |
void | DisableWriting (Bool_t setter) |
Bool_t | DoMulticlass () const |
Bool_t | DoRegression () const |
void | ExitFromTraining () |
Types::EAnalysisType | GetAnalysisType () const |
UInt_t | GetCurrentIter () |
virtual Double_t | GetEfficiency (const TString &, Types::ETreeType, Double_t &err) |
fill background efficiency (resp. More... | |
const Event * | GetEvent () const |
const Event * | GetEvent (const TMVA::Event *ev) const |
const Event * | GetEvent (Long64_t ievt) const |
const Event * | GetEvent (Long64_t ievt, Types::ETreeType type) const |
const std::vector< TMVA::Event * > & | GetEventCollection (Types::ETreeType type) |
returns the event collection (i.e. More... | |
TFile * | GetFile () const |
const TString & | GetInputLabel (Int_t i) const |
const char * | GetInputTitle (Int_t i) const |
const TString & | GetInputVar (Int_t i) const |
TMultiGraph * | GetInteractiveTrainingError () |
const TString & | GetJobName () const |
virtual Double_t | GetKSTrainingVsTest (Char_t SorB, TString opt="X") |
virtual Double_t | GetMaximumSignificance (Double_t SignalEvents, Double_t BackgroundEvents, Double_t &optimal_significance_value) const |
plot significance, \( \frac{S}{\sqrt{S^2 + B^2}} \), curve for given number of signal and background events; returns cut for maximum significance also returned via reference is the maximum significance More... | |
UInt_t | GetMaxIter () |
Double_t | GetMean (Int_t ivar) const |
const TString & | GetMethodName () const |
Types::EMVA | GetMethodType () const |
TString | GetMethodTypeName () const |
virtual TMatrixD | GetMulticlassConfusionMatrix (Double_t effB, Types::ETreeType type) |
Construct a confusion matrix for a multiclass classifier. More... | |
virtual std::vector< Float_t > | GetMulticlassEfficiency (std::vector< std::vector< Float_t > > &purity) |
virtual std::vector< Float_t > | GetMulticlassTrainingEfficiency (std::vector< std::vector< Float_t > > &purity) |
Double_t | GetMvaValue (const TMVA::Event *const ev, Double_t *err=0, Double_t *errUpper=0) |
const char * | GetName () const |
UInt_t | GetNEvents () const |
temporary event when testing on a different DataSet than the own one More... | |
UInt_t | GetNTargets () const |
UInt_t | GetNvar () const |
UInt_t | GetNVariables () const |
virtual Double_t | GetProba (const Event *ev) |
virtual Double_t | GetProba (Double_t mvaVal, Double_t ap_sig) |
compute likelihood ratio More... | |
const TString | GetProbaName () const |
virtual Double_t | GetRarity (Double_t mvaVal, Types::ESBType reftype=Types::kBackground) const |
compute rarity: \[ R(x) = \int_{[-\infty..x]} { PDF(x') dx' } \] where PDF(x) is the PDF of the classifier's signal or background distribution More... | |
virtual void | GetRegressionDeviation (UInt_t tgtNum, Types::ETreeType type, Double_t &stddev, Double_t &stddev90Percent) const |
const std::vector< Float_t > & | GetRegressionValues (const TMVA::Event *const ev) |
Double_t | GetRMS (Int_t ivar) const |
virtual Double_t | GetROCIntegral (TH1D *histS, TH1D *histB) const |
calculate the area (integral) under the ROC curve as a overall quality measure of the classification More... | |
virtual Double_t | GetROCIntegral (PDF *pdfS=0, PDF *pdfB=0) const |
calculate the area (integral) under the ROC curve as a overall quality measure of the classification More... | |
virtual Double_t | GetSeparation (TH1 *, TH1 *) const |
compute "separation" defined as \[ <s2> = \frac{1}{2} \int_{-\infty}^{+\infty} { \frac{(S(x) - B(x))^2}{(S(x) + B(x))} dx } \] More... | |
virtual Double_t | GetSeparation (PDF *pdfS=0, PDF *pdfB=0) const |
compute "separation" defined as \[ <s2> = \frac{1}{2} \int_{-\infty}^{+\infty} { \frac{(S(x) - B(x))^2}{(S(x) + B(x))} dx } \] More... | |
Double_t | GetSignalReferenceCut () const |
Double_t | GetSignalReferenceCutOrientation () const |
virtual Double_t | GetSignificance () const |
compute significance of mean difference \[ significance = \frac{|<S> - <B>|}{\sqrt{RMS_{S2} + RMS_{B2}}} \] More... | |
const Event * | GetTestingEvent (Long64_t ievt) const |
Double_t | GetTestTime () const |
const TString & | GetTestvarName () const |
virtual Double_t | GetTrainingEfficiency (const TString &) |
const Event * | GetTrainingEvent (Long64_t ievt) const |
UInt_t | GetTrainingROOTVersionCode () const |
TString | GetTrainingROOTVersionString () const |
calculates the ROOT version string from the training version code on the fly More... | |
UInt_t | GetTrainingTMVAVersionCode () const |
TString | GetTrainingTMVAVersionString () const |
calculates the TMVA version string from the training version code on the fly More... | |
Double_t | GetTrainTime () const |
TransformationHandler & | GetTransformationHandler (Bool_t takeReroutedIfAvailable=true) |
const TransformationHandler & | GetTransformationHandler (Bool_t takeReroutedIfAvailable=true) const |
TString | GetWeightFileName () const |
retrieve weight file name More... | |
Double_t | GetXmax (Int_t ivar) const |
Double_t | GetXmin (Int_t ivar) const |
Bool_t | HasMVAPdfs () const |
void | InitIPythonInteractive () |
Bool_t | IsModelPersistence () |
virtual Bool_t | IsSignalLike () |
uses a pre-set cut on the MVA output (SetSignalReferenceCut and SetSignalReferenceCutOrientation) for a quick determination if an event would be selected as signal or background More... | |
virtual Bool_t | IsSignalLike (Double_t mvaVal) |
uses a pre-set cut on the MVA output (SetSignalReferenceCut and SetSignalReferenceCutOrientation) for a quick determination if an event with this mva output value would be selected as signal or background More... | |
Bool_t | IsSilentFile () |
virtual void | MakeClass (const TString &classFileName=TString("")) const |
create reader class for method (classification only at present) More... | |
TDirectory * | MethodBaseDir () const |
returns the ROOT directory where all instances of the corresponding MVA method are stored More... | |
void | PrintHelpMessage () const |
prints out method-specific help method More... | |
void | ProcessSetup () |
process all options the "CheckForUnusedOptions" is done in an independent call, since it may be overridden by derived class (sometimes, eg, fitters are used which can only be implemented during training phase) More... | |
void | ReadStateFromFile () |
Function to write options and weights to file. More... | |
void | ReadStateFromStream (std::istream &tf) |
read the header from the weight files of the different MVA methods More... | |
void | ReadStateFromStream (TFile &rf) |
write reference MVA distributions (and other information) to a ROOT type weight file More... | |
void | ReadStateFromXMLString (const char *xmlstr) |
for reading from memory More... | |
void | RerouteTransformationHandler (TransformationHandler *fTargetTransformation) |
virtual void | SetAnalysisType (Types::EAnalysisType type) |
void | SetBaseDir (TDirectory *methodDir) |
void | SetFile (TFile *file) |
void | SetMethodBaseDir (TDirectory *methodDir) |
void | SetMethodDir (TDirectory *methodDir) |
void | SetModelPersistence (Bool_t status) |
void | SetSignalReferenceCut (Double_t cut) |
void | SetSignalReferenceCutOrientation (Double_t cutOrientation) |
void | SetSilentFile (Bool_t status) |
void | SetTestTime (Double_t testTime) |
void | SetTestvarName (const TString &v="") |
void | SetTrainTime (Double_t trainTime) |
void | SetupMethod () |
setup of methods More... | |
virtual void | TestClassification () |
initialization More... | |
virtual void | TestMulticlass () |
test multiclass classification More... | |
virtual void | TestRegression (Double_t &bias, Double_t &biasT, Double_t &dev, Double_t &devT, Double_t &rms, Double_t &rmsT, Double_t &mInf, Double_t &mInfT, Double_t &corr, Types::ETreeType type) |
calculate <sum-of-deviation-squared> of regression output versus "true" value from test sample More... | |
bool | TrainingEnded () |
void | TrainMethod () |
virtual void | WriteEvaluationHistosToFile (Types::ETreeType treetype) |
writes all MVA evaluation histograms to file More... | |
void | WriteStateToFile () const |
write options and weights to file note that each one text file for the main configuration information and one ROOT file for ROOT objects are created More... | |
Public Member Functions inherited from TMVA::IMethod | |
IMethod () | |
virtual | ~IMethod () |
Public Member Functions inherited from TMVA::Configurable | |
Configurable (const TString &theOption="") | |
constructor More... | |
virtual | ~Configurable () |
default destructor More... | |
void | AddOptionsXMLTo (void *parent) const |
write options to XML file More... | |
template<class T > | |
void | AddPreDefVal (const T &) |
template<class T > | |
void | AddPreDefVal (const TString &optname, const T &) |
void | CheckForUnusedOptions () const |
checks for unused options in option string More... | |
template<class T > | |
OptionBase * | DeclareOptionRef (T &ref, const TString &name, const TString &desc="") |
template<class T > | |
OptionBase * | DeclareOptionRef (T *&ref, Int_t size, const TString &name, const TString &desc="") |
template<class T > | |
TMVA::OptionBase * | DeclareOptionRef (T &ref, const TString &name, const TString &desc) |
template<class T > | |
TMVA::OptionBase * | DeclareOptionRef (T *&ref, Int_t size, const TString &name, const TString &desc) |
const char * | GetConfigDescription () const |
const char * | GetConfigName () const |
const TString & | GetOptions () const |
MsgLogger & | Log () const |
virtual void | ParseOptions () |
options parser More... | |
void | PrintOptions () const |
prints out the options set in the options string and the defaults More... | |
void | ReadOptionsFromStream (std::istream &istr) |
read option back from the weight file More... | |
void | ReadOptionsFromXML (void *node) |
void | SetConfigDescription (const char *d) |
void | SetConfigName (const char *n) |
void | SetMsgType (EMsgType t) |
void | SetOptions (const TString &s) |
void | WriteOptionsToStream (std::ostream &o, const TString &prefix) const |
write options to output stream (e.g. in writing the MVA weight files More... | |
Public Member Functions inherited from TNamed | |
TNamed () | |
TNamed (const char *name, const char *title) | |
TNamed (const TString &name, const TString &title) | |
TNamed (const TNamed &named) | |
TNamed copy ctor. More... | |
virtual | ~TNamed () |
TNamed destructor. More... | |
virtual void | Clear (Option_t *option="") |
Set name and title to empty strings (""). More... | |
virtual TObject * | Clone (const char *newname="") const |
Make a clone of an object using the Streamer facility. More... | |
virtual Int_t | Compare (const TObject *obj) const |
Compare two TNamed objects. More... | |
virtual void | Copy (TObject &named) const |
Copy this to obj. More... | |
virtual void | FillBuffer (char *&buffer) |
Encode TNamed into output buffer. More... | |
virtual const char * | GetTitle () const |
Returns title of object. More... | |
virtual ULong_t | Hash () const |
Return hash value for this object. More... | |
virtual Bool_t | IsSortable () const |
virtual void | ls (Option_t *option="") const |
List TNamed name and title. More... | |
TNamed & | operator= (const TNamed &rhs) |
TNamed assignment operator. More... | |
virtual void | Print (Option_t *option="") const |
Print TNamed name and title. More... | |
virtual void | SetName (const char *name) |
Set the name of the TNamed. More... | |
virtual void | SetNameTitle (const char *name, const char *title) |
Set all the TNamed parameters (name and title). More... | |
virtual void | SetTitle (const char *title="") |
Set the title of the TNamed. More... | |
virtual Int_t | Sizeof () const |
Return size of the TNamed part of the TObject. More... | |
Public Member Functions inherited from TObject | |
TObject () | |
TObject constructor. More... | |
TObject (const TObject &object) | |
TObject copy ctor. More... | |
virtual | ~TObject () |
TObject destructor. More... | |
void | AbstractMethod (const char *method) const |
Use this method to implement an "abstract" method that you don't want to leave purely abstract. More... | |
virtual void | AppendPad (Option_t *option="") |
Append graphics object to current pad. More... | |
virtual void | Browse (TBrowser *b) |
Browse object. May be overridden for another default action. More... | |
ULong_t | CheckedHash () |
Checked and record whether for this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More... | |
virtual const char * | ClassName () const |
Returns name of class to which the object belongs. More... | |
virtual void | Delete (Option_t *option="") |
Delete this object. More... | |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
Computes distance from point (px,py) to the object. More... | |
virtual void | Draw (Option_t *option="") |
Default Draw method for all objects. More... | |
virtual void | DrawClass () const |
Draw class inheritance tree of the class to which this object belongs. More... | |
virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad) . More... | |
virtual void | Dump () const |
Dump contents of object on stdout. More... | |
virtual void | Error (const char *method, const char *msgfmt,...) const |
Issue error message. More... | |
virtual void | Execute (const char *method, const char *params, Int_t *error=0) |
Execute method on this object with the given parameter string, e.g. More... | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=0) |
Execute method on this object with parameters stored in the TObjArray. More... | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute action corresponding to an event at (px,py). More... | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. More... | |
virtual TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. More... | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. More... | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. More... | |
virtual const char * | GetIconName () const |
Returns mime type name of object. More... | |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
Returns string containing info about the object at position (px,py). More... | |
virtual Option_t * | GetOption () const |
virtual UInt_t | GetUniqueID () const |
Return the unique object id. More... | |
virtual Bool_t | HandleTimer (TTimer *timer) |
Execute action in response of a timer timing out. More... | |
Bool_t | HasInconsistentHash () const |
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More... | |
virtual void | Info (const char *method, const char *msgfmt,...) const |
Issue info message. More... | |
virtual Bool_t | InheritsFrom (const char *classname) const |
Returns kTRUE if object inherits from class "classname". More... | |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
Returns kTRUE if object inherits from TClass cl. More... | |
virtual void | Inspect () const |
Dump contents of this object in a graphics canvas. More... | |
void | InvertBit (UInt_t f) |
virtual Bool_t | IsEqual (const TObject *obj) const |
Default equal comparison (objects are equal if they have the same address in memory). More... | |
virtual Bool_t | IsFolder () const |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More... | |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
void | MayNotUse (const char *method) const |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More... | |
virtual Bool_t | Notify () |
This method must be overridden to handle object notification. More... | |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
Use this method to declare a method obsolete. More... | |
void | operator delete (void *ptr) |
Operator delete. More... | |
void | operator delete[] (void *ptr) |
Operator delete []. More... | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
TObject assignment operator. More... | |
virtual void | Paint (Option_t *option="") |
This method must be overridden if a class wants to paint itself. More... | |
virtual void | Pop () |
Pop on object drawn in a pad to the top of the display list. More... | |
virtual Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. More... | |
virtual void | RecursiveRemove (TObject *obj) |
Recursively remove this object from a list. More... | |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
Save this object in the file specified by filename. More... | |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
Save a primitive as a C++ statement(s) on output stream "out". More... | |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. More... | |
void | SetBit (UInt_t f) |
virtual void | SetDrawOption (Option_t *option="") |
Set drawing option for object. More... | |
virtual void | SetUniqueID (UInt_t uid) |
Set the unique object id. More... | |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
Issue system error message. More... | |
R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
virtual void | UseCurrentStyle () |
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More... | |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
Issue warning message. More... | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) |
Write this object to the current directory. More... | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const |
Write this object to the current directory. More... | |
Protected Member Functions | |
void | DeclareCompatibilityOptions () |
Options that are used ONLY for the READER to ensure backward compatibility. More... | |
Protected Member Functions inherited from TMVA::MethodBase | |
const TString & | GetInternalVarName (Int_t ivar) const |
virtual std::vector< Double_t > | GetMvaValues (Long64_t firstEvt=0, Long64_t lastEvt=-1, Bool_t logProgress=false) |
get all the MVA values for the events of the current Data type More... | |
const TString & | GetOriginalVarName (Int_t ivar) const |
const TString & | GetWeightFileDir () const |
Bool_t | HasTrainingTree () const |
Bool_t | Help () const |
Bool_t | IgnoreEventsWithNegWeightsInTraining () const |
Bool_t | IsConstructedFromWeightFile () const |
Bool_t | IsNormalised () const |
void | NoErrorCalc (Double_t *const err, Double_t *const errUpper) |
virtual void | ReadWeightsFromStream (TFile &) |
void | SetNormalised (Bool_t norm) |
void | SetWeightFileDir (TString fileDir) |
set directory of weight file More... | |
void | SetWeightFileName (TString) |
set the weight file name (depreciated) More... | |
void | Statistics (Types::ETreeType treeType, const TString &theVarName, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &) |
calculates rms,mean, xmin, xmax of the event variable this can be either done for the variables as they are or for normalised variables (in the range of 0-1) if "norm" is set to kTRUE More... | |
Bool_t | TxtWeightsOnly () const |
Bool_t | Verbose () const |
Protected Member Functions inherited from TMVA::Configurable | |
void | EnableLooseOptions (Bool_t b=kTRUE) |
const TString & | GetReferenceFile () const |
Bool_t | LooseOptionCheckingEnabled () const |
void | ResetSetFlag () |
resets the IsSet flag for all declare options to be called before options are read from stream More... | |
void | WriteOptionsReferenceToFile () |
write complete options to output stream More... | |
Protected Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). More... | |
void | MakeZombie () |
Private Member Functions | |
Double_t | AdaBoost (std::vector< const TMVA::Event *> &, DecisionTree *dt) |
The AdaBoost implementation. More... | |
Double_t | AdaBoostR2 (std::vector< const TMVA::Event *> &, DecisionTree *dt) |
Adaption of the AdaBoost to regression problems (see H.Drucker 1997). More... | |
Double_t | AdaCost (std::vector< const TMVA::Event *> &, DecisionTree *dt) |
The AdaCost boosting algorithm takes a simple cost Matrix (currently fixed for all events... More... | |
Double_t | ApplyPreselectionCuts (const Event *ev) |
Apply the preselection cuts before even bothering about any Decision Trees in the GetMVA . More... | |
Double_t | Bagging () |
Call it boot-strapping, re-sampling or whatever you like, in the end it is nothing else but applying "random" poisson weights to each event. More... | |
void | BoostMonitor (Int_t iTree) |
Fills the ROCIntegral vs Itree from the testSample for the monitoring plots during the training . More... | |
void | DeterminePreselectionCuts (const std::vector< const TMVA::Event *> &eventSample) |
Find useful preselection cuts that will be applied before and Decision Tree training. More... | |
void | GetBaggedSubSample (std::vector< const TMVA::Event *> &) |
Fills fEventSample with fBaggedSampleFraction*NEvents random training events. More... | |
Double_t | GetGradBoostMVA (const TMVA::Event *e, UInt_t nTrees) |
Returns MVA value: -1 for background, 1 for signal. More... | |
Double_t | GetMvaValue (Double_t *err, Double_t *errUpper, UInt_t useNTrees) |
Return the MVA value (range [-1;1]) that classifies the event according to the majority vote from the total number of decision trees. More... | |
Double_t | GradBoost (std::vector< const TMVA::Event *> &, DecisionTree *dt, UInt_t cls=0) |
Calculate the desired response value for each region. More... | |
Double_t | GradBoostRegression (std::vector< const TMVA::Event *> &, DecisionTree *dt) |
Implementation of M_TreeBoost using any loss function as described by Friedman 1999. More... | |
void | Init (void) |
Common initialisation with defaults for the BDT-Method. More... | |
void | InitGradBoost (std::vector< const TMVA::Event *> &) |
Initialize targets for first tree. More... | |
void | PreProcessNegativeEventWeights () |
O.k. More... | |
Double_t | PrivateGetMvaValue (const TMVA::Event *ev, Double_t *err=0, Double_t *errUpper=0, UInt_t useNTrees=0) |
Return the MVA value (range [-1;1]) that classifies the event according to the majority vote from the total number of decision trees. More... | |
Double_t | RegBoost (std::vector< const TMVA::Event *> &, DecisionTree *dt) |
A special boosting only for Regression (not implemented). More... | |
void | UpdateTargets (std::vector< const TMVA::Event *> &, UInt_t cls=0) |
Calculate residual for all events. More... | |
void | UpdateTargetsRegression (std::vector< const TMVA::Event *> &, Bool_t first=kFALSE) |
Calculate current residuals for all events and update targets for next iteration. More... | |
Static Private Attributes | |
static const Int_t | fgDebugLevel = 0 |
Additional Inherited Members | |
Public Types inherited from TMVA::MethodBase | |
enum | EWeightFileType { kROOT =0, kTEXT } |
Public Types inherited from TObject | |
enum | { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kInconsistent = 0x08000000, kBitMask = 0x00ffffff } |
enum | { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) } |
enum | EDeprecatedStatusBits { kObjInCanvas = BIT(3) } |
enum | EStatusBits { kCanDelete = BIT(0), kMustCleanup = BIT(3), kIsReferenced = BIT(4), kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13) } |
Static Public Member Functions inherited from TObject | |
static Long_t | GetDtorOnly () |
Return destructor only flag. More... | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. More... | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. More... | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. More... | |
Public Attributes inherited from TMVA::MethodBase | |
Bool_t | fSetupCompleted |
const Event * | fTmpEvent |
Protected Attributes inherited from TMVA::MethodBase | |
Types::EAnalysisType | fAnalysisType |
UInt_t | fBackgroundClass |
bool | fExitFromTraining = false |
std::vector< TString > * | fInputVars |
IPythonInteractive * | fInteractive = nullptr |
UInt_t | fIPyCurrentIter = 0 |
UInt_t | fIPyMaxIter = 0 |
std::vector< Float_t > * | fMulticlassReturnVal |
Int_t | fNbins |
Int_t | fNbinsH |
Int_t | fNbinsMVAoutput |
Ranking * | fRanking |
std::vector< Float_t > * | fRegressionReturnVal |
Results * | fResults |
UInt_t | fSignalClass |
Protected Attributes inherited from TMVA::Configurable | |
MsgLogger * | fLogger |
Protected Attributes inherited from TNamed | |
TString | fName |
TString | fTitle |
#include <TMVA/MethodBDT.h>
TMVA::MethodBDT::MethodBDT | ( | const TString & | jobName, |
const TString & | methodTitle, | ||
DataSetInfo & | theData, | ||
const TString & | theOption = "" |
||
) |
The standard constructor for the "boosted decision trees".
Definition at line 164 of file MethodBDT.cxx.
TMVA::MethodBDT::MethodBDT | ( | DataSetInfo & | theData, |
const TString & | theWeightFile | ||
) |
Definition at line 221 of file MethodBDT.cxx.
|
virtual |
Destructor.
Definition at line 752 of file MethodBDT.cxx.
|
private |
The AdaBoost implementation.
a new training sample is generated by weighting events that are misclassified by the decision tree. The weight applied is \( w = \frac{(1-err)}{err} \) or more general: \( w = (\frac{(1-err)}{err})^\beta \) where \(err\) is the fraction of misclassified events in the tree ( <0.5 assuming demanding the that previous selection was better than random guessing) and "beta" being a free parameter (standard: beta = 1) that modifies the boosting.
Definition at line 1736 of file MethodBDT.cxx.
|
private |
Adaption of the AdaBoost to regression problems (see H.Drucker 1997).
Definition at line 2083 of file MethodBDT.cxx.
|
private |
The AdaCost boosting algorithm takes a simple cost Matrix (currently fixed for all events...
later could be modified to use individual cost matrices for each events as in the original paper...
true_signal true_bkg ---------------------------------- sel_signal | Css Ctb_ss Cxx.. in the range [0,1] sel_bkg | Cts_sb Cbb
and takes this into account when calculating the mis class. cost (former: error fraction):
err = sum_events ( weight* y_true*y_sel * beta(event)
Definition at line 1914 of file MethodBDT.cxx.
Apply the preselection cuts before even bothering about any Decision Trees in the GetMVA .
. –> -1 for background +1 for Signal
Definition at line 2968 of file MethodBDT.cxx.
|
private |
Call it boot-strapping, re-sampling or whatever you like, in the end it is nothing else but applying "random" poisson weights to each event.
Definition at line 2030 of file MethodBDT.cxx.
Double_t TMVA::MethodBDT::Boost | ( | std::vector< const TMVA::Event *> & | eventSample, |
DecisionTree * | dt, | ||
UInt_t | cls = 0 |
||
) |
Apply the boosting algorithm (the algorithm is selecte via the the "option" given in the constructor.
The return value is the boosting weight.
Definition at line 1608 of file MethodBDT.cxx.
Fills the ROCIntegral vs Itree from the testSample for the monitoring plots during the training .
. but using the testing events
Definition at line 1642 of file MethodBDT.cxx.
|
virtual |
Compute ranking of input variables.
Implements TMVA::MethodBase.
Definition at line 2562 of file MethodBDT.cxx.
|
protectedvirtual |
Options that are used ONLY for the READER to ensure backward compatibility.
Reimplemented from TMVA::MethodBase.
Definition at line 455 of file MethodBDT.cxx.
|
virtual |
Define the options (their key words).
That can be set in the option string.
know options:
Implements TMVA::MethodBase.
Definition at line 334 of file MethodBDT.cxx.
|
private |
Find useful preselection cuts that will be applied before and Decision Tree training.
. (and of course also applied in the GetMVA .. –> -1 for background +1 for Signal)
Definition at line 2868 of file MethodBDT.cxx.
|
private |
Fills fEventSample with fBaggedSampleFraction*NEvents random training events.
Definition at line 2041 of file MethodBDT.cxx.
|
inline |
Definition at line 302 of file MethodBDT.h.
|
inline |
Definition at line 300 of file MethodBDT.h.
|
private |
Returns MVA value: -1 for background, 1 for signal.
Definition at line 1420 of file MethodBDT.cxx.
|
virtual |
|
virtual |
Get the multiclass MVA response for the BDT classifier.
Reimplemented from TMVA::MethodBase.
Definition at line 2385 of file MethodBDT.cxx.
Implements TMVA::MethodBase.
Definition at line 2333 of file MethodBDT.cxx.
|
private |
Return the MVA value (range [-1;1]) that classifies the event according to the majority vote from the total number of decision trees.
Definition at line 2342 of file MethodBDT.cxx.
|
inline |
Definition at line 102 of file MethodBDT.h.
|
virtual |
Get the regression value generated by the BDTs.
Reimplemented from TMVA::MethodBase.
Definition at line 2421 of file MethodBDT.cxx.
|
inline |
Definition at line 301 of file MethodBDT.h.
vector< Double_t > TMVA::MethodBDT::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 2522 of file MethodBDT.cxx.
Returns the measure for the variable importance of variable "ivar" which is later used in GetVariableImportance() to calculate the relative variable importances.
Definition at line 2550 of file MethodBDT.cxx.
|
private |
Calculate the desired response value for each region.
Definition at line 1490 of file MethodBDT.cxx.
|
private |
Implementation of M_TreeBoost using any loss function as described by Friedman 1999.
Definition at line 1524 of file MethodBDT.cxx.
|
virtual |
BDT can handle classification with multiple classes and regression with one regression-target.
Implements TMVA::IMethod.
Definition at line 281 of file MethodBDT.cxx.
Common initialisation with defaults for the BDT-Method.
Implements TMVA::MethodBase.
Definition at line 686 of file MethodBDT.cxx.
Initialize the event sample (i.e. reset the boost-weights... etc).
Definition at line 760 of file MethodBDT.cxx.
|
private |
Initialize targets for first tree.
Definition at line 1549 of file MethodBDT.cxx.
void TMVA::MethodBDT::MakeClassInstantiateNode | ( | DecisionTreeNode * | n, |
std::ostream & | fout, | ||
const TString & | className | ||
) | const |
Recursively descends a tree and writes the node instance to the output stream.
Definition at line 2823 of file MethodBDT.cxx.
|
virtual |
Make ROOT-independent C++ class for classifier response (classifier-specific implementation).
Reimplemented from TMVA::MethodBase.
Definition at line 2636 of file MethodBDT.cxx.
|
virtual |
Specific class header.
Reimplemented from TMVA::MethodBase.
Definition at line 2712 of file MethodBDT.cxx.
|
virtual |
Call the Optimizer with the set of parameters and ranges that are meant to be tuned.
Reimplemented from TMVA::MethodBase.
Definition at line 1067 of file MethodBDT.cxx.
|
private |
O.k.
you know there are events with negative event weights. This routine will remove them by pairing them with the closest event(s) of the same event class with positive weights A first attempt is "brute force", I dont' try to be clever using search trees etc, just quick and dirty to see if the result is any good
Definition at line 931 of file MethodBDT.cxx.
|
private |
Return the MVA value (range [-1;1]) that classifies the event according to the majority vote from the total number of decision trees.
Definition at line 2358 of file MethodBDT.cxx.
|
virtual |
The option string is decoded, for available options see "DeclareOptions".
Implements TMVA::MethodBase.
Definition at line 471 of file MethodBDT.cxx.
|
virtual |
Read the weights (BDT coefficients).
Implements TMVA::MethodBase.
Definition at line 2298 of file MethodBDT.cxx.
Reads the BDT from the xml file.
Implements TMVA::MethodBase.
Definition at line 2231 of file MethodBDT.cxx.
|
private |
A special boosting only for Regression (not implemented).
Definition at line 2075 of file MethodBDT.cxx.
Reset the method, as if it had just been instantiated (forget all training etc.).
Reimplemented from TMVA::MethodBase.
Definition at line 724 of file MethodBDT.cxx.
Definition at line 128 of file MethodBDT.h.
Definition at line 132 of file MethodBDT.h.
Definition at line 123 of file MethodBDT.h.
Definition at line 659 of file MethodBDT.cxx.
Definition at line 673 of file MethodBDT.cxx.
Definition at line 129 of file MethodBDT.h.
Definition at line 127 of file MethodBDT.h.
Definition at line 130 of file MethodBDT.h.
Set the tuning parameters according to the argument.
Reimplemented from TMVA::MethodBase.
Definition at line 1120 of file MethodBDT.cxx.
Definition at line 131 of file MethodBDT.h.
Double_t TMVA::MethodBDT::TestTreeQuality | ( | DecisionTree * | dt | ) |
Test the tree quality.. in terms of Misclassification.
Definition at line 1587 of file MethodBDT.cxx.
|
private |
Calculate residual for all events.
Definition at line 1434 of file MethodBDT.cxx.
|
private |
Calculate current residuals for all events and update targets for next iteration.
Definition at line 1476 of file MethodBDT.cxx.
Here we could write some histograms created during the processing to the output file.
Reimplemented from TMVA::MethodBase.
Definition at line 2507 of file MethodBDT.cxx.
|
private |
Definition at line 205 of file MethodBDT.h.
|
private |
Definition at line 206 of file MethodBDT.h.
|
private |
Definition at line 237 of file MethodBDT.h.
|
private |
Definition at line 209 of file MethodBDT.h.
|
private |
Definition at line 210 of file MethodBDT.h.
|
private |
Definition at line 243 of file MethodBDT.h.
|
private |
Definition at line 204 of file MethodBDT.h.
|
private |
Definition at line 255 of file MethodBDT.h.
|
private |
Definition at line 202 of file MethodBDT.h.
|
private |
Definition at line 261 of file MethodBDT.h.
|
private |
Definition at line 258 of file MethodBDT.h.
|
private |
Definition at line 260 of file MethodBDT.h.
|
private |
Definition at line 259 of file MethodBDT.h.
|
private |
Definition at line 249 of file MethodBDT.h.
|
private |
Definition at line 263 of file MethodBDT.h.
|
private |
Definition at line 256 of file MethodBDT.h.
|
private |
Definition at line 195 of file MethodBDT.h.
|
private |
Definition at line 201 of file MethodBDT.h.
|
private |
Definition at line 236 of file MethodBDT.h.
|
staticprivate |
Definition at line 291 of file MethodBDT.h.
|
private |
Definition at line 276 of file MethodBDT.h.
|
private |
Definition at line 275 of file MethodBDT.h.
|
private |
Definition at line 283 of file MethodBDT.h.
|
private |
Definition at line 286 of file MethodBDT.h.
|
private |
Definition at line 246 of file MethodBDT.h.
|
private |
Definition at line 281 of file MethodBDT.h.
|
private |
Definition at line 280 of file MethodBDT.h.
|
private |
Definition at line 279 of file MethodBDT.h.
|
private |
Definition at line 278 of file MethodBDT.h.
|
private |
Definition at line 254 of file MethodBDT.h.
|
private |
Definition at line 213 of file MethodBDT.h.
|
private |
Definition at line 274 of file MethodBDT.h.
|
private |
Definition at line 273 of file MethodBDT.h.
|
private |
Definition at line 231 of file MethodBDT.h.
|
private |
Definition at line 226 of file MethodBDT.h.
|
private |
Definition at line 220 of file MethodBDT.h.
|
private |
Definition at line 221 of file MethodBDT.h.
|
private |
Definition at line 222 of file MethodBDT.h.
|
private |
Definition at line 253 of file MethodBDT.h.
|
private |
Definition at line 224 of file MethodBDT.h.
|
private |
Definition at line 244 of file MethodBDT.h.
|
private |
Definition at line 230 of file MethodBDT.h.
|
private |
Definition at line 229 of file MethodBDT.h.
|
private |
Definition at line 245 of file MethodBDT.h.
|
private |
Definition at line 200 of file MethodBDT.h.
|
private |
Definition at line 247 of file MethodBDT.h.
|
private |
Definition at line 233 of file MethodBDT.h.
|
private |
Definition at line 234 of file MethodBDT.h.
|
private |
Definition at line 235 of file MethodBDT.h.
|
private |
Definition at line 238 of file MethodBDT.h.
|
private |
Definition at line 288 of file MethodBDT.h.
|
private |
Definition at line 285 of file MethodBDT.h.
|
private |
Definition at line 215 of file MethodBDT.h.
|
private |
Definition at line 218 of file MethodBDT.h.
|
private |
Definition at line 219 of file MethodBDT.h.
|
private |
Definition at line 208 of file MethodBDT.h.
|
private |
Definition at line 203 of file MethodBDT.h.
|
private |
Definition at line 265 of file MethodBDT.h.
|
private |
Definition at line 197 of file MethodBDT.h.
|
private |
Definition at line 198 of file MethodBDT.h.
|
private |
Definition at line 248 of file MethodBDT.h.
|
private |
Definition at line 227 of file MethodBDT.h.
|
private |
Definition at line 225 of file MethodBDT.h.
|
private |
Definition at line 241 of file MethodBDT.h.
|
private |
Definition at line 239 of file MethodBDT.h.
|
private |
Definition at line 240 of file MethodBDT.h.
|
private |
Definition at line 228 of file MethodBDT.h.
|
private |
Definition at line 196 of file MethodBDT.h.
|
private |
Definition at line 267 of file MethodBDT.h.