Logo ROOT   6.10/09
Reference Guide
MethodCompositeBase.h
Go to the documentation of this file.
1 // @(#)root/tmva $Id$
2 // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss,Or Cohen
3 
4 /**********************************************************************************
5  * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6  * Package: TMVA *
7  * Class : MethodCompositeBase *
8  * Web : http://tmva.sourceforge.net *
9  * *
10  * Description: *
11  * Virtual base class for all MVA method *
12  * *
13  * Authors (alphabetical): *
14  * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland *
15  * Joerg Stelzer <Joerg.Stelzer@cern.ch> - CERN, Switzerland *
16  * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, Germany *
17  * Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada *
18  * Or Cohen <orcohenor@gmail.com> - Weizmann Inst., Israel *
19  * *
20  * Copyright (c) 2005: *
21  * CERN, Switzerland *
22  * U. of Victoria, Canada *
23  * MPI-K Heidelberg, Germany *
24  * LAPP, Annecy, France *
25  * *
26  * Redistribution and use in source and binary forms, with or without *
27  * modification, are permitted according to the terms listed in LICENSE *
28  * (http://tmva.sourceforge.net/LICENSE) *
29  **********************************************************************************/
30 
31 #ifndef ROOT_TMVA_MethodCompositeBase
32 #define ROOT_TMVA_MethodCompositeBase
33 
34 //////////////////////////////////////////////////////////////////////////
35 // //
36 // MethodCompositeBase //
37 // //
38 // Virtual base class for combining several TMVA method //
39 // //
40 //////////////////////////////////////////////////////////////////////////
41 
42 #include <iosfwd>
43 #include <vector>
44 
45 #include "TMVA/MethodBase.h"
46 
47 namespace TMVA {
48  class IMethod;
49 
51 
52  public :
53  MethodCompositeBase( const TString& jobName,
54  Types::EMVA methodType,
55  const TString& methodTitle,
56  DataSetInfo& theData,
57  const TString& theOption = "" );
58 
59 
60  MethodCompositeBase( Types::EMVA methodType,
61  DataSetInfo& dsi,
62  const TString& weightFile );
63 
65 
66  // write weights to file
67  void AddWeightsXMLTo( void* parent ) const;
68  void ReadWeightsFromXML( void* wghtnode );
69 
70  // calculate the MVA value combining all classifiers according to thier fMethodWeight
71  Double_t GetMvaValue( Double_t* err = 0, Double_t* errUpper = 0 );
72 
74 
75  // read weights from file
76  void ReadWeightsFromStream( std::istream& istr );
77 
78  // performs classifier training
79  virtual void Train() = 0;
80 
81  // create ranking
82  virtual const Ranking* CreateRanking() = 0;
83 
84  virtual ~MethodCompositeBase( void );
85 
86  protected:
87 
88  void DeclareOptions() = 0;
89  void ProcessOptions() = 0;
90 
91  IMethod* GetMethod( const TString& title ) const; // accessor by name
92 
93  IMethod* GetMethod( const Int_t index ) const; // accessor by index in vector
94 
95  //the index of the classifier currently boosted
99 
100  IMethod* GetLastMethod() { return fMethods.back(); }
101 
102  IMethod* GetPreviousMethod() { return (fCurrentMethodIdx>0)?fMethods[fCurrentMethodIdx-1]:0; }
103 
105  MethodBase* GetCurrentMethod(UInt_t idx){return dynamic_cast<MethodBase*>(fMethods.at(idx)); }
106 
107 
108 
109  std::vector<IMethod*> fMethods; // vector of all classifiers
110 
111  //the weight of every classifier used in the GetMVA method
112  std::vector<Double_t> fMethodWeight;
113 
115 
116  };
117 }
118 
119 #endif
120 
MethodCompositeBase(const TString &jobName, Types::EMVA methodType, const TString &methodTitle, DataSetInfo &theData, const TString &theOption="")
virtual void Train()=0
virtual Double_t GetMvaValue(Double_t *errLower=0, Double_t *errUpper=0)=0
void ReadWeightsFromXML(void *wghtnode)
XML streamer.
Virtual base Class for all MVA method.
Definition: MethodBase.h:106
Basic string class.
Definition: TString.h:129
Ranking for variables in method (implementation)
Definition: Ranking.h:48
int Int_t
Definition: RtypesCore.h:41
void ReadWeightsFromStream(std::istream &istr)
text streamer
void AddWeightsXMLTo(void *parent) const
IMethod * GetMethod(const TString &title) const
returns pointer to MVA that corresponds to given method title
#define ClassDef(name, id)
Definition: Rtypes.h:297
std::vector< Double_t > fMethodWeight
Virtual base class for combining several TMVA method.
virtual ~MethodCompositeBase(void)
delete methods
Class that contains all the data information.
Definition: DataSetInfo.h:60
unsigned int UInt_t
Definition: RtypesCore.h:42
double Double_t
Definition: RtypesCore.h:55
Interface for all concrete MVA method implementations.
Definition: IMethod.h:54
std::vector< IMethod * > fMethods
Abstract ClassifierFactory template that handles arbitrary types.
Double_t GetMvaValue(Double_t *err=0, Double_t *errUpper=0)
return composite MVA response
virtual void ReadWeightsFromStream(std::istream &)=0
virtual const Ranking * CreateRanking()=0
MethodBase * GetCurrentMethod(UInt_t idx)