【发布时间】:2020-06-21 07:34:06
【问题描述】:
我正在尝试使用 shap 内核解释器来解释我的模型。数据集的形状为 (176683, 42)。解释器(xgbexplainer)建模成功,当我使用它生成 shap_values 时,它会抛出内存错误。
import shap
xgb_explainer = shap.KernelExplainer(trained_model.steps[-1][-1].predict,X_for_shap.values)
shap_val = xgb_explainer.shap_values(X_for_shap.loc[0], nsamples=1)
首先我使用 nsamples 作为默认值 = 2*X_for_shap.shape[2] + 2048,它返回 MemoryError: Unable to allocate array with shape (2132, 7420686) and data type float64
当我将它设置为 nsamples = 1 时,它会无限期地运行。请帮助我了解我在这里做错了什么
【问题讨论】:
标签: machine-learning out-of-memory xgboost interpretation shap