我正在使用 PyTorch 处理二元分类问题,并尝试使用 SHAP 解释我的模型。我已经使用
KernelExplainer
成功获得了每个类的 SHAP 值,我想组合这些数组以获得代表组合类的 SHAP 值的单个矩阵。我不知道该怎么做。
import numpy as np
from shap import KernelExplainer
np.random.seed(0)
train_data, train_labels = next(iter(train_loader))
train_data = to_numpy(train_data)
exp = KernelExplainer(model.predict_shap, train_data)
test_data, test_labels = next(iter(test_loader))
test_data = to_numpy(test_data)
shap_values = exp.shap_values(test_data)
class_label1_shap_values = shap_values[0]
class_label2_shap_values = shap_values[1]
shap_values
变量是一个数组列表,其中每个数组对应一个类标签。我想组合这些数组以获得单个 SHAP 值数组。我尝试将数组添加在一起,但我不确定这是否是正确的方法。
combined_shap_values = class_label1_shap_values + class_label2_shap_values
任何有关如何正确组合这些 SHAP 值的指导将不胜感激。