You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SHAP KernelExplainer分析XGBoost DART模型时输入类型报错的解决咨询

SHAP KernelExplainer分析XGBoost DART模型时输入类型报错的解决咨询

我正在尝试为自己训练的XGBoost模型(使用DART booster)绘制SHAP分析图,想要做出类似常见的SHAP可视化效果。但因为用了DART booster,shap.TreeExplainer无法使用,所以我转而尝试shap.KernelExplainer,但它一直不接受我传入的任何常见输入类型。

第一次尝试

我的代码如下:

# Data to predict
full_data = xgb.DMatrix(full_X, label=full_y, feature_names=feature_names)

# Pre-trained XGB model using DART booster
loaded_model.set_param({"device": "cuda"})

xgb_predict = lambda x: loaded_model.predict(x)

explainer = shap.KernelExplainer(xgb_predict, full_data)

运行后得到错误:

TypeError: Unknown type passed as data object: <class 'xgboost.core.DMatrix'>

第二次尝试

我也尝试传入numpy数组:

X_np = np.array(full_X)

explainer = shap.KernelExplainer(xgb_predict, X_np)

但同样返回错误:

TypeError: ('Expecting data to be a DMatrix object, got: ', <class 'numpy.ndarray'>)

我使用的是shap 0.44.0和xgboost 2.0.2,请问该如何解决这个问题?

备注:内容来源于stack exchange,提问作者Caio Atila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 08:49:35