34void TMVA_Higgs_Classification() {
38 bool useLikelihood =
true;
39 bool useLikelihoodKDE =
false;
40 bool useFischer =
true;
47 auto outputFile =
TFile::Open(
"Higgs_ClassificationOutput.root",
"RECREATE");
49 TMVA::Factory factory(
"TMVA_Higgs_Classification", outputFile,
50 "!V:ROC:!Silent:Color:AnalysisType=Classification" );
60 TString inputFileName =
gROOT->GetTutorialDir() +
"/machine_learning/data/Higgs_data.root";
62 TFile *inputFile =
nullptr;
69 Error(
"TMVA_Higgs_Classification",
"Input file is not found - exit");
128 "nTrain_Signal=7000:nTrain_Background=7000:SplitMode=Random:NormMode=NumEvents:!V" );
142 "H:!V:TransformOutput:PDFInterpol=Spline2:NSmoothSig[0]=20:NSmoothBkg[0]=20:NSmoothBkg[1]=10:NSmooth=1:NAvEvtPerBin=50" );
145if (useLikelihoodKDE) {
147 "!H:!V:!TransformOutput:PDFInterpol=KDE:KDEtype=Gauss:KDEiter=Adaptive:KDEFineFactor=0.3:KDEborder=None:NAvEvtPerBin=50" );
153 factory.BookMethod(loader,
TMVA::Types::kFisher,
"Fisher",
"H:!V:Fisher:VarTransform=None:CreateMVAPdfs:PDFInterpolMVAPdf=Spline2:NbinsMVAPdf=50:NsmoothMVAPdf=10" );
159 "!V:NTrees=200:MinNodeSize=2.5%:MaxDepth=2:BoostType=AdaBoost:AdaBoostBeta=0.5:UseBaggedBoost:BaggedSampleFraction=0.5:SeparationType=GiniIndex:nCuts=20" );
165 "!H:!V:NeuronType=tanh:VarTransform=N:NCycles=100:HiddenLayers=N+5:TestRate=5:!UseRegulator" );
235 bool useDLGPU =
false;
241 TString inputLayoutString =
"InputLayout=1|1|7";
242 TString batchLayoutString=
"BatchLayout=1|128|7";
243 TString layoutString (
"Layout=DENSE|64|TANH,DENSE|64|TANH,DENSE|64|TANH,DENSE|64|TANH,DENSE|1|LINEAR");
246 TString training1(
"LearningRate=1e-3,Momentum=0.9,"
247 "ConvergenceSteps=10,BatchSize=128,TestRepetitions=1,"
248 "MaxEpochs=30,WeightDecay=1e-4,Regularization=None,"
249 "Optimizer=ADAM,ADAM_beta1=0.9,ADAM_beta2=0.999,ADAM_eps=1.E-7,"
250 "DropConfig=0.0+0.0+0.0+0.");
256 TString trainingStrategyString (
"TrainingStrategy=");
257 trainingStrategyString += training1;
261 TString dnnOptions (
"!H:V:ErrorStrategy=CROSSENTROPY:VarTransform=G:"
262 "WeightInitialization=XAVIER");
263 dnnOptions.Append (
":"); dnnOptions.Append (inputLayoutString);
264 dnnOptions.Append (
":"); dnnOptions.Append (batchLayoutString);
265 dnnOptions.Append (
":"); dnnOptions.Append (layoutString);
266 dnnOptions.Append (
":"); dnnOptions.Append (trainingStrategyString);
268 TString dnnMethodName =
"DNN_CPU";
270 dnnOptions +=
":Architecture=GPU";
271 dnnMethodName =
"DNN_GPU";
273 dnnOptions +=
":Architecture=CPU";
286 factory.TrainAllMethods();
294 factory.TestAllMethods();
296 factory.EvaluateAllMethods();
300 auto c1 = factory.GetROCCurve(loader);
double Double_t
Double 8 bytes.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
R__EXTERN TSystem * gSystem
A specialized string object used for TTree selections.
TObject * Get(const char *namecycle) override
Return pointer to object identified by namecycle.
A file, usually with extension .root, that stores data and code in the form of serialized objects in ...
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
void AddSignalTree(TTree *signal, Double_t weight=1.0, Types::ETreeType treetype=Types::kMaxTreeType)
number of signal events (used to compute significance)
void PrepareTrainingAndTestTree(const TCut &cut, const TString &splitOpt)
prepare the training and test trees -> same cuts for signal and background
void AddBackgroundTree(TTree *background, Double_t weight=1.0, Types::ETreeType treetype=Types::kMaxTreeType)
number of signal events (used to compute significance)
void AddVariable(const TString &expression, const TString &title, const TString &unit, char type='F', Double_t min=0, Double_t max=0)
user inserts discriminating variable in data set info
This is the main MVA steering class.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
A TTree represents a columnar dataset.
void Print(Option_t *option="") const override
Print a summary of the tree contents.