test_that("g_xgboost gives the same result as plain xgboost",{ # data d <- sim_single_stage(1000, seed=1) x <- d[,c("Z", "L", "B")] y <- as.logical(d[["A"]]) set.seed(1) bst <- xgboost::xgboost(x = x, y = y, max_depth = 2, learning_rate = 1, nrounds = 2, objective = "binary:logistic", verbosity = 0) pred <- predict(bst, newdata = x) # policy data pd <- policy_data(d, action = "A", covariates = list("Z", "B", "L"), utility = "U") set.seed(1) g_fun <- fit_g_functions(pd, g_models = g_xgboost(max_depth = 2, learning_rate = 1, nrounds = 2)) pred_polle <- predict(g_fun, pd) expect_equal( unname(pred), pred_polle[["g_1"]] ) }) ## test_that("g_xgboost gives the same result as SL.xgboost", { ## # policy data ## d <- sim_single_stage(1000, seed=1) ## pd <- policy_data(d, ## action="A", ## covariates = list("Z", "B", "L"), ## utility="U") ## g_fun <- fit_g_functions(pd, ## g_models = g_xgboost(max_depth = 2, ## learning_rate = 1, ## nrounds = 1)) ## pred_1 <- predict(g_fun, pd) ## xgboost_tune <- list(max_depth = 2, ## shrinkage = 1, # eta ## ntrees = 1) # nrounds ## sl_learner <- create.Learner("SL.xgboost",tune = xgboost_tune) ## g_fun_sl <- fit_g_functions(pd, ## g_models = g_sl(SL.library = sl_learner$names, env = environment())) ## pred_2 <- predict(g_fun_sl, pd) ## expect_equal( ## pred_1, ## pred_2 ## ) ## }) test_that("g_xgboost tunes parameters",{ # data d <- sim_single_stage(1000, seed=1) # policy data pd <- policy_data(d, action="A", covariates = list("Z", "B", "L"), utility="U") set.seed(1) g_fun <- fit_g_functions(pd, g_models = g_xgboost(max_depth = 2, learning_rate = c(0.3,1), nrounds = c(2,4))) expect_equal( length(g_fun$all_stages$g_model$cv_res$cv), 3 * 2 * 2 * 2 ) })