[breaking] Remove label encoder deprecated in 1.3. (#7357)
This commit is contained in:
@@ -239,7 +239,7 @@ def test_cudf_training_with_sklearn():
|
||||
y_cudf_series = ss(data=y.iloc[:, 0])
|
||||
|
||||
for y_obj in [y_cudf, y_cudf_series]:
|
||||
clf = xgb.XGBClassifier(gpu_id=0, tree_method='gpu_hist', use_label_encoder=False)
|
||||
clf = xgb.XGBClassifier(gpu_id=0, tree_method='gpu_hist')
|
||||
clf.fit(X_cudf, y_obj, sample_weight=cudf_weights, base_margin=cudf_base_margin,
|
||||
eval_set=[(X_cudf, y_obj)])
|
||||
pred = clf.predict(X_cudf)
|
||||
|
||||
@@ -122,7 +122,7 @@ def test_cupy_training_with_sklearn():
|
||||
base_margin = np.random.random(50)
|
||||
cupy_base_margin = cp.array(base_margin)
|
||||
|
||||
clf = xgb.XGBClassifier(gpu_id=0, tree_method="gpu_hist", use_label_encoder=False)
|
||||
clf = xgb.XGBClassifier(gpu_id=0, tree_method="gpu_hist")
|
||||
clf.fit(
|
||||
X,
|
||||
y,
|
||||
|
||||
@@ -7,6 +7,7 @@ sys.path.append("tests/python")
|
||||
# Don't import the test class, otherwise they will run twice.
|
||||
import test_callback as test_cb # noqa
|
||||
import test_basic_models as test_bm
|
||||
import testing as tm
|
||||
rng = np.random.RandomState(1994)
|
||||
|
||||
|
||||
@@ -14,16 +15,12 @@ class TestGPUBasicModels:
|
||||
cpu_test_cb = test_cb.TestCallbacks()
|
||||
cpu_test_bm = test_bm.TestModels()
|
||||
|
||||
def run_cls(self, X, y, deterministic):
|
||||
cls = xgb.XGBClassifier(tree_method='gpu_hist',
|
||||
deterministic_histogram=deterministic,
|
||||
single_precision_histogram=True)
|
||||
def run_cls(self, X, y):
|
||||
cls = xgb.XGBClassifier(tree_method='gpu_hist', single_precision_histogram=True)
|
||||
cls.fit(X, y)
|
||||
cls.get_booster().save_model('test_deterministic_gpu_hist-0.json')
|
||||
|
||||
cls = xgb.XGBClassifier(tree_method='gpu_hist',
|
||||
deterministic_histogram=deterministic,
|
||||
single_precision_histogram=True)
|
||||
cls = xgb.XGBClassifier(tree_method='gpu_hist', single_precision_histogram=True)
|
||||
cls.fit(X, y)
|
||||
cls.get_booster().save_model('test_deterministic_gpu_hist-1.json')
|
||||
|
||||
@@ -49,19 +46,22 @@ class TestGPUBasicModels:
|
||||
kClasses = 4
|
||||
# Create large values to force rounding.
|
||||
X = np.random.randn(kRows, kCols) * 1e4
|
||||
y = np.random.randint(0, kClasses, size=kRows) * 1e4
|
||||
y = np.random.randint(0, kClasses, size=kRows)
|
||||
|
||||
model_0, model_1 = self.run_cls(X, y, True)
|
||||
model_0, model_1 = self.run_cls(X, y)
|
||||
assert model_0 == model_1
|
||||
|
||||
@pytest.mark.skipif(**tm.no_sklearn())
|
||||
def test_invalid_gpu_id(self):
|
||||
X = np.random.randn(10, 5) * 1e4
|
||||
y = np.random.randint(0, 2, size=10) * 1e4
|
||||
from sklearn.datasets import load_digits
|
||||
X, y = load_digits(return_X_y=True)
|
||||
# should pass with invalid gpu id
|
||||
cls1 = xgb.XGBClassifier(tree_method='gpu_hist', gpu_id=9999)
|
||||
cls1.fit(X, y)
|
||||
# should throw error with fail_on_invalid_gpu_id enabled
|
||||
cls2 = xgb.XGBClassifier(tree_method='gpu_hist', gpu_id=9999, fail_on_invalid_gpu_id=True)
|
||||
cls2 = xgb.XGBClassifier(
|
||||
tree_method='gpu_hist', gpu_id=9999, fail_on_invalid_gpu_id=True
|
||||
)
|
||||
try:
|
||||
cls2.fit(X, y)
|
||||
assert False, "Should have failed with with fail_on_invalid_gpu_id enabled"
|
||||
|
||||
@@ -146,8 +146,10 @@ class TestPickling:
|
||||
|
||||
os.remove(model_path)
|
||||
|
||||
@pytest.mark.skipif(**tm.no_sklearn())
|
||||
def test_predict_sklearn_pickle(self):
|
||||
x, y = build_dataset()
|
||||
from sklearn.datasets import load_digits
|
||||
x, y = load_digits(return_X_y=True)
|
||||
|
||||
kwargs = {'tree_method': 'gpu_hist',
|
||||
'predictor': 'gpu_predictor',
|
||||
|
||||
@@ -56,7 +56,6 @@ def test_categorical():
|
||||
X, y = load_svmlight_file(os.path.join(data_dir, "agaricus.txt.train"))
|
||||
clf = xgb.XGBClassifier(
|
||||
tree_method="gpu_hist",
|
||||
use_label_encoder=False,
|
||||
enable_categorical=True,
|
||||
n_estimators=10,
|
||||
)
|
||||
@@ -98,3 +97,36 @@ def test_categorical():
|
||||
|
||||
X = cudf.DataFrame(X)
|
||||
check_predt(X, y)
|
||||
|
||||
|
||||
@pytest.mark.skipif(**tm.no_cupy())
|
||||
@pytest.mark.skipif(**tm.no_cudf())
|
||||
def test_classififer():
|
||||
from sklearn.datasets import load_digits
|
||||
import cupy as cp
|
||||
import cudf
|
||||
|
||||
X, y = load_digits(return_X_y=True)
|
||||
y *= 10
|
||||
|
||||
clf = xgb.XGBClassifier(tree_method="gpu_hist", n_estimators=1)
|
||||
|
||||
# numpy
|
||||
with pytest.raises(ValueError, match=r"Invalid classes.*"):
|
||||
clf.fit(X, y)
|
||||
|
||||
# cupy
|
||||
X, y = cp.array(X), cp.array(y)
|
||||
with pytest.raises(ValueError, match=r"Invalid classes.*"):
|
||||
clf.fit(X, y)
|
||||
|
||||
# cudf
|
||||
X, y = cudf.DataFrame(X), cudf.DataFrame(y)
|
||||
with pytest.raises(ValueError, match=r"Invalid classes.*"):
|
||||
clf.fit(X, y)
|
||||
|
||||
# pandas
|
||||
X, y = load_digits(return_X_y=True, as_frame=True)
|
||||
y *= 10
|
||||
with pytest.raises(ValueError, match=r"Invalid classes.*"):
|
||||
clf.fit(X, y)
|
||||
|
||||
@@ -283,7 +283,6 @@ def test_feature_importances_gain():
|
||||
random_state=0, tree_method="exact",
|
||||
learning_rate=0.1,
|
||||
importance_type="gain",
|
||||
use_label_encoder=False,
|
||||
).fit(X, y)
|
||||
|
||||
exp = np.array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
|
||||
@@ -306,7 +305,6 @@ def test_feature_importances_gain():
|
||||
tree_method="exact",
|
||||
learning_rate=0.1,
|
||||
importance_type="gain",
|
||||
use_label_encoder=False,
|
||||
).fit(X, y)
|
||||
np.testing.assert_almost_equal(xgb_model.feature_importances_, exp)
|
||||
|
||||
@@ -315,14 +313,11 @@ def test_feature_importances_gain():
|
||||
tree_method="exact",
|
||||
learning_rate=0.1,
|
||||
importance_type="gain",
|
||||
use_label_encoder=False,
|
||||
).fit(X, y)
|
||||
np.testing.assert_almost_equal(xgb_model.feature_importances_, exp)
|
||||
|
||||
# no split can be found
|
||||
cls = xgb.XGBClassifier(
|
||||
min_child_weight=1000, tree_method="hist", n_estimators=1, use_label_encoder=False
|
||||
)
|
||||
cls = xgb.XGBClassifier(min_child_weight=1000, tree_method="hist", n_estimators=1)
|
||||
cls.fit(X, y)
|
||||
assert np.all(cls.feature_importances_ == 0)
|
||||
|
||||
@@ -497,7 +492,7 @@ def test_classification_with_custom_objective():
|
||||
X, y
|
||||
)
|
||||
|
||||
cls = xgb.XGBClassifier(use_label_encoder=False, n_estimators=1)
|
||||
cls = xgb.XGBClassifier(n_estimators=1)
|
||||
cls.fit(X, y)
|
||||
|
||||
is_called = [False]
|
||||
@@ -923,7 +918,7 @@ def test_RFECV():
|
||||
bst = xgb.XGBClassifier(booster='gblinear', learning_rate=0.1,
|
||||
n_estimators=10,
|
||||
objective='binary:logistic',
|
||||
random_state=0, verbosity=0, use_label_encoder=False)
|
||||
random_state=0, verbosity=0)
|
||||
rfecv = RFECV(estimator=bst, step=1, cv=3, scoring='roc_auc')
|
||||
rfecv.fit(X, y)
|
||||
|
||||
@@ -934,7 +929,7 @@ def test_RFECV():
|
||||
n_estimators=10,
|
||||
objective='multi:softprob',
|
||||
random_state=0, reg_alpha=0.001, reg_lambda=0.01,
|
||||
scale_pos_weight=0.5, verbosity=0, use_label_encoder=False)
|
||||
scale_pos_weight=0.5, verbosity=0)
|
||||
rfecv = RFECV(estimator=bst, step=1, cv=3, scoring='neg_log_loss')
|
||||
rfecv.fit(X, y)
|
||||
|
||||
@@ -943,7 +938,7 @@ def test_RFECV():
|
||||
rfecv = RFECV(estimator=reg)
|
||||
rfecv.fit(X, y)
|
||||
|
||||
cls = xgb.XGBClassifier(use_label_encoder=False)
|
||||
cls = xgb.XGBClassifier()
|
||||
rfecv = RFECV(estimator=cls, step=1, cv=3,
|
||||
scoring='neg_mean_squared_error')
|
||||
rfecv.fit(X, y)
|
||||
@@ -1052,8 +1047,9 @@ def test_deprecate_position_arg():
|
||||
with pytest.warns(FutureWarning):
|
||||
model.fit(X, y, w)
|
||||
|
||||
with pytest.warns(FutureWarning):
|
||||
with pytest.raises(ValueError):
|
||||
xgb.XGBRFClassifier(1, use_label_encoder=True)
|
||||
|
||||
model = xgb.XGBRFClassifier(n_estimators=1)
|
||||
with pytest.warns(FutureWarning):
|
||||
model.fit(X, y, w)
|
||||
|
||||
Reference in New Issue
Block a user