Logo ROOT  
Reference Guide
MethodTMlpANN.h
Go to the documentation of this file.
1// @(#)root/tmva $Id$
2// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss
3
4/**********************************************************************************
5 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6 * Package: TMVA *
7 * Class : MethodTMlpANN *
8 * Web : http://tmva.sourceforge.net *
9 * *
10 * Description: *
11 * Implementation of interface for Root-integrated artificial neural *
12 * network: TMultiLayerPerceptron, author: Christophe.Delaere@cern.ch *
13 * for a manual, see *
14 * http://root.cern.ch/root/html/TMultiLayerPerceptron.html *
15 * *
16 * Authors (alphabetical): *
17 * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland *
18 * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, Germany *
19 * Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada *
20 * *
21 * Copyright (c) 2005: *
22 * CERN, Switzerland *
23 * U. of Victoria, Canada *
24 * MPI-K Heidelberg, Germany *
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_MethodTMlpANN
32#define ROOT_TMVA_MethodTMlpANN
33
34//////////////////////////////////////////////////////////////////////////
35// //
36// MethodTMlpANN //
37// //
38// Implementation of interface for Root-integrated artificial neural //
39// network: TMultiLayerPerceptron //
40// //
41//////////////////////////////////////////////////////////////////////////
42
43#include "TMVA/MethodBase.h"
44
46
47namespace TMVA {
48
49 class MethodTMlpANN : public MethodBase {
50
51 public:
52
53 MethodTMlpANN( const TString& jobName,
54 const TString& methodTitle,
55 DataSetInfo& theData,
56 const TString& theOption = "3000:N-1:N-2");
57
58 MethodTMlpANN( DataSetInfo& theData,
59 const TString& theWeightFile);
60
61 virtual ~MethodTMlpANN( void );
62
63 virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t numberClasses, UInt_t numberTargets );
64
65 // training method
66 void Train( void );
67
69
70 // write weights to file
71 void AddWeightsXMLTo( void* parent ) const;
72
73 // read weights from file
74 void ReadWeightsFromStream( std::istream& istr );
75 void ReadWeightsFromXML(void* wghtnode);
76
77 // calculate the MVA value ...
78 // - here it is just a dummy, as it is done in the overwritten
79 // - PrepareEvaluationtree... ugly but necessary due to the structure
80 // of TMultiLayerPercepton in ROOT grr... :-(
81 Double_t GetMvaValue( Double_t* err = 0, Double_t* errUpper = 0 );
82
83 void SetHiddenLayer(TString hiddenlayer = "" ) { fHiddenLayer=hiddenlayer; }
84
85 // ranking of input variables
86 const Ranking* CreateRanking() { return 0; }
87
88 // make ROOT-independent C++ class
89 void MakeClass( const TString& classFileName = TString("") ) const;
90
91 protected:
92
93 // make ROOT-independent C++ class for classifier response (classifier-specific implementation)
94 void MakeClassSpecific( std::ostream&, const TString& ) const;
95
96 // get help message text
97 void GetHelpMessage() const;
98
99 private:
100
101 // the option handling methods
102 void DeclareOptions();
103 void ProcessOptions();
104
106
107 // option string
108 TString fLayerSpec; // Layer specification option
109
111 TTree* fLocalTrainingTree; // local copy of training tree
112
113 TString fHiddenLayer; // string containing the hidden layer structure
114 Int_t fNcycles; // number of training cycles
115 Double_t fValidationFraction; // fraction of events in training tree used for cross validation
116 TString fMLPBuildOptions; // option string to build the mlp
117
118 TString fLearningMethod; // the learning method (given via option string)
119
120 // default initialisation called by all constructors
121 void Init( void );
122
123 ClassDef(MethodTMlpANN,0); // Implementation of interface for TMultiLayerPerceptron
124 };
125
126} // namespace TMVA
127
128#endif
double Double_t
Definition: RtypesCore.h:57
#define ClassDef(name, id)
Definition: Rtypes.h:322
int type
Definition: TGX11.cxx:120
Class that contains all the data information.
Definition: DataSetInfo.h:60
Virtual base Class for all MVA method.
Definition: MethodBase.h:111
virtual void ReadWeightsFromStream(std::istream &)=0
This is the TMVA TMultiLayerPerceptron interface class.
Definition: MethodTMlpANN.h:49
void ReadWeightsFromStream(std::istream &istr)
read weights from stream since the MLP can not read from the stream, we 1st: write the weights to tem...
Double_t fValidationFraction
void Init(void)
default initialisations
virtual Bool_t HasAnalysisType(Types::EAnalysisType type, UInt_t numberClasses, UInt_t numberTargets)
TMlpANN can handle classification with 2 classes.
const Ranking * CreateRanking()
Definition: MethodTMlpANN.h:86
void Train(void)
performs TMlpANN training available learning methods:
Double_t GetMvaValue(Double_t *err=0, Double_t *errUpper=0)
calculate the value of the neural net for the current event
void DeclareOptions()
define the options (their key words) that can be set in the option string
void CreateMLPOptions(TString)
translates options from option string into TMlpANN language
void ReadWeightsFromXML(void *wghtnode)
rebuild temporary textfile from xml weightfile and load this file into MLP
MethodTMlpANN(const TString &jobName, const TString &methodTitle, DataSetInfo &theData, const TString &theOption="3000:N-1:N-2")
standard constructor
void ProcessOptions()
builds the neural network as specified by the user
void MakeClassSpecific(std::ostream &, const TString &) const
write specific classifier response nothing to do here - all taken care of by TMultiLayerPerceptron
TMultiLayerPerceptron * fMLP
void AddWeightsXMLTo(void *parent) const
write weights to xml file
void MakeClass(const TString &classFileName=TString("")) const
create reader class for classifier -> overwrites base class function create specific class for TMulti...
virtual ~MethodTMlpANN(void)
destructor
void GetHelpMessage() const
get help message text
void SetHiddenLayer(TString hiddenlayer="")
Definition: MethodTMlpANN.h:83
Ranking for variables in method (implementation)
Definition: Ranking.h:48
EAnalysisType
Definition: Types.h:127
This class describes a neural network.
Basic string class.
Definition: TString.h:131
A TTree represents a columnar dataset.
Definition: TTree.h:78
create variable transformations