r语言 - SHAP values from CARET



我一直在阅读并尝试为我的一些模型创建一些SHAP图,但我一生都找不到与caret集成的包。

我只需要检测一下方向的功能是否合理。

假设我构建了一个简单的xgboost模型

model_1 <- train(
sales~., 
data=example_df, 
method="xgbTree", 
preProcess=c('center', 'scale', 'zv'), 
trControl=trainControl(method="repeatedcv", number=5, repeats=2), 
na.action = na.omit
)

我已经做过几次了,也做了一些功能工程和选择,但现在想看看shap值。我该如何做到这一点?

caret::train返回的train对象包含一个元素finalModel,该元素属于该方法生成的类型。在这种情况下,它是一个xgboost对象。您可以在此对象上使用xgboost包中的所有实用程序。

要绘制形状值,请调用xgb.plot.shap(data = example_df, model = model_1$finalModel, top_n = 15)。要获得shap值本身,您可以使用plot = FALSE调用相同的函数,如shap_values <- xgb.plot.shap(data = example_df, model = model_1$finalModel, top_n = 15, plot = FALSE)

最新更新