Shap KernelExplainer 無法在 GPU 上運行



在Tensorflow 2.4.1中定义了一个顺序神经网络。我使用Shap.KernelExplainer来表示特性的重要性。跑步要花很长时间。是否可以通过GPU运行KernelExplainer?

import shap
data = shap.kmeans(X_train[X_vars], 5)
explainer = shap.KernelExplainer(model.predict, data, gpu_model=True)
shap_values = explainer.shap_values(X_test[X_vars])
shap_values = shap_values[0]
shap.summary_plot(shap_values, X_test[X_vars], plot_type="bar", plot_size=(15, 10))

在CuML库中有一个gpu加速版本的KernelExplainer: CuML . interpreter . kernelexplainer。通常,在大型数据集上运行KernelExplainer非常耗时。因此,建议使用样本和/或特征的子集。

有一种专门为深度学习模型设计的方法,叫做deep SHAP,你可以这样使用它:

import shap
import numpy as np
background = x_train[np.random.choice(X_train.shape[0], 10, replace=False)]
deep_explainer = shap.DeepExplainer(model, background)
shap_values = deep_explainer.shap_values(X_test[1:5])

最新更新