def test_classify_binary(self): print("TestBDTsklearn test_classify_binary") model = GradientBoostingClassifier(n_estimators=10) model.fit(self.data_x, self.data_y_binary) bdt = BDTsklearn(model, self.features, ["cls0", "cls1"]) bdt.to_tmva("sklearn_binary.xml") bdt.setup_tmva("sklearn_binary.xml") dev = 0.0 for irow in range(self.data_x.shape[0]): predA = bdt.eval_tmva(self.data_x[irow, :]) predB = bdt.eval(self.data_x[irow, :]) local_dev = np.abs((predA - predB) / predA) self.assertTrue(local_dev < 0.05) dev += local_dev self.assertTrue(dev < 0.01)
def test_regression(self): print("TestBDTsklearn test_classify_multiclass") model = GradientBoostingRegressor(n_estimators=10) model.fit(self.data_x, self.data_y) bdt = BDTsklearn(model, self.features, ["target"]) bdt.to_tmva("sklearn_regression.xml") bdt.setup_tmva("sklearn_regression.xml") dev = 0.0 for irow in range(self.data_x.shape[0]): predA = bdt.eval_tmva(self.data_x[irow, :]) predB = bdt.eval(self.data_x[irow, :]) local_dev = np.abs((predA - predB) / predA) self.assertTrue(np.all(local_dev < 0.05)) dev += local_dev self.assertTrue(np.all(dev < 0.01))
def test_classify_multiclass(self): print("TestBDTsklearn test_classify_multiclass") model = GradientBoostingClassifier(n_estimators=10) model.fit(self.data_x, self.data_y) bdt = BDTsklearn( model, self.features, ["cls{0}".format(c) for c in range(len(np.unique(self.data_y)))]) bdt.to_tmva("sklearn_multiclass.xml") bdt.setup_tmva("sklearn_multiclass.xml") dev = 0.0 for irow in range(self.data_x.shape[0]): predA = bdt.eval_tmva(self.data_x[irow, :]) predB = bdt.eval(self.data_x[irow, :]) local_dev = np.abs((predA - predB) / predA) self.assertTrue(np.all(local_dev < 0.05)) dev += local_dev self.assertTrue(np.all(dev < 0.01))