Guard against index error in prediction. (#6982)
* Remove `best_ntree_limit` from documents.
This commit is contained in:
@@ -145,6 +145,7 @@ class TestInplacePredict:
|
||||
dtrain = xgb.DMatrix(cls.X, cls.y)
|
||||
cls.test = xgb.DMatrix(cls.X[:10, ...], missing=cls.missing)
|
||||
|
||||
cls.num_boost_round = 10
|
||||
cls.booster = xgb.train({'tree_method': 'hist'}, dtrain, num_boost_round=10)
|
||||
|
||||
def test_predict(self):
|
||||
@@ -172,6 +173,25 @@ class TestInplacePredict:
|
||||
|
||||
np.testing.assert_allclose(predt_from_dmatrix, predt_from_array)
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
booster.predict(test, ntree_limit=booster.best_ntree_limit + 1)
|
||||
with pytest.raises(ValueError):
|
||||
booster.predict(test, iteration_range=(0, booster.best_iteration + 2))
|
||||
|
||||
default = booster.predict(test)
|
||||
|
||||
range_full = booster.predict(test, iteration_range=(0, self.num_boost_round))
|
||||
ntree_full = booster.predict(test, ntree_limit=self.num_boost_round)
|
||||
np.testing.assert_allclose(range_full, default)
|
||||
np.testing.assert_allclose(ntree_full, default)
|
||||
|
||||
range_full = booster.predict(
|
||||
test, iteration_range=(0, booster.best_iteration + 1)
|
||||
)
|
||||
ntree_full = booster.predict(test, ntree_limit=booster.best_ntree_limit)
|
||||
np.testing.assert_allclose(range_full, default)
|
||||
np.testing.assert_allclose(ntree_full, default)
|
||||
|
||||
def predict_dense(x):
|
||||
inplace_predt = booster.inplace_predict(x)
|
||||
d = xgb.DMatrix(x)
|
||||
|
||||
Reference in New Issue
Block a user