【问题标题】:Which Shap-Explainer fits my requirements哪个形状解释器符合我的要求
【发布时间】:2021-06-07 18:45:58
【问题描述】:

我创建了一个使用 Keras 和 Tensorflow 作为后端的 CNN,我的数据由 2D 图像组成,这些图像代表来自预处理的 DEAP-Dataset 的 EEG(脑电图)数据。

我曾考虑使用SHAP 作为模型解释器,但由于有几个形状解释器(内核、深度、线性、渐变...),我不确定哪一个最适合我的需求,或者什至 SHAP在我的情况下可能会有所帮助。 由于我的图片(尺寸:40x100x1,第三维度来自np.expand_dims,因为keras需要3D图片)没有颜色,SHAP是不是一个相当大的方法?

我的数据集中一项的片段

[[[ 3.10000000e+01]
[ 3.00000000e+01]
[-1.14638321e-01]

[ 1.24121500e+02]
[ 3.11109855e+00]
[-1.93024874e-01]]
...
[[ 3.10000000e+01]
[ 3.00000000e+01]
[-6.61770462e-02]]]

从我的数据集中绘制上述项目

希望有人可以帮助我或为我指明正确的方向,谢谢!

【问题讨论】:

    标签: python tensorflow keras conv-neural-network shap


    【解决方案1】:

    在模型解释中使用 SHAP 没有任何限制,因为它们的字面意思是

    解释任何机器学习模型的输出

    (与docs比较)

    确实有几个核心解释器可用。但它们针对不同类型的模型进行了优化。由于您的案例包含使用 TensorFlow 和 Keras 构建的 CNN 模型,因此您可能需要考虑以下两个作为主要选项:

    这两个核心解释器都适用于深度学习模型,尤其是内置于 TensorFlow 和 Keras 中的模型。它们之间的区别在于它们如何在内部逼近 SHAP 值(您可以通过相应的链接阅读有关底层方法的更多信息)。因此,它们很可能不会返回完全相同的结果。但是,可以公平地假设不会有任何显着差异(尽管不能保证)。

    虽然前两个是主要选项,但您可能仍想检查另一个 core explainers。例如,KernelExplainer 可用于任何模型,因此也可以作为深度学习模型的一个选项。但如前所述,前两者特别适用于深度学习模型,因此(可能)应该是首选。

    由于您使用图片作为输入,您可能会发现image_plot 很有用。可以在您已链接到的 GitHub 存储库中找到使用示例。您也不必担心颜色,因为它们无关紧要(请参阅DeepExplainer MNIST example)。

    【讨论】:

    • 您好 afsharov,非常感谢您的帮助。那就用 DeepExplainer 试试吧!
    猜你喜欢
    • 2013-08-23
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    相关资源
    最近更新 更多