55 fAchievableEff(dsi->GetNClasses()),
56 fAchievablePur(dsi->GetNClasses()),
57 fBestCuts(dsi->GetNClasses(),
std::vector<
Double_t>(dsi->GetNClasses()))
93 for(
UInt_t icls = 0; icls<cutvalues.size(); ++icls){
107 Float_t eff = truePositive/sumWeights;
108 Float_t pur = truePositive/(truePositive+falsePositive);
111 Float_t toMinimize = std::numeric_limits<float>::max();
112 if( effTimesPur > 0 )
113 toMinimize = 1./(effTimesPur);
128 Log() <<
kINFO <<
"Calculating best set of cuts for class " 135 const TString opts(
"PopSize=100:Steps=30" );
138 std::vector<Double_t>
result;
144 for( std::vector<Double_t>::iterator it = result.begin(); it<result.end(); it++ ){
157 Log() <<
kINFO <<
"Creating multiclass response histograms..." <<
Endl;
163 std::vector<std::vector<TH1F*> > histos;
167 histos.push_back(std::vector<TH1F*>(0));
172 histos.at(iCls).push_back(
new TH1F(name,name,nbins,xmin,xmax));
187 Store(histos.at(iCls).at(jCls));
virtual const char * GetName() const
Returns name of object.
MsgLogger & Endl(MsgLogger &ml)
std::vector< Float_t > fAchievablePur
Double_t Run(std::vector< Double_t > &pars)
Execute fitting.
THist< 1, float, THistStatContent, THistStatUncertainty > TH1F
const DataSetInfo * GetDataSetInfo() const
DataSet * GetDataSet() const
~ResultsMulticlass()
destructor
UInt_t GetNClasses() const
std::vector< std::vector< Double_t > > fBestCuts
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
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