def test_LightGBM(self): train_data = lightgbm.Dataset(self.x_train, label=np.argmax(self.y_train, axis=1)) test_data = lightgbm.Dataset(self.x_test, label=np.argmax(self.y_test, axis=1)) parameters = { "objective": "multiclass", "num_class": self.n_classes, "metric": "multi_logloss", "is_unbalance": "true", "boosting": "gbdt", "num_leaves": 5, "feature_fraction": 0.5, "bagging_fraction": 0.5, "bagging_freq": 0, "learning_rate": 0.05, "verbose": 0, } model = lightgbm.train( parameters, train_data, valid_sets=test_data, num_boost_round=2, early_stopping_rounds=10 ) classifier = LightGBMClassifier(model=model) rt = RobustnessVerificationTreeModelsCliqueMethod(classifier=classifier) average_bound, verified_error = rt.verify( x=self.x_test, y=self.y_test, eps_init=0.3, nb_search_steps=10, max_clique=2, max_level=2 ) self.assertEqual(average_bound, 0.07634765624999999) self.assertEqual(verified_error, 0.85)
def setUpClass(cls): master_seed(seed=1234) super().setUpClass() cls.y_train_iris_index = np.argmax(cls.y_train_iris, axis=1) cls.y_test_iris_index = np.argmax(cls.y_test_iris, axis=1) num_round = 10 param = { "objective": "multiclass", "metric": "multi_logloss", "num_class": 3 } train_data = lgb.Dataset(cls.x_train_iris, label=cls.y_train_iris_index) model = lgb.train(param, train_data, num_round, valid_sets=[train_data]) cls.classifier = LightGBMClassifier(model=model)