def do_variable_plots (): def do_variable_plot (name, cut_level, outdir): filename = '{0}/{1}.png'.format (outdir, name) # note that both the thing to plot (name, in this case) and the cut can # be specified in a very flexible way; see Validator.eval() # documentation for more info. objs = v.create_plot (name, 'dist', lines, bins=50, dual=True, data_mc=True, left_ylabel='Hz per bin', xlabel=name, log_kwargs=dict ( legend=dict (loc='best') ), title='{0} | bdt score > {1:.3f}'.format (name, cut_level), cut='scores > {0}'.format (cut_level) ) objs['fig'].savefig (filename) input_vars_dir = 'output/vars_at_input' print ('Plotting input vars in {0} ...'.format (input_vars_dir)) mkdir (input_vars_dir) do_variable_plot ('a', -1, input_vars_dir) do_variable_plot ('b', -1, input_vars_dir) do_variable_plot ('c', -1, input_vars_dir) postcut_vars_dir = 'output/vars_after_cut' print ('Plotting vars after score > {0} cut in {1} ...'.format ( bdt_cut, postcut_vars_dir)) mkdir (postcut_vars_dir) do_variable_plot ('a', bdt_cut, postcut_vars_dir) do_variable_plot ('b', bdt_cut, postcut_vars_dir) do_variable_plot ('c', bdt_cut, postcut_vars_dir) fig = v.create_correlation_matrix_plot ('train_sig') fig.savefig ('output/correlation_matrix-signal.png') fig = v.create_correlation_matrix_plot ('train_data') fig.savefig ('output/correlation_matrix-background.png')
def do_eff_plots (): eff_plot_dir = 'output/eff_vs_vars' mkdir (eff_plot_dir) print ('Plotting efficiency vs training variables...') def do_eff_plot (name, cut_level): # Validator doesn't know how to make efficiency plots, but it can # provide the histogram objects with which to do so. bins = 25 vals = v.data['test_sig'].eval (name) range = (vals.min (), vals.max ()) h_input = v.get_Hist ('test_sig', name, bins=bins, range=range, ) h_cut = v.get_Hist ('test_sig', name, bins=bins, range=range, cut='scores > {0}'.format (cut_level) ) eff = h_cut / h_input fig = plt.figure () ax = fig.add_subplot (111) plotter = Plotter (ax) plotter.add (eff) plotter.finish () ax.set_xlabel (name) ax.set_xlim (range) ax.set_ylabel ('efficiency') ax.set_ylim (0,1.05) ax.set_title ('efficiency vs {0}'.format (name)) fig.savefig ('{0}/eff_vs_{1}.png'.format (eff_plot_dir, name)) plt.close (fig) do_eff_plot ('a', bdt_cut) do_eff_plot ('b', bdt_cut) do_eff_plot ('c', bdt_cut)
### Make Training Samples ### train_sig_sim = make_sig_sim () test_sig_sim = make_sig_sim () bg_sim = make_bgsim () ### Datamerize ### train_data = make_data () test_data = make_data () ### Make them Sets ### train_sig = DataSet (train_sig_sim) train_data = DataSet (train_data) test_sig = DataSet (test_sig_sim) test_data = DataSet (test_data) bg = DataSet (bg_sim) # create a data directory, if one does not already exist mkdir ('hesdata') print ('Saving data in hesdata/ ...') # save these files save (train_sig, 'hesdata/train_sig.ds') save (train_data, 'hesdata/train_data.ds') save (test_sig, 'hesdata/test_sig.ds') save (test_data, 'hesdata/test_data.ds') save (bg, 'hesdata/bg.ds')
bg_sim = make_bgsim () ### Datamerize ### train_data = make_data () test_data = make_data () ### Make them Sets ### train_sig = DataSet (train_sig_sim) train_data = DataSet (train_data) test_sig = DataSet (test_sig_sim) test_data = DataSet (test_data) bg = DataSet (bg_sim) # create a data directory, if one does not already exist mkdir ('data') print ('Saving data in data/ ...') # save these files save (train_sig, 'data/train_sig_woreco.ds') save (train_data, 'data/train_data_woreco.ds') save (test_sig, 'data/test_sig_woreco.ds') save (test_data, 'data/test_data_woreco.ds') save (bg, 'data/bg_woreco.ds')