Class to perform two class classification.
The first step before any analysis is to preperate the data, to do that you need to create an object of TMVA::DataLoader, in this object you need to configure the variables and the number of events to train/test. The class TMVA::Experimental::Classification needs a TMVA::DataLoader object, optional a TFile object to save the results and some extra options in a string like "V:Color:Transformations=I;D;P;U;G:Silent:DrawProgressBar:ModelPersistence:Jobs=2" where: V = verbose output Color = coloured screen output Silent = batch mode: boolean silent flag inhibiting any output from TMVA Transformations = list of transformations to test. DrawProgressBar = draw progress bar to display training and testing. ModelPersistence = to save the trained model in xml or serialized files. Jobs = number of ml methods to test/train in parallel using MultiProc, requires to call Evaluate method. Basic example.
{
TString fname =
"./tmva_class_example.root";
} else {
input =
TFile::Open(
"http://root.cern.ch/files/tmva_class_example.root",
"CACHEREAD");
}
if (!input) {
std::cout << "ERROR: could not open data file" << std::endl;
exit(1);
}
dataloader->AddVariable(
"myvar1 := var1+var2",
'F');
dataloader->AddVariable(
"myvar2 := var1-var2",
"Expression 2",
"",
'F');
dataloader->AddVariable(
"var3",
"Variable 3",
"units",
'F');
dataloader->AddVariable(
"var4",
"Variable 4",
"units",
'F');
dataloader->AddSpectator(
"spec1 := var1*2",
"Spectator 1",
"units",
'F');
dataloader->AddSpectator(
"spec2 := var1*3",
"Spectator 2",
"units",
'F');
dataloader->SetBackgroundWeightExpression(
"weight");
"UseBaggedBoost:BaggedSampleFraction=0.5:nCuts=20:MaxDepth=2");
c->SetTitle(
"ROC-Integral Curve");
for (
UInt_t i = 0; i < results.size(); i++) {
auto roc = results[i].GetROCGraph();
roc->SetLineColorAlpha(i + 1, 0.1);
}
mg->GetXaxis()->SetTitle(
" Signal Efficiency ");
mg->GetYaxis()->SetTitle(
" Background Rejection ");
c->BuildLegend(0.15, 0.15, 0.3, 0.3);
delete cl;
}
char * Form(const char *fmt,...)
R__EXTERN TSystem * gSystem
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
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::kUseGeneralPurpose, Int_t netopt=0)
Create / open a file.
virtual void BookMethod(TString methodname, TString methodtitle, TString options="")
Method to book the machine learning method to perform the algorithm.
std::vector< ClassificationResult > & GetResults()
return the the vector of TMVA::Experimental::ClassificationResult objects.
virtual void Evaluate()
Method to perform Train/Test over all ml method booked.
A TMultiGraph is a collection of TGraph (or derived) objects.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
A TTree object has a header with a name and a title.
void classification(UInt_t jobs=4)
static constexpr double mg