24 lines
574 B
R
24 lines
574 B
R
require(xgboost)
|
|
|
|
context("monotone constraints")
|
|
|
|
set.seed(1024)
|
|
x <- rnorm(1000, 10)
|
|
y <- -1 * x + rnorm(1000, 0.001) + 3 * sin(x)
|
|
train <- matrix(x, ncol = 1)
|
|
|
|
|
|
test_that("monotone constraints for regression", {
|
|
bst <- xgboost(data = train, label = y, max_depth = 2,
|
|
eta = 0.1, nthread = 2, nrounds = 100, verbose = 0,
|
|
monotone_constraints = -1)
|
|
|
|
pred <- predict(bst, train)
|
|
|
|
ind <- order(train[, 1])
|
|
pred.ord <- pred[ind]
|
|
expect_true({
|
|
!any(diff(pred.ord) > 0)
|
|
}, "Monotone constraint satisfied")
|
|
})
|