#!/usr/bin/env python
# coding: utf-8
#
#
#
#
#
#
#
#
# # HTML formated output
#
# In[1]:
import ROOT
from ROOT import TFile, TMVA, TCut
# In[2]:
get_ipython().run_line_magic('jsmva', 'on')
# In[3]:
outputFile = TFile( "TMVA.root", 'RECREATE' )
TMVA.Tools.Instance()
factory = TMVA.Factory(JobName="TMVAClassification", TargetFile=outputFile,
V=False, Transformations=["I", "D", "P", "G", "D"],
AnalysisType="Classification")
# In[4]:
if ROOT.gSystem.AccessPathName( "tmva_class_example.root" ) != 0:
ROOT.gSystem.Exec( "wget https://root.cern.ch/files/tmva_class_example.root")
dataset = "tmva_class_example" #the dataset name
loader = TMVA.DataLoader(dataset)
loader.AddVariable( "myvar1 := var1+var2", 'F' )
loader.AddVariable( "myvar2 := var1-var2", "Expression 2", 'F' )
loader.AddVariable( "var3", "Variable 3", 'F' )
loader.AddVariable( "var4", "Variable 4", 'F' )
loader.AddSpectator( "spec1:=var1*2", "Spectator 1", 'F' )
loader.AddSpectator( "spec2:=var1*3", "Spectator 2", 'F' )
# In[5]:
input = TFile.Open( "tmva_class_example.root" )
# Get the signal and background trees for training
signal = input.Get( "TreeS" )
background = input.Get( "TreeB" )
# In[6]:
# Global event weights (see below for setting event-wise weights)
signalWeight = 1.0
backgroundWeight = 1.0
loader.AddSignalTree(signal, signalWeight)
loader.AddBackgroundTree(background, backgroundWeight)
loader.fSignalWeight = signalWeight
loader.fBackgroundWeight = backgroundWeight
loader.fTreeS = signal
loader.fTreeB = background
# In[7]:
mycuts = TCut("")
mycutb = TCut("")
loader.PrepareTrainingAndTestTree(SigCut=mycuts, BkgCut=mycutb,
nTrain_Signal=0, nTrain_Background=0, SplitMode="Random", NormMode="NumEvents", V=False)
# In[8]:
factory.BookMethod( DataLoader=loader, Method=TMVA.Types.kMLP, MethodTitle="MLP",
H=False, V=False, NeuronType="tanh", VarTransform="N", NCycles=600, HiddenLayers="N+5",
TestRate=5, UseRegulator=False )
# In[9]:
factory.TrainAllMethods()
# In[ ]:
# In[10]:
factory.TestAllMethods()
# In[11]:
factory.EvaluateAllMethods()
# In[ ]: