Python 如何识别LSTM中的重要特征

Python 如何识别LSTM中的重要特征,python,keras,deep-learning,data-visualization,lstm,Python,Keras,Deep Learning,Data Visualization,Lstm,我有一个二元分类问题,对于每个数据点,我有3个时间序列,如下所示 data_point, time_series1, time_series2, time_series3, label d1, [0.1, ....., 0.5], [0.8, ....., 0.6], [0.8, ....., 0.8], 1 and so on 我使用以下代码来执行二进制分类 model = Sequential() model.add(LSTM(100, input

我有一个二元分类问题,对于每个数据点,我有3个时间序列,如下所示

data_point,   time_series1,      time_series2,      time_series3,  label
d1,         [0.1, ....., 0.5], [0.8, ....., 0.6], [0.8, ....., 0.8], 1
and so on
我使用以下代码来执行二进制分类

model = Sequential()
model.add(LSTM(100, input_shape=(25,4)))
model.add(Dense(50))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
因为,目前我正在考虑将我的分类作为一项黑盒任务,我想深入挖掘,看看里面发生了什么

更具体地说,我想知道LSTM用于对数据点进行分类的重要特性。更重要的是,我想回答以下问题

  • 哪个时间序列(即
    时间序列1
    时间序列2
    时间序列3
    )在分类中受影响最大
  • 从受影响最大的时间序列中提取的特征是什么

如果需要,我很乐意提供更多的细节。

注意力机制正是用于此;编程实现并不简单,但存在使用就绪的存储库-请参见下文。下面是输出示例

关于“注意”是什么,请参见,和/或;简言之,这是一种识别最“重要”时间步的方法,有效地绘制出时间“热图”

  • ,分类器内省(下面的第一幅图像;可应用于timeseries)
  • ,提取特征内省
  • ,简单功能(下图二)
  • -包括研究论文的具体实施
最后,作为提示,沟渠LSTM用于:;前者以800-1000个时间步挣扎,后者则以5000+的速度成功。特征也更易于解释,因为每个通道都是独立的,没有LSTM类型的选通机制。虽然如果速度很重要,那就没有了