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
#define ClassDef(name, id)
Definition: Rtypes.h:335
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Class that contains all the data information.
Definition: DataSetInfo.h:62
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
fraction of events in training tree used for cross validation
void Init(void)
default initialisations
TString fLearningMethod
the learning method (given via option string)
TString fMLPBuildOptions
option string to build the mlp
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
TTree * fLocalTrainingTree
local copy of training tree
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
the TMLP
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...
TString fLayerSpec
Layer specification option.
virtual ~MethodTMlpANN(void)
destructor
Int_t fNcycles
number of training cycles
void GetHelpMessage() const
get help message text
TString fHiddenLayer
string containing the hidden layer structure
void SetHiddenLayer(TString hiddenlayer="")
Definition: MethodTMlpANN.h:83
Ranking for variables in method (implementation)
Definition: Ranking.h:48
EAnalysisType
Definition: Types.h:126
This class describes a neural network.
Basic string class.
Definition: TString.h:136
A TTree represents a columnar dataset.
Definition: TTree.h:79
create variable transformations