from ROOT import TMVA, TFile, TTree, TCut
from subprocess import call
from os.path import isfile
 
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Activation
from tensorflow.keras.optimizers import SGD
 
 
output = 
TFile.Open(
'TMVA_Regression_Keras.root', 
'RECREATE')
 
        '!V:!Silent:Color:DrawProgressBar:Transformations=D,G:AnalysisType=Regression')
 
data = 
TFile.Open(
"http://root.cern.ch/files/tmva_reg_example.root", 
"CACHEREAD")
 
if data is None:
    raise FileNotFoundError("Input file cannot be downloaded - exit")
 
tree = data.Get('TreeR')
 
for branch in tree.GetListOfBranches():
    name = branch.GetName()
    if name != 'fvalue':
        dataloader.AddVariable(name)
dataloader.AddTarget('fvalue')
 
dataloader.AddRegressionTree(tree, 1.0)
dataloader.PrepareTrainingAndTestTree(
TCut(
''),
 
        'nTrain_Regression=4000:SplitMode=Random:NormMode=NumEvents:!V')
 
 
model = Sequential()
model.add(Dense(64, activation='tanh', input_dim=2))
model.add(Dense(1, activation='linear'))
 
model.compile(loss='mean_squared_error', optimizer=SGD(learning_rate=0.01), weighted_metrics=[])
 
model.save('modelRegression.h5')
model.summary()
 
factory.BookMethod(dataloader, TMVA.Types.kPyKeras, 'PyKeras',
        'H:!V:VarTransform=D,G:FilenameModel=modelRegression.h5:FilenameTrainedModel=trainedModelRegression.h5:NumEpochs=20:BatchSize=32')
factory.BookMethod(dataloader, TMVA.Types.kBDT, 'BDTG',
        '!H:!V:VarTransform=D,G:NTrees=1000:BoostType=Grad:Shrinkage=0.1:UseBaggedBoost:BaggedSampleFraction=0.5:nCuts=20:MaxDepth=4')
 
factory.TrainAllMethods()
factory.TestAllMethods()
factory.EvaluateAllMethods()
A specialized string object used for TTree selections.
 
static Bool_t SetCacheFileDir(ROOT::Internal::TStringView cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE)
 
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.