5 #ifndef ROOT_TMVA_VariableImportance
6 #define ROOT_TMVA_VariableImportance
25 class VariableImportanceResult
27 friend class VariableImportance;
29 OptionMap fImportanceValues;
30 std::shared_ptr<TH1F> fImportanceHist;
31 VIType fType {kShort};
33 VariableImportanceResult();
34 VariableImportanceResult(
const VariableImportanceResult &);
35 ~VariableImportanceResult(){fImportanceHist=
nullptr;}
37 OptionMap &GetImportanceValues(){
return fImportanceValues;}
38 TH1F *GetImportanceHist(){
return fImportanceHist.get();}
41 TCanvas* Draw(
const TString name=
"VariableImportance")
const;
45 class VariableImportance :
public Envelope {
48 VariableImportanceResult fResults;
49 VIType fType {kShort};
51 explicit VariableImportance(DataLoader *loader);
52 ~VariableImportance();
54 virtual void Evaluate();
56 void SetType(VIType type){fType=type;}
57 VIType GetType(){
return fType;}
59 const VariableImportanceResult& GetResults()
const {
return fResults;}
62 void EvaluateImportanceShort();
64 void EvaluateImportanceAll();
66 void EvaluateImportanceRandom(UInt_t nseeds);
69 TH1F* GetImportance(
const UInt_t nbits,std::vector<Float_t> &importances,std::vector<TString> &varNames);
72 ULong_t Sum(ULong_t i);
75 std::unique_ptr<Factory> fClassifier;
76 ClassDef(VariableImportance,0);