16from basf2
import find_file
20import matplotlib.pyplot
as plt
24 """Returns the figure of merit for the optimization.
25 The functions trains the classifier with the given hyperparameters on the training sample
and
26 calculates the AUC on the independent test sample.
28 g_options = general_options
29 g_options.m_identifier = "test.xml"
30 options = basf2_mva.FastBDTOptions()
31 options.m_nTrees = int(x[0])
32 options.m_nLevels = int(x[1])
33 basf2_mva.teacher(g_options, options)
35 p, t = m.apply_expert(test_data, general_options.m_treename)
39if __name__ ==
"__main__":
41 train_file = find_file(
"mva/train_D0toKpipi.root",
"examples")
42 test_file = find_file(
"mva/test_D0toKpipi.root",
"examples")
44 training_data = basf2_mva.vector(train_file)
45 test_data = basf2_mva.vector(test_file)
47 general_options = basf2_mva.GeneralOptions()
48 general_options.m_datafiles = training_data
49 general_options.m_treename =
"tree"
50 general_options.m_variables = basf2_mva.vector(
'p',
'pz',
'daughter(0, kaonID)',
'chiProb',
'M')
51 general_options.m_target_variable =
"isSignal"
54 res = skopt.gp_minimize(f,
61 skopt.plots.plot_convergence(res)
62 plt.savefig(
'convergence.png')
63 skopt.plots.plot_evaluations(res)
64 plt.savefig(
'evaluations.png')
65 skopt.plots.plot_objective(res)
66 plt.savefig(
'objective.png')
69 skopt.dump(res,
'opt-result.pkl')
def calculate_auc_efficiency_vs_background_retention(p, t, w=None)