43useLikelihoodKDE =
False
50if ROOT.gSystem.GetFromPipe(
"root-config --has-tmva-pymva") ==
"yes":
59 ROOT.Warning(
"TMVA_Higgs_Classification",
"Skip using Keras since tensorflow is not available")
62outputFile =
TFile.Open(
"Higgs_ClassificationOutput.root",
"RECREATE")
64 "TMVA_Higgs_Classification", outputFile, V=
False, ROC=
True, Silent=
False, Color=
True, AnalysisType=
"Classification"
72inputFileName = str(ROOT.gROOT.GetTutorialDir()) +
"/machine_learning/data/Higgs_data.root"
76 raise FileNotFoundError(
"Input file is not found - exit")
80signalTree = inputFile.Get(
"sig_tree")
81backgroundTree = inputFile.Get(
"bkg_tree")
91loader.AddVariable(
"m_jj")
92loader.AddVariable(
"m_jjj")
93loader.AddVariable(
"m_lv")
94loader.AddVariable(
"m_jlv")
95loader.AddVariable(
"m_bb")
96loader.AddVariable(
"m_wbb")
97loader.AddVariable(
"m_wwbb")
102backgroundWeight = 1.0
104loader.AddSignalTree(signalTree, signalWeight)
105loader.AddBackgroundTree(backgroundTree, backgroundWeight)
114mycuts = ROOT.TCut(
"")
115mycutb = ROOT.TCut(
"")
124loader.PrepareTrainingAndTestTree(
125 mycuts, mycutb, nTrain_Signal=7000, nTrain_Background=7000, SplitMode=
"Random", NormMode=
"NumEvents", V=
False
136 TMVA.Types.kLikelihood,
140 TransformOutput=
True,
141 PDFInterpol=
"Spline2:NSmoothSig[0]=20:NSmoothBkg[0]=20:NSmoothBkg[1]=10",
150 TMVA.Types.kLikelihood,
154 TransformOutput=
False,
174 PDFInterpolMVAPdf=
"Spline2",
189 BoostType=
"AdaBoost",
192 BaggedSampleFraction=0.5,
193 SeparationType=
"GiniIndex",
273 useDLGPU = ROOT.gSystem.GetFromPipe(
"root-config --has-tmva-gpu") ==
"yes"
278 training1 = ROOT.TString(
279 "LearningRate=1e-3,Momentum=0.9,"
280 "ConvergenceSteps=10,BatchSize=128,TestRepetitions=1,"
281 "MaxEpochs=20,WeightDecay=1e-4,Regularization=None,"
282 "Optimizer=ADAM,ADAM_beta1=0.9,ADAM_beta2=0.999,ADAM_eps=1.E-7,"
283 "DropConfig=0.0+0.0+0.0+0."
291 dnnMethodName = ROOT.TString(
"DNN_CPU")
295 dnnMethodName =
"DNN_GPU"
305 ErrorStrategy=
"CROSSENTROPY",
307 WeightInitialization=
"XAVIER",
309 BatchLayout=
"1|128|7",
310 Layout=
"DENSE|64|TANH,DENSE|64|TANH,DENSE|64|TANH,DENSE|64|TANH,DENSE|1|LINEAR",
311 TrainingStrategy=training1,
317 ROOT.Info(
"TMVA_Higgs_Classification",
"Building Deep Learning keras model")
319 from tensorflow.keras.layers
import Dense
320 from tensorflow.keras.models
import Sequential
321 from tensorflow.keras.optimizers
import Adam
324 model.add(Dense(64, activation=
"relu", input_dim=7))
325 model.add(Dense(64, activation=
"relu"))
326 model.add(Dense(64, activation=
"relu"))
327 model.add(Dense(64, activation=
"relu"))
328 model.add(Dense(2, activation=
"sigmoid"))
329 model.compile(loss=
"binary_crossentropy", optimizer=Adam(learning_rate=0.001), weighted_metrics=[
"accuracy"])
330 model.save(
"model_higgs.keras")
333 if not os.path.exists(
"model_higgs.keras"):
334 raise FileNotFoundError(
"Error creating Keras model file - skip using Keras")
337 ROOT.Info(
"TMVA_Higgs_Classification",
"Booking Deep Learning keras model")
345 FilenameModel=
"model_higgs.keras",
346 FilenameTrainedModel=
"trained_model_higgs.keras",
358factory.TrainAllMethods()
362factory.TestAllMethods()
364factory.EvaluateAllMethods()
368c1 = factory.GetROCCurve(loader)
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.
This is the main MVA steering class.
static void PyInitialize()
Initialize Python interpreter.