我正在尝试使用 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 时,它会无限期地运行。请帮助我了解我在哪里做错了