#ifndef ROOT_TMVA_HyperParameterOptimisation
#define ROOT_TMVA_HyperParameterOptimisation
#ifndef ROOT_TString
#include "TString.h"
#endif
#ifndef ROOT_TMultiGraph
#include "TMultiGraph.h"
#endif
#ifndef ROOT_TMVA_IMethod
#include "TMVA/IMethod.h"
#endif
#ifndef ROOT_TMVA_Configurable
#include "TMVA/Configurable.h"
#endif
#ifndef ROOT_TMVA_Types
#include "TMVA/Types.h"
#endif
#ifndef ROOT_TMVA_DataSet
#include "TMVA/DataSet.h"
#endif
#ifndef ROOT_TMVA_Event
#include "TMVA/Event.h"
#endif
#ifndef ROOT_TMVA_Results
#include<TMVA/Results.h>
#endif
#ifndef ROOT_TMVA_Factory
#include<TMVA/Factory.h>
#endif
#ifndef ROOT_TMVA_DataLoader
#include<TMVA/DataLoader.h>
#endif
#ifndef ROOT_TMVA_Envelope
#include<TMVA/Envelope.h>
#endif
namespace TMVA {
class HyperParameterOptimisationResult
{
friend class HyperParameterOptimisation;
private:
std::vector<Float_t> fROCs;
Float_t fROCAVG;
std::shared_ptr<TMultiGraph> fROCCurves;
std::vector<Double_t> fSigs;
std::vector<Double_t> fSeps;
std::vector<Double_t> fEff01s;
std::vector<Double_t> fEff10s;
std::vector<Double_t> fEff30s;
std::vector<Double_t> fEffAreas;
std::vector<Double_t> fTrainEff01s;
std::vector<Double_t> fTrainEff10s;
std::vector<Double_t> fTrainEff30s;
TString fMethodName;
public:
HyperParameterOptimisationResult();
~HyperParameterOptimisationResult();
std::vector<std::map<TString,Double_t> > fFoldParameters;
std::vector<Float_t> GetROCValues(){return fROCs;}
Float_t GetROCAverage(){return fROCAVG;}
TMultiGraph *GetROCCurves(Bool_t fLegend=kTRUE);
void Print() const ;
std::vector<Double_t> GetSigValues(){return fSigs;}
std::vector<Double_t> GetSepValues(){return fSeps;}
std::vector<Double_t> GetEff01Values(){return fEff01s;}
std::vector<Double_t> GetEff10Values(){return fEff10s;}
std::vector<Double_t> GetEff30Values(){return fEff30s;}
std::vector<Double_t> GetEffAreaValues(){return fEffAreas;}
std::vector<Double_t> GetTrainEff01Values(){return fTrainEff01s;}
std::vector<Double_t> GetTrainEff10Values(){return fTrainEff10s;}
std::vector<Double_t> GetTrainEff30Values(){return fTrainEff30s;}
};
class HyperParameterOptimisation : public Envelope {
public:
HyperParameterOptimisation(DataLoader *dataloader);
~HyperParameterOptimisation();
void SetFitter(TString fitType){fFitType=fitType;}
TString GetFiiter(){return fFitType;}
void SetFOMType(TString ftype){fFomType=ftype;}
TString GetFOMType(){return fFitType;}
void SetNumFolds(UInt_t folds);
UInt_t GetNumFolds(){return fNumFolds;}
virtual void Evaluate();
const HyperParameterOptimisationResult& GetResults() const {return fResults;}
private:
TString fFomType;
TString fFitType;
UInt_t fNumFolds;
Bool_t fFoldStatus;
HyperParameterOptimisationResult fResults;
std::unique_ptr<Factory> fClassifier;
public:
ClassDef(HyperParameterOptimisation,0);
};
}
#endif
HyperParameterOptimisation.h:1 HyperParameterOptimisation.h:2 HyperParameterOptimisation.h:3 HyperParameterOptimisation.h:4 HyperParameterOptimisation.h:5 HyperParameterOptimisation.h:6 HyperParameterOptimisation.h:7 HyperParameterOptimisation.h:8 HyperParameterOptimisation.h:9 HyperParameterOptimisation.h:10 HyperParameterOptimisation.h:11 HyperParameterOptimisation.h:12 HyperParameterOptimisation.h:13 HyperParameterOptimisation.h:14 HyperParameterOptimisation.h:15 HyperParameterOptimisation.h:16 HyperParameterOptimisation.h:17 HyperParameterOptimisation.h:18 HyperParameterOptimisation.h:19 HyperParameterOptimisation.h:20 HyperParameterOptimisation.h:21 HyperParameterOptimisation.h:22 HyperParameterOptimisation.h:23 HyperParameterOptimisation.h:24 HyperParameterOptimisation.h:25 HyperParameterOptimisation.h:26 HyperParameterOptimisation.h:27 HyperParameterOptimisation.h:28 HyperParameterOptimisation.h:29 HyperParameterOptimisation.h:30 HyperParameterOptimisation.h:31 HyperParameterOptimisation.h:32 HyperParameterOptimisation.h:33 HyperParameterOptimisation.h:34 HyperParameterOptimisation.h:35 HyperParameterOptimisation.h:36 HyperParameterOptimisation.h:37 HyperParameterOptimisation.h:38 HyperParameterOptimisation.h:39 HyperParameterOptimisation.h:40 HyperParameterOptimisation.h:41 HyperParameterOptimisation.h:42 HyperParameterOptimisation.h:43 HyperParameterOptimisation.h:44 HyperParameterOptimisation.h:45 HyperParameterOptimisation.h:46 HyperParameterOptimisation.h:47 HyperParameterOptimisation.h:48 HyperParameterOptimisation.h:49 HyperParameterOptimisation.h:50 HyperParameterOptimisation.h:51 HyperParameterOptimisation.h:52 HyperParameterOptimisation.h:53 HyperParameterOptimisation.h:54 HyperParameterOptimisation.h:55 HyperParameterOptimisation.h:56 HyperParameterOptimisation.h:57 HyperParameterOptimisation.h:58 HyperParameterOptimisation.h:59 HyperParameterOptimisation.h:60 HyperParameterOptimisation.h:61 HyperParameterOptimisation.h:62 HyperParameterOptimisation.h:63 HyperParameterOptimisation.h:64 HyperParameterOptimisation.h:65 HyperParameterOptimisation.h:66 HyperParameterOptimisation.h:67 HyperParameterOptimisation.h:68 HyperParameterOptimisation.h:69 HyperParameterOptimisation.h:70 HyperParameterOptimisation.h:71 HyperParameterOptimisation.h:72 HyperParameterOptimisation.h:73 HyperParameterOptimisation.h:74 HyperParameterOptimisation.h:75 HyperParameterOptimisation.h:76 HyperParameterOptimisation.h:77 HyperParameterOptimisation.h:78 HyperParameterOptimisation.h:79 HyperParameterOptimisation.h:80 HyperParameterOptimisation.h:81 HyperParameterOptimisation.h:82 HyperParameterOptimisation.h:83 HyperParameterOptimisation.h:84 HyperParameterOptimisation.h:85 HyperParameterOptimisation.h:86 HyperParameterOptimisation.h:87 HyperParameterOptimisation.h:88 HyperParameterOptimisation.h:89 HyperParameterOptimisation.h:90 HyperParameterOptimisation.h:91 HyperParameterOptimisation.h:92 HyperParameterOptimisation.h:93 HyperParameterOptimisation.h:94 HyperParameterOptimisation.h:95 HyperParameterOptimisation.h:96 HyperParameterOptimisation.h:97 HyperParameterOptimisation.h:98 HyperParameterOptimisation.h:99 HyperParameterOptimisation.h:100 HyperParameterOptimisation.h:101 HyperParameterOptimisation.h:102 HyperParameterOptimisation.h:103 HyperParameterOptimisation.h:104 HyperParameterOptimisation.h:105 HyperParameterOptimisation.h:106 HyperParameterOptimisation.h:107 HyperParameterOptimisation.h:108 HyperParameterOptimisation.h:109 HyperParameterOptimisation.h:110 HyperParameterOptimisation.h:111 HyperParameterOptimisation.h:112 HyperParameterOptimisation.h:113 HyperParameterOptimisation.h:114 HyperParameterOptimisation.h:115 HyperParameterOptimisation.h:116 HyperParameterOptimisation.h:117 HyperParameterOptimisation.h:118 HyperParameterOptimisation.h:119 HyperParameterOptimisation.h:120 HyperParameterOptimisation.h:121 HyperParameterOptimisation.h:122 HyperParameterOptimisation.h:123 HyperParameterOptimisation.h:124 HyperParameterOptimisation.h:125 HyperParameterOptimisation.h:126 HyperParameterOptimisation.h:127 HyperParameterOptimisation.h:128 HyperParameterOptimisation.h:129 HyperParameterOptimisation.h:130 HyperParameterOptimisation.h:131 HyperParameterOptimisation.h:132