#!/usr/bin/env python # coding: utf-8 # # # # # TMVA Variable Importance # In[ ]: from ROOT import TFile,TMVA, TTree, TCut get_ipython().run_line_magic('jsroot', 'on') # ## Declare DataLoader # In[ ]: TMVA.Tools.Instance() inputFile = TFile.Open("https://raw.githubusercontent.com/iml-wg/tmvatutorials/master/inputdata.root") loader = TMVA.DataLoader("dataset") loader.AddVariable("var1") loader.AddVariable("var2") loader.AddVariable("var3") loader.AddVariable("var4") loader.AddVariable("var5 := var1*var2") # ## Setting up dataset # In[ ]: tsignal = TTree() tbackground = TTree() inputFile.GetObject("Sig", tsignal) inputFile.GetObject("Bkg", tbackground) mycuts = TCut() mycutb = TCut() loader.AddSignalTree(tsignal, 1) #signal weight = 1 loader.AddBackgroundTree (tbackground, 1) #background weight = 1 loader.PrepareTrainingAndTestTree(mycuts, mycutb, "nTrain_Signal=1000:nTrain_Background=1000:nTest_Signal=500:nTest_Background=500:SplitMode=Random:NormMode=NumEvents:!V" ) # ## Variable importance # In[ ]: vi = TMVA.VariableImportance(loader) vi.BookMethod(TMVA.Types.kBDT, "BDT", "!V:NTrees=5:MinNodeSize=2.5%:MaxDepth=2:BoostType=AdaBoost:AdaBoostBeta=0.5:UseBaggedBoost:BaggedSampleFraction=0.5:SeparationType=GiniIndex:nCuts=20" ) vi.SetType(TMVA.kShort) vi.Evaluate() # In[ ]: results=vi.GetResults() results.Print() results.Draw()