library: libMLP #include "TMLPAnalyzer.h"

# TMLPAnalyzer

class description - source file - inheritance tree (.pdf)

## class TMLPAnalyzer : public TObject

| Inheritance Chart:
`TObject`
| <- | `TMLPAnalyzer` |

        protected:

          const char* GetInputNeuronTitle(Int_t in) const
                Int_t GetLayers()
              TString GetNeuronFormula(Int_t idx)
                Int_t GetNeurons(Int_t layer)
          const char* GetOutputNeuronTitle(Int_t out) const

        public:

                          TMLPAnalyzer(TMultiLayerPerceptron& net)
                          TMLPAnalyzer(TMultiLayerPerceptron* net)
                          TMLPAnalyzer(const TMLPAnalyzer&)
                  virtual ~TMLPAnalyzer()
                     void CheckNetwork()
           static TClass* Class()
                     void DrawDInput(Int_t i)
                     void DrawDInputs()
                     void DrawNetwork(Int_t neuron, const char* signal, const char* bg)
                TProfile* DrawTruthDeviation(Int_t outnode = 0, Option_t* option = "")
                TProfile* DrawTruthDeviationInOut(Int_t innode, Int_t outnode = 0, Option_t* option = "")
                 THStack* DrawTruthDeviationInsOut(Int_t outnode = 0, Option_t* option = "")
                 THStack* DrawTruthDeviations(Option_t* option = "")
                     void GatherInformations()
                   TTree* GetIOTree() const
          virtual TClass* IsA() const
            TMLPAnalyzer& operator=(const TMLPAnalyzer&)
             virtual void ShowMembers(TMemberInspector& insp, char* parent)
             virtual void Streamer(TBuffer& b)
                     void StreamerNVirtual(TBuffer& b)

### Data Members

        private:

          TMultiLayerPerceptron* fNetwork
                          TTree* fAnalysisTree
                          TTree* fIOTree

## Class Description

     TMLPAnalyzer

     This utility class contains a set of tests usefull when developing
     a neural network.
     It allows you to check for unneeded variables, and to control
     the network structure.

~TMLPAnalyzer()

Int_t GetLayers()

     Returns the number of layers.

Int_t GetNeurons(Int_t layer)

     Returns the number of neurons in given layer.

TString GetNeuronFormula(Int_t idx)

     Returns the formula used as input for neuron (idx) in
     the first layer.

const char* GetInputNeuronTitle(Int_t in)

const char* GetOutputNeuronTitle(Int_t out)

void CheckNetwork()

     Gives some information about the network in the terminal.

void GatherInformations()

     Collect informations about what is usefull in the network.
     This method has to be called first when analyzing a network.
     Fills the two analysis trees.

void DrawDInput(Int_t i)

     Draws the distribution (on the test sample) of the
     impact on the network output of a small variation of
     the ith input.

void DrawDInputs()

     Draws the distribution (on the test sample) of the
     impact on the network output of a small variation of
     each input.

void DrawNetwork(Int_t neuron, const char* signal, const char* bg)

     Draws the distribution of the neural network (using ith neuron).
     Two distributions are drawn, for events passing respectively the "signal"
     and "background" cuts. Only the test sample is used.

TProfile* DrawTruthDeviation(Int_t outnode /*=0*/, Option_t *option /*=""*/)

     Create a profile of the difference of the MLP output minus the
     true value for a given output node outnode, vs the true value for
     outnode, for all test data events. This method is mainly useful
     when doing regression analysis with the MLP (i.e. not classification,
     but continuous truth values).
     The resulting TProfile histogram is returned.
     It is not drawn if option "goff" is specified.
     Options are passed to TProfile::Draw

THStack* DrawTruthDeviations(Option_t *option /*=""*/)

     Creates TProfiles of the difference of the MLP output minus the
     true value vs the true value, one for each output, filled with the
     test data events. This method is mainly useful when doing regression
     analysis with the MLP (i.e. not classification, but continuous truth
     values).
     The returned THStack contains all the TProfiles. It is drawn unless
     the option "goff" is specified.
     Options are passed to TProfile::Draw.

TProfile* DrawTruthDeviationInOut(Int_t innode, Int_t outnode /*=0*/, Option_t *option /*=""*/)

     Creates a profile of the difference of the MLP output outnode minus
     the true value of outnode vs the input value innode, for all test
     data events.
     The resulting TProfile histogram is returned.
     It is not drawn if option "goff" is specified.
     Options are passed to TProfile::Draw

THStack* DrawTruthDeviationInsOut(Int_t outnode /*=0*/, Option_t *option /*=""*/)

     Creates a profile of the difference of the MLP output outnode minus the
     true value of outnode vs the input value, stacked for all inputs, for
     all test data events.
     The returned THStack contains all the TProfiles. It is drawn unless
     the option "goff" is specified.
     Options are passed to TProfile::Draw.

### Inline Functions

             TMLPAnalyzer TMLPAnalyzer(TMultiLayerPerceptron& net)
             TMLPAnalyzer TMLPAnalyzer(TMultiLayerPerceptron* net)
                   TTree* GetIOTree() const
                  TClass* Class()
                  TClass* IsA() const
                     void ShowMembers(TMemberInspector& insp, char* parent)
                     void Streamer(TBuffer& b)
                     void StreamerNVirtual(TBuffer& b)
             TMLPAnalyzer TMLPAnalyzer(const TMLPAnalyzer&)
            TMLPAnalyzer& operator=(const TMLPAnalyzer&)

Author: Christophe.Delaere@cern.ch 25/04/04
Last update: root/mlp:$Name: $:$Id: TMLPAnalyzer.cxx,v 1.10 2005/02/03 20:32:55 brun Exp $
Copyright (C) 1995-2003, Rene Brun and Fons Rademakers. *