Skip to content

Commit d53484d

Browse files
committed
Update xgboost integration for v2.x/3.x API changes
- Use x, y arguments instead of data=DMatrix (DMatrix deprecated) - Use verbosity parameter instead of verbose (deprecated) - Convert y to factor for binary classification (required in xgboost 3.x) - Filter out deprecated parameters from user args
1 parent bfb2df3 commit d53484d

1 file changed

Lines changed: 13 additions & 8 deletions

File tree

R/ml_learner.R

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -257,20 +257,25 @@ print.ml_learner <- function(x, ...) {
257257
y <- model.response(mf)
258258
x <- model.matrix(formula, data = data)[, -1, drop = FALSE] # Remove intercept
259259

260-
# Convert to DMatrix
261-
dtrain <- xgboost::xgb.DMatrix(data = x, label = y)
262-
263-
# Set defaults based on family
264-
objective <- if (family == "binomial") "binary:logistic" else "reg:squarederror"
260+
# Set defaults based on family (xgboost 2.x/3.x API uses x, y directly)
261+
# For binary classification, xgboost 3.x requires factor y
262+
if (family == "binomial") {
263+
objective <- "binary:logistic"
264+
y <- factor(y, levels = c(0, 1))
265+
} else {
266+
objective <- "reg:squarederror"
267+
}
265268

266269
default_args <- list(
267-
data = dtrain,
270+
x = x,
271+
y = y,
268272
nrounds = 100,
269273
objective = objective,
270-
verbose = 0
274+
verbosity = 0 # xgboost 2.x/3.x uses verbosity instead of verbose
271275
)
272276

273-
# Merge user args
277+
# Merge user args, removing deprecated parameters if passed
278+
args <- args[!names(args) %in% c("verbose", "data")]
274279
call_args <- modifyList(default_args, args)
275280

276281
# Store formula info for prediction

0 commit comments

Comments
 (0)