存在二元分类问题:如何获得 Ranger 模型变量的 Shap 贡献?
样本数据:
library(ranger)
library(tidyverse)
# Binary Dataset
df <- iris
df$Target <- if_else(df$Species == "setosa",1,0)
df$Species <- NULL
# Train Ranger Model
model <- ranger(
x = df %>% select(-Target),
y = df %>% pull(Target))
Run Code Online (Sandbox Code Playgroud)
我尝试过几个库(DALEX、、、)shapr,但没有得到任何解决方案。fastshapshapper
SHAPforxgboost我希望得到像xgboost 这样的结果:
shap.values是变量的形状贡献shap.plot.summary尝试使用交叉折叠重采样并拟合 Ranger 包中的随机森林。无需重新采样的拟合工作正常,但一旦我尝试重新采样拟合,它就会失败并出现以下错误。
考虑以下df
df<-structure(list(a = c(1379405931, 732812609, 18614430, 1961678341,
2362202769, 55687714, 72044715, 236503454, 61988734, 2524712675,
98081131, 1366513385, 48203585, 697397991, 28132854), b = structure(c(1L,
6L, 2L, 5L, 7L, 8L, 8L, 1L, 3L, 4L, 3L, 5L, 7L, 2L, 2L), .Label = c("CA",
"IA", "IL", "LA", "MA", "MN", "TX", "WI"), class = "factor"),
c = structure(c(2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L,
2L, 2L, 2L, 1L), .Label = c("R", "U"), class = "factor"),
d = structure(c(3L, 3L, …Run Code Online (Sandbox Code Playgroud)