from ROOT import TMVA, TFile, TTree, TCut
from subprocess import call
from os.path import isfile
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.regularizers import l2
from keras.optimizers import SGD
'!V:!Silent:Color:DrawProgressBar:Transformations=D,G:AnalysisType=Regression')
if not isfile('tmva_reg_example.root'):
call(['curl', '-O', 'http://root.cern.ch/files/tmva_reg_example.root'])
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', W_regularizer=l2(1e-5), input_dim=2))
model.add(Dense(1, activation='linear'))
model.compile(loss='mean_squared_error', optimizer=SGD(lr=0.01))
model.save('model.h5')
model.summary()
factory.BookMethod(dataloader, TMVA.Types.kPyKeras, 'PyKeras',
'H:!V:VarTransform=D,G:FilenameModel=model.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 TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseGeneralPurpose, Int_t netopt=0)
Create / open a file.
This is the main MVA steering class.
static void PyInitialize()
Initialize Python interpreter.