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