135 def __init__(self, identifier):
137 Load a method stored under the given identifier
138 @param identifier identifying the method
143 ROOT.Belle2.MVA.AbstractInterface.initSupportedInterfaces()
145 self.identifier = identifier
147 self.weightfile = ROOT.Belle2.MVA.Weightfile.load(self.identifier)
149 self.general_options = basf2_mva.GeneralOptions()
150 self.general_options.load(self.weightfile.getXMLTree())
163 self.specific_options =
None
164 if self.general_options.m_method ==
"FastBDT":
165 self.specific_options = basf2_mva.FastBDTOptions()
166 elif self.general_options.m_method ==
"TMVAClassification":
167 self.specific_options = basf2_mva.TMVAOptionsClassification()
168 elif self.general_options.m_method ==
"TMVARegression":
169 self.specific_options = basf2_mva.TMVAOptionsRegression()
170 elif self.general_options.m_method ==
"FANN":
171 self.specific_options = basf2_mva.FANNOptions()
172 elif self.general_options.m_method ==
"Python":
173 self.specific_options = basf2_mva.PythonOptions()
174 elif self.general_options.m_method ==
"PDF":
175 self.specific_options = basf2_mva.PDFOptions()
176 elif self.general_options.m_method ==
"Combination":
177 self.specific_options = basf2_mva.CombinationOptions()
178 elif self.general_options.m_method ==
"Reweighter":
179 self.specific_options = basf2_mva.ReweighterOptions()
180 elif self.general_options.m_method ==
"Trivial":
181 self.specific_options = basf2_mva.TrivialOptions()
183 raise RuntimeError(
"Unknown method " + self.general_options.m_method)
185 self.specific_options.load(self.weightfile.getXMLTree())
187 variables = [str(v)
for v
in self.general_options.m_variables]
188 importances = self.weightfile.getFeatureImportance()
191 self.importances = {k: importances[k]
for k
in variables}
193 self.variables = list(sorted(variables, key=
lambda v: self.importances.get(v, 0.0)))
195 self.root_variables = [ROOT.Belle2.MakeROOTCompatible.makeROOTCompatible(v)
for v
in self.variables]
197 self.root_importances = {k: importances[k]
for k
in self.root_variables}
199 self.description = str(basf2_mva.info(self.identifier))
201 self.spectators = [str(v)
for v
in self.general_options.m_spectators]
203 self.root_spectators = [ROOT.Belle2.MakeROOTCompatible.makeROOTCompatible(v)
for v
in self.spectators]