12 #ifndef ROOT_TMVA_MethodCrossValidation
13 #define ROOT_TMVA_MethodCrossValidation
32 class CrossValidation;
36 class MethodCrossValidation :
public MethodBase {
38 friend CrossValidation;
42 MethodCrossValidation(
const TString &jobName,
const TString &methodTitle, DataSetInfo &theData,
43 const TString &theOption =
"");
46 MethodCrossValidation(DataSetInfo &theData,
const TString &theWeightFile);
48 virtual ~MethodCrossValidation(
void);
60 using MethodBase::ReadWeightsFromStream;
63 void AddWeightsXMLTo(
void *parent)
const;
66 void ReadWeightsFromStream(std::istream &istr);
67 void ReadWeightsFromXML(
void *parent);
70 void WriteMonitoringHistosToFile(
void)
const;
73 Double_t GetMvaValue(Double_t *err = 0, Double_t *errUpper = 0);
74 const std::vector<Float_t> &GetMulticlassValues();
75 const std::vector<Float_t> &GetRegressionValues();
78 void DeclareOptions();
79 void ProcessOptions();
82 void MakeClassSpecific(std::ostream &,
const TString &)
const;
83 void MakeClassSpecificHeader(std::ostream &,
const TString &)
const;
85 void GetHelpMessage()
const;
87 const Ranking *CreateRanking();
88 Bool_t HasAnalysisType(Types::EAnalysisType type, UInt_t numberClasses, UInt_t numberTargets);
92 void DeclareCompatibilityOptions();
95 TString GetWeightFileNameForFold(UInt_t iFold)
const;
96 MethodBase *InstantiateMethodFromXML(TString methodTypeName, TString weightfile)
const;
99 TString fEncapsulatedMethodName;
100 TString fEncapsulatedMethodTypeName;
102 TString fOutputEnsembling;
104 TString fSplitExprString;
105 std::unique_ptr<CvSplitKFoldsExpr> fSplitExpr;
107 std::vector<Float_t> fMulticlassValues;
108 std::vector<Float_t> fRegressionValues;
110 std::vector<MethodBase *> fEncapsulatedMethods;
115 std::map<const TMVA::Event *, UInt_t> fEventToFoldMapping;
118 ClassDef(MethodCrossValidation, 0);