MCPcopy Create free account
hub / github.com/antmachineintelligence/mtgbmcode / test

Method test

tests/python_package_test/test_basic.py:16–83  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

14class TestBasic(unittest.TestCase):
15
16 def test(self):
17 X_train, X_test, y_train, y_test = train_test_split(*load_breast_cancer(True),
18 test_size=0.1, random_state=2)
19 train_data = lgb.Dataset(X_train, label=y_train)
20 valid_data = train_data.create_valid(X_test, label=y_test)
21
22 params = {
23 "objective": "binary",
24 "metric": "auc",
25 "min_data": 10,
26 "num_leaves": 15,
27 "verbose": -1,
28 "num_threads": 1,
29 "max_bin": 255
30 }
31 bst = lgb.Booster(params, train_data)
32 bst.add_valid(valid_data, "valid_1")
33
34 for i in range(20):
35 bst.update()
36 if i % 10 == 0:
37 print(bst.eval_train(), bst.eval_valid())
38
39 self.assertEqual(bst.current_iteration(), 20)
40 self.assertEqual(bst.num_trees(), 20)
41 self.assertEqual(bst.num_model_per_iteration(), 1)
42
43 bst.save_model("model.txt")
44 pred_from_matr = bst.predict(X_test)
45 with tempfile.NamedTemporaryFile() as f:
46 tname = f.name
47 with open(tname, "w+b") as f:
48 dump_svmlight_file(X_test, y_test, f)
49 pred_from_file = bst.predict(tname)
50 os.remove(tname)
51 np.testing.assert_allclose(pred_from_matr, pred_from_file)
52
53 # check saved model persistence
54 bst = lgb.Booster(params, model_file="model.txt")
55 os.remove("model.txt")
56 pred_from_model_file = bst.predict(X_test)
57 # we need to check the consistency of model file here, so test for exact equal
58 np.testing.assert_array_equal(pred_from_matr, pred_from_model_file)
59
60 # check early stopping is working. Make it stop very early, so the scores should be very close to zero
61 pred_parameter = {"pred_early_stop": True, "pred_early_stop_freq": 5, "pred_early_stop_margin": 1.5}
62 pred_early_stopping = bst.predict(X_test, **pred_parameter)
63 # scores likely to be different, but prediction should still be the same
64 np.testing.assert_array_equal(np.sign(pred_from_matr), np.sign(pred_early_stopping))
65
66 # test that shape is checked during prediction
67 bad_X_test = X_test[:, 1:]
68 bad_shape_error_msg = "The number of features in data*"
69 np.testing.assert_raises_regex(lgb.basic.LightGBMError, bad_shape_error_msg,
70 bst.predict, bad_X_test)
71 np.testing.assert_raises_regex(lgb.basic.LightGBMError, bad_shape_error_msg,
72 bst.predict, sparse.csr_matrix(bad_X_test))
73 np.testing.assert_raises_regex(lgb.basic.LightGBMError, bad_shape_error_msg,

Callers

nothing calls this directly

Calls 12

create_validMethod · 0.95
add_validMethod · 0.95
updateMethod · 0.95
eval_trainMethod · 0.95
eval_validMethod · 0.95
current_iterationMethod · 0.95
num_treesMethod · 0.95
save_modelMethod · 0.95
predictMethod · 0.95
DatasetMethod · 0.45
BoosterMethod · 0.45

Tested by

no test coverage detected