13 import multiprocessing
16 if __name__ ==
"__main__":
18 training_data = basf2_mva.vector(
"train.root")
19 test_data = basf2_mva.vector(
"test.root")
22 general_options = basf2_mva.GeneralOptions()
23 general_options.m_datafiles = training_data
24 general_options.m_treename =
"tree"
25 general_options.m_identifier =
"test.xml"
26 general_options.m_variables = basf2_mva.vector(
'p',
'pz',
'daughter(0, kaonID)',
'chiProb',
'M')
27 general_options.m_target_variable =
"isSignal"
29 fastbdt_options = basf2_mva.FastBDTOptions()
30 basf2_mva.teacher(general_options, fastbdt_options)
34 nTrees, depth = hyperparameters
36 options = basf2_mva.FastBDTOptions()
37 options.m_nTrees = nTrees
38 options.m_nLevels = depth
39 m = method.train_teacher(training_data, general_options.m_treename, specific_options=options)
40 p, t = m.apply_expert(test_data, general_options.m_treename)
43 p = multiprocessing.Pool(
None, maxtasksperchild=1)
44 results = p.map(grid_search, itertools.product([10, 50, 100, 500, 1000], [2, 4, 6]))
45 for hyperparameters, auc
in results:
46 print(
"Hyperparameters", hyperparameters,
"AUC", auc)
def calculate_auc_efficiency_vs_background_retention(p, t, w=None)