50 for(
auto &roc:
fROCs) avg+=roc.second;
51 return avg/fROCs.size();
69 fLogger << kHEADER <<
" ==== Results ====" <<
Endl;
71 fLogger << kINFO <<
Form(
"Fold %i ROC-Int : %.4f",item.first,item.second) << std::endl;
73 fLogger << kINFO <<
"------------------------" <<
Endl;
84 fROCCurves->GetXaxis()->SetTitle(
" Signal Efficiency ");
85 fROCCurves->GetYaxis()->SetTitle(
" Background Rejection ");
88 c->
SetTitle(
"Cross Validation ROC Curves");
94 fNumFolds(5),fClassifier(new
TMVA::
Factory(
"CrossValidation",
"!V:!ROC:Silent:!ModelPersistence:!Color:!DrawProgressBar:AnalysisType=Classification"))
116 if(methodName ==
"")
Log() << kFATAL <<
"No method booked for cross-validation" <<
Endl;
120 Log() << kINFO <<
"Evaluate method: " << methodTitle <<
Endl;
131 Log() << kDEBUG <<
"Fold (" << methodTitle <<
"): " << i <<
Endl;
133 TString foldTitle = methodTitle;
134 foldTitle +=
"_fold";
178 Log() << kINFO <<
"Evaluation done." <<
Endl;
183 if(
fResults.
fROCs.size()==0)
Log() << kFATAL <<
"No cross-validation results available" <<
Endl;
std::vector< Double_t > fSigs
Float_t GetROCAverage() const
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
MsgLogger & Endl(MsgLogger &ml)
void AddOutput(Types::ETreeType type, Types::EAnalysisType analysisType)
void SetTitle(const char *title="")
Set canvas title.
const CrossValidationResult & GetResults() const
T GetValue(const TString &key)
CrossValidationResult fResults
A TMultiGraph is a collection of TGraph (or derived) objects.
Virtual base Class for all MVA method.
std::unique_ptr< Factory > fClassifier
virtual void SetTitle(const char *title="")
Set graph title.
std::vector< Double_t > fEff10s
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
static void SetIsTraining(Bool_t)
when this static function is called, it sets the flag whether events with negative event weight shoul...
void SetNumFolds(UInt_t i)
Base class for all machine learning algorithms.
std::vector< Double_t > fTrainEff01s
std::vector< Double_t > fTrainEff10s
virtual Double_t GetEfficiency(const TString &, Types::ETreeType, Double_t &err)
fill background efficiency (resp.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
std::vector< Double_t > fEff01s
void DeleteResults(const TString &, Types::ETreeType type, Types::EAnalysisType analysistype)
delete the results stored for this particular Method instance.
char * Form(const char *fmt,...)
Float_t GetROCStandardDeviation() const
const TString & GetMethodName() const
This is the main MVA steering class.
std::vector< Double_t > fTrainEff30s
virtual Double_t GetSignificance() const
compute significance of mean difference
CrossValidation(DataLoader *loader)
virtual void Evaluate()
Virtual method to be implemented with your algorithm.
virtual Double_t GetSeparation(TH1 *, TH1 *) const
compute "separation" defined as
std::shared_ptr< DataLoader > fDataLoader
TMultiGraph * GetROCCurves(Bool_t fLegend=kTRUE)
ostringstream derivative to redirect and format output
std::vector< Double_t > fEffAreas
virtual void Draw(Option_t *option="")
Draw a canvas.
std::vector< Double_t > fSeps
Abstract ClassifierFactory template that handles arbitrary types.
virtual TLegend * BuildLegend(Double_t x1=0.3, Double_t y1=0.21, Double_t x2=0.3, Double_t y2=0.21, const char *title="", Option_t *option="")
Build a legend from the graphical objects in the pad.
std::map< UInt_t, Float_t > fROCs
A Graph is a graphics object made of two arrays X and Y with npoints each.
TCanvas * Draw(const TString name="CrossValidation") const
std::vector< Double_t > fEff30s
virtual Double_t GetTrainingEfficiency(const TString &)
Types::EAnalysisType GetAnalysisType() const
Double_t Sqrt(Double_t x)
static void EnableOutput()
virtual void TestClassification()
initialization
std::shared_ptr< TMultiGraph > fROCCurves
const char * Data() const