48 fAchievableEff(dsi->GetNClasses()),
49 fAchievablePur(dsi->GetNClasses()),
50 fBestCuts(dsi->GetNClasses(),
std::vector<
Double_t>(dsi->GetNClasses()))
86 for(
UInt_t icls = 0; icls<cutvalues.size(); ++icls){
100 Float_t eff = truePositive/sumWeights;
101 Float_t pur = truePositive/(truePositive+falsePositive);
105 if( effTimesPur > 0 )
106 toMinimize = 1./(effTimesPur);
121 Log() <<
kINFO <<
"Calculating best set of cuts for class " 128 const TString opts(
"PopSize=100:Steps=30" );
131 std::vector<Double_t>
result;
137 for( std::vector<Double_t>::iterator it = result.begin(); it<result.end(); it++ ){
150 Log() <<
kINFO <<
"Creating multiclass response histograms..." <<
Endl;
156 std::vector<std::vector<TH1F*> > histos;
160 histos.push_back(std::vector<TH1F*>(0));
165 histos.at(iCls).push_back(
new TH1F(name,name,nbins,xmin,xmax));
180 Store(histos.at(iCls).at(jCls));
MsgLogger & Endl(MsgLogger &ml)
std::vector< Float_t > fAchievablePur
Double_t Run(std::vector< Double_t > &pars)
Execute fitting.
const DataSetInfo * GetDataSetInfo() const
DataSet * GetDataSet() const
~ResultsMulticlass()
destructor
UInt_t GetNClasses() const
std::vector< std::vector< Double_t > > fBestCuts
MsgLogger * fLogger
mva values (Results)
const TString & GetName() const
std::vector< std::vector< double > > Data
MsgLogger & Log() const
message logger
Double_t GetWeight() const
return the event weight - depending on whether the flag IgnoreNegWeightsInTraining is or not...
ResultsMulticlass(const DataSetInfo *dsi, TString resultsName)
constructor
ClassInfo * GetClassInfo(Int_t clNum) const
std::vector< std::vector< Float_t > > fMultiClassValues
void SetValue(std::vector< Float_t > &value, Int_t ievt)
char * Form(const char *fmt,...)
Double_t EstimatorFunction(std::vector< Double_t > &)
void CreateMulticlassHistos(TString prefix, Int_t nbins, Int_t nbins_high)
std::vector< Float_t > fAchievableEff
std::vector< Double_t > GetBestMultiClassCuts(UInt_t targetClass)
void SetCurrentType(Types::ETreeType type) const
static Vc_ALWAYS_INLINE int_v max(const int_v &x, const int_v &y)
Types::ETreeType GetTreeType() const
Long64_t GetNEvents(Types::ETreeType type=Types::kMaxTreeType) const
void Store(TObject *obj, const char *alias=0)
const Event * GetEvent() const
const char * Data() const