#' Get partial variable dependences.
#'
#' @param data A data frame with columns "model" and "train" containing the model objects and training data, respectively.
#' @param pred_vars Names of predictors for which partial dependence should be computed.
#' @param ... Arguments passed on to pdp::partial.
#' @param long Boolean. Whether output should be as "long" table suited for plotting. Default is FALSE.
#'
#' @return Input data frame with added column "pdp" containing the partial variable dependence.
#' @export
partial_dependence <- function(data, pred_vars, long= FALSE, ...) {
out <- dplyr::mutate(data, pdp = purrr::map2(model, train, function(model, train){
model_dat <- train %>% st_set_geometry(NULL)
map_dfr(pred_vars, function(pred_var) {
out <- pdp::partial(model,
pred.var = pred_var,
train = model_dat)
out[["var"]] <- colnames(out)[1]
colnames(out)[1] <- "value"
return(out)
})
}))
if(long){
out <- suppressWarnings(tidyr::unnest(out, pdp) %>% dplyr::select(dplyr::one_of(c("value",
"yhat",
"var",
"data_name",
"predictor_name",
"sampling_name",
"resampling_name",
"model_name"))))
}
return(out)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.