Skip to content

Commit eb6f82d

Browse files
committed
fix kernelshap background data
1 parent 313d346 commit eb6f82d

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

R/surv_shap.R

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -252,23 +252,21 @@ use_kernelshap <- function(explainer, new_observation, output_type, N, ...) {
252252
new_observation, "data.frame")
253253
)
254254

255-
# get explainer data to be able to make class checks and transformations
256-
explainer_data <- explainer$data
255+
background_data <- explainer$data[sample(1:nrow(explainer$data), N),]
257256
# ensure that classes of explainer$data and new_observation are equal
258-
if (!inherits(explainer_data, "data.frame")) {
259-
explainer_data <- data.frame(explainer_data)
257+
if (!inherits(background_data, "data.frame")) {
258+
background_data <- data.frame(background_data)
260259
}
261260

262261
if (is.null(N)) N <- nrow(explainer$data)
263-
background_data <- explainer$data[sample(1:nrow(explainer$data), N),]
264262

265263
shap_values <- sapply(
266264
X = as.character(seq_len(nrow(new_observation))),
267265
FUN = function(i) {
268266
tmp_res <- kernelshap::kernelshap(
269267
object = explainer$model,
270268
X = new_observation[as.integer(i), ], # data.frame
271-
bg_X = explainer_data, # data.frame
269+
bg_X = background_data, # data.frame
272270
pred_fun = predfun,
273271
verbose = FALSE
274272
)

0 commit comments

Comments
 (0)