library(xgboost)
library(tidypredict)
logregobj <- function(preds, dtrain) {
labels <- xgboost::getinfo(dtrain, "label")
preds <- 1 / (1 + exp(-preds))
grad <- preds - labels
hess <- preds * (1 - preds)
return(list(grad = grad, hess = hess))
}
xgb_bin_data <- xgboost::xgb.DMatrix(as.matrix(mtcars[, -9]), label = mtcars$am)
model <- xgboost::xgb.train(
params = list(max_depth = 2, silent = 1, objective = "binary:logistic", base_score = 0.5),
data = xgb_bin_data, nrounds = 50
)
tidypredict_fit(model)
#> 1 - 1/(1 + exp(0 + dplyr::case_when(wt >= 3.18000007 ~ -0.436363667,
#> (qsec < 19.1849995 | is.na(qsec)) & (wt < 3.18000007 | is.na(wt)) ~
#> 0.428571463, qsec >= 19.1849995 & (wt < 3.18000007 |
#> is.na(wt)) ~ 0) + dplyr::case_when((wt < 3.01250005 |
#> ....
tidypredict_sql(model, dbplyr::simulate_odbc())
#> Error in UseMethod("escape"): no applicable method for 'escape' applied to an object of class "function"