@@ -421,3 +421,44 @@ test_that('argument checks for data dimensions', {
421421 expect_equal(xy_fit $ fit $ params $ min_child_weight , nrow(penguins ))
422422
423423})
424+
425+ test_that(" set `event_level` as engine-specific argument" , {
426+
427+ skip_if_not_installed(" xgboost" )
428+
429+ data(penguins , package = " modeldata" )
430+ penguins <- na.omit(penguins [, - c(1 : 2 )])
431+
432+ spec <-
433+ boost_tree(trees = 10 , tree_depth = 3 ) %> %
434+ set_engine(
435+ " xgboost" ,
436+ eval_metric = " aucpr" ,
437+ event_level = " second" ,
438+ verbose = 1
439+ ) %> %
440+ set_mode(" classification" )
441+
442+ set.seed(24 )
443+ fit_p <- spec %> % fit(sex ~ . , data = penguins )
444+
445+ penguins_x <- as.matrix(penguins [, - 5 ])
446+ penguins_y <- as.numeric(penguins $ sex ) - 1
447+ xgbmat <- xgb.DMatrix(data = penguins_x , label = penguins_y )
448+
449+ set.seed(24 )
450+ fit_xgb <- xgboost :: xgb.train(data = xgbmat ,
451+ params = list (eta = 0.3 , max_depth = 3 ,
452+ gamma = 0 , colsample_bytree = 1 ,
453+ min_child_weight = 1 ,
454+ subsample = 1 ),
455+ nrounds = 10 ,
456+ watchlist = list (" training" = xgbmat ),
457+ objective = " binary:logistic" ,
458+ verbose = 1 ,
459+ eval_metric = " aucpr" ,
460+ nthread = 1 )
461+
462+ expect_equal(fit_p $ fit $ evaluation_log , fit_xgb $ evaluation_log )
463+
464+ })
0 commit comments