135 def __init__(self, identifier):
137 Load a method stored under the given identifier
138 @param identifier identifying the method
142 ROOT.Belle2.MVA.AbstractInterface.initSupportedInterfaces()
144 self.identifier = identifier
146 self.weightfile = ROOT.Belle2.MVA.Weightfile.load(self.identifier)
148 self.general_options = basf2_mva.GeneralOptions()
149 self.general_options.load(self.weightfile.getXMLTree())
162 self.specific_options =
None
163 if self.general_options.m_method ==
"FastBDT":
164 self.specific_options = basf2_mva.FastBDTOptions()
165 elif self.general_options.m_method ==
"TMVAClassification":
166 self.specific_options = basf2_mva.TMVAOptionsClassification()
167 elif self.general_options.m_method ==
"TMVARegression":
168 self.specific_options = basf2_mva.TMVAOptionsRegression()
169 elif self.general_options.m_method ==
"FANN":
170 self.specific_options = basf2_mva.FANNOptions()
171 elif self.general_options.m_method ==
"Python":
172 self.specific_options = basf2_mva.PythonOptions()
173 elif self.general_options.m_method ==
"PDF":
174 self.specific_options = basf2_mva.PDFOptions()
175 elif self.general_options.m_method ==
"Combination":
176 self.specific_options = basf2_mva.CombinationOptions()
177 elif self.general_options.m_method ==
"Reweighter":
178 self.specific_options = basf2_mva.ReweighterOptions()
179 elif self.general_options.m_method ==
"Trivial":
180 self.specific_options = basf2_mva.TrivialOptions()
182 raise RuntimeError(
"Unknown method " + self.general_options.m_method)
184 self.specific_options.load(self.weightfile.getXMLTree())
186 variables = [str(v)
for v
in self.general_options.m_variables]
187 importances = self.weightfile.getFeatureImportance()
190 self.importances = {k: importances[k]
for k
in variables}
192 self.variables = list(sorted(variables, key=
lambda v: self.importances.get(v, 0.0)))
194 self.root_variables = [ROOT.Belle2.MakeROOTCompatible.makeROOTCompatible(v)
for v
in self.variables]
196 self.root_importances = {k: importances[k]
for k
in self.root_variables}
198 self.description = str(basf2_mva.info(self.identifier))
200 self.spectators = [str(v)
for v
in self.general_options.m_spectators]
202 self.root_spectators = [ROOT.Belle2.MakeROOTCompatible.makeROOTCompatible(v)
for v
in self.spectators]