TMVA::Tools::Instance(); auto inputFile = TFile::Open("https://raw.githubusercontent.com/iml-wg/tmvatutorials/master/inputdata.root"); auto outputFile = TFile::Open("TMVAOutputBDT.root", "RECREATE"); TMVA::Factory factory("TMVARegression", outputFile, "!V:!Silent:Color:DrawProgressBar:AnalysisType=Regression" ); TMVA::DataLoader loader("dataset"); // Add the feature variables, names reference branches in inputFile ttree loader.AddVariable("var1"); loader.AddVariable("var2"); loader.AddVariable("var3"); loader.AddVariable("var4"); loader.AddVariable("var5 := var1-var3"); // create new features loader.AddVariable("var6 := var1+var2"); loader.AddTarget( "target := var2+var3" ); // define the target for the regression TTree *tree; inputFile->GetObject("Sig", tree); TCut mycuts = ""; // e.g. TCut mycuts = "abs(var1)<0.5"; loader.AddRegressionTree(tree, 1.0); // link the TTree to the loader, weight for each event = 1 loader.PrepareTrainingAndTestTree(mycuts, "nTrain_Regression=1000:nTest_Regression=1000:SplitMode=Random:NormMode=NumEvents:!V" ); // Boosted Decision Trees factory.BookMethod(&loader,TMVA::Types::kBDT, "BDTG", TString("!H:!V:NTrees=64::BoostType=Grad:Shrinkage=0.3:nCuts=20:MaxDepth=4:")+ TString("RegressionLossFunctionBDTG=AbsoluteDeviation")); factory.TrainAllMethods(); factory.TestAllMethods(); factory.EvaluateAllMethods(); %jsroot on outputFile->Close(); auto resultsFile = TFile::Open("TMVAOutputBDT.root"); auto resultsTree = resultsFile->Get("dataset/TestTree"); TCanvas c; resultsTree->Draw("BDTG-target"); // BDTG is the predicted value, target is the true value c.Draw();