Ejemplo n.º 1
0
    def test_classify_ada_multiclass(self):
        print("TestBDTsklearn test_classify_ada_multiclass")
        model = AdaBoostClassifier(DecisionTreeClassifier(max_depth=3),
                                   n_estimators=5,
                                   learning_rate=1)
        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_ada_multiclass.xml")
        bdt.setup_tmva("sklearn_ada_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)

            if np.any(local_dev >= 0.05):
                print("TMVA: {0}".format(predA))
                print("Generalized Tree: {0}".format(predB))
                print("Difference: {0}".format(local_dev))

            self.assertTrue(np.all(local_dev < 0.05))

            dev += local_dev
        self.assertTrue(np.all(dev < 0.01))
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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))
Ejemplo n.º 4
0
    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))