17from tmva100_DataPreparation
import variables
20def load_data(signal_filename, background_filename):
26 x_sig = np.vstack([data_sig[var]
for var
in variables]).T
27 x_bkg = np.vstack([data_bkg[var]
for var
in variables]).T
28 x = np.vstack([x_sig, x_bkg])
31 num_sig = x_sig.shape[0]
32 num_bkg = x_bkg.shape[0]
33 y = np.hstack([np.ones(num_sig), np.zeros(num_bkg)])
36 num_all = num_sig + num_bkg
37 w = np.hstack([np.ones(num_sig) * num_all / num_sig, np.ones(num_bkg) * num_all / num_bkg])
42if __name__ ==
"__main__":
44 from xgboost
import XGBClassifier
47 x, y, w = load_data(
"train_signal.root",
"train_background.root")
50 bdt = XGBClassifier(max_depth=3, n_estimators=500)
51 bdt.fit(x, y, sample_weight=w)
54 print(
"Training done on ", x.shape[0],
"events. Saving model in tmva101.root")
55 ROOT.TMVA.Experimental.SaveXGBoost(bdt,
"myBDT",
"tmva101.root", num_inputs=x.shape[1])
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...