31 #ifndef ROOT_TMVA_ResultsMulticlass
32 #define ROOT_TMVA_ResultsMulticlass
55 class ResultsMulticlass :
public Results,
public IFitterTarget {
59 ResultsMulticlass(
const DataSetInfo* dsi, TString resultsName );
63 void SetValue( std::vector<Float_t>& value, Int_t ievt );
64 void Resize( Int_t entries ) { fMultiClassValues.resize( entries ); }
66 virtual void Clear(Option_t *) { fMultiClassValues.clear(); }
69 Long64_t GetSize()
const {
return fMultiClassValues.size(); }
70 virtual const std::vector< Float_t >& operator[] ( Int_t ievt )
const {
return fMultiClassValues.at(ievt); }
71 std::vector<std::vector< Float_t> >* GetValueVector() {
return &fMultiClassValues; }
73 Types::EAnalysisType GetAnalysisType() {
return Types::kMulticlass; }
74 Float_t GetAchievableEff(UInt_t cls){
return fAchievableEff.at(cls);}
75 Float_t GetAchievablePur(UInt_t cls){
return fAchievablePur.at(cls);}
76 std::vector<Float_t>& GetAchievableEff(){
return fAchievableEff;}
77 std::vector<Float_t>& GetAchievablePur(){
return fAchievablePur;}
79 TMatrixD GetConfusionMatrix(Double_t effB);
82 void CreateMulticlassPerformanceHistos(TString prefix);
83 void CreateMulticlassHistos( TString prefix, Int_t nbins, Int_t nbins_high);
85 Double_t EstimatorFunction( std::vector<Double_t> & );
86 std::vector<Double_t> GetBestMultiClassCuts(UInt_t targetClass);
90 mutable std::vector<std::vector< Float_t> > fMultiClassValues;
91 mutable MsgLogger* fLogger;
92 MsgLogger& Log()
const {
return *fLogger; }
93 UInt_t fClassToOptimize;
94 std::vector<Float_t> fAchievableEff;
95 std::vector<Float_t> fAchievablePur;
96 std::vector<std::vector<Double_t> > fBestCuts;
99 std::vector<Float_t> fClassSumWeights;
100 std::vector<Float_t> fEventWeights;
101 std::vector<UInt_t> fEventClasses;
105 ClassDef(ResultsMulticlass,2);