我被要求在 R 中创建一个 SHAP 分析,但我找不到它如何为 CatBoost 模型获取它。我可以得到 XGBoost 模型的 SHAP 值
shap_values <- shap.values(xgb_model = model, X_train = train_X)
但不是为了CatBoost。
这是我的 CatBoost 模型的可重现代码:
library(data.table)
library(catboost)
train_example <- data.table(categorical_feature = c("a", "b", "a", "a", "b"), payment = c(244, 52352, 4235, 3422, 535), age = c(34, 27, 19, 40, 92), target = c(0,0,1,0,1))
label_values_train <- train_example$target
train_X <-train_example[, - "target"]
train_X$categorical_feature <- as.factor(train_X$categorical_feature)
# datapool for the train dataset:
pool <- catboost.load_pool(train_X, label = label_values_train, cat_features = 1)
fit_params_report <- list(iterations = 1000,
loss_function = 'Logloss',
eval_metric='F1',
border_count = 42,
depth = 8,
learning_rate = 0.04,
l2_leaf_reg = 0.001,
task_type = 'CPU')
model <- catboost.train(pool, params = fit_params_report)
我怎样才能继续在这里获取 SHAP 值?