【问题标题】:How to do model agnostics on LSTM neural network in Python?如何在 Python 中对 LSTM 神经网络进行模型不可知论?
【发布时间】:2021-05-10 15:16:56
【问题描述】:

我在我的数据集上使用了 LSTM 神经网络(Keras 包),并希望使用与模型无关的方法来查找变量对我的预测的影响。 数据集是一个具有三个维度的数组。我有多个 ID,每个 ID 都有自己的序列,每个 ID 都有可变的时间步长。我的数据集的形状如下所示:(18610, 151, 18)(ID、时间步长、变量),一个时间步长上一个 ID 的变量输出如下所示(预测类 1):

[2.00000000e+00 0.00000000e+00 2.10544316e-03 1.56082309e-03
 0.00000000e+00 1.01647775e-01 0.00000000e+00 4.28571559e-01
 6.95422174e-01 8.52459016e-01 1.20027614e-01 1.00000000e+00
 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
 0.00000000e+00 1.00000000e+00] 1

所有模型不可知论方法(据我所知)都不适用于这些具有三个维度的数组数据集。有没有办法仍然找到变量的影响(使用 Lime、部分依赖图或 Shapley?)所以我可以解释模型?我更喜欢使用部分依赖图来查看全局解释。

有谁知道如何做到这一点(使用示例代码)?提前非常感谢您!

【问题讨论】:

  • 我也有同样的问题。你找到答案了吗?

标签: python keras lstm lime pdp


【解决方案1】:

我不确定您需要模型不可知方法的目的是什么,但我使用一种用于特征排名。 您的数据(18610、151、18)的形状是 3D。您可以使用与模型无关的 SHAP 方法,它非常适合您的数据。

【讨论】:

  • 使用了哪个explainer?我在 LSTM 上实现 SHAP 时遇到了不同的错误
猜你喜欢
  • 2017-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-25
  • 2022-08-15
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
相关资源
最近更新 更多