50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
import sys
|
|
|
|
import numpy as np
|
|
import pandas as pd
|
|
|
|
import xgboost as xgb
|
|
|
|
sys.path.append("tests/python")
|
|
# Don't import the test class, otherwise they will run twice.
|
|
import test_interaction_constraints as test_ic # noqa
|
|
|
|
rng = np.random.RandomState(1994)
|
|
|
|
|
|
class TestGPUInteractionConstraints:
|
|
cputest = test_ic.TestInteractionConstraints()
|
|
|
|
def test_interaction_constraints(self):
|
|
self.cputest.run_interaction_constraints(tree_method="gpu_hist")
|
|
|
|
def test_training_accuracy(self):
|
|
self.cputest.training_accuracy(tree_method="gpu_hist")
|
|
|
|
# case where different number of features can occur in the evaluator
|
|
def test_issue_8730(self):
|
|
X = pd.DataFrame(
|
|
zip(range(0, 100), range(200, 300), range(300, 400), range(400, 500)),
|
|
columns=["A", "B", "C", "D"],
|
|
)
|
|
y = np.array([*([0] * 50), *([1] * 50)])
|
|
dm = xgb.DMatrix(X, label=y)
|
|
|
|
params = {
|
|
"eta": 0.16095019509249486,
|
|
"min_child_weight": 1,
|
|
"subsample": 0.688567929338029,
|
|
"colsample_bynode": 0.7,
|
|
"gamma": 5.666579817418348e-06,
|
|
"lambda": 0.14943712232059794,
|
|
"grow_policy": "depthwise",
|
|
"max_depth": 3,
|
|
"tree_method": "gpu_hist",
|
|
"interaction_constraints": [["A", "B"], ["B", "D", "C"], ["C", "D"]],
|
|
"objective": "count:poisson",
|
|
"eval_metric": "poisson-nloglik",
|
|
"verbosity": 0,
|
|
}
|
|
|
|
xgb.train(params, dm, num_boost_round=100)
|