Python 双向LSTM(BLSTM)的培训、测试和验证集

Python 双向LSTM(BLSTM)的培训、测试和验证集,python,neural-network,time-series,keras,recurrent-neural-network,Python,Neural Network,Time Series,Keras,Recurrent Neural Network,当涉及到正常的人工神经网络或任何标准的机器学习技术时,我理解训练、测试和验证集应该是什么(概念上和经验法则上)。然而,对于双向LSTM(BLSTM)网络,如何分割数据让我感到困惑 我正在努力改进对由监测的健康值组成的个体受试者数据的预测。在最简单的情况下,对于每个受试者,都有一个较长的值时间序列(>20k值),并且该时间序列的连续部分根据受试者的当前健康状况从一组类别中进行标记。对于BLSTM,网络将同时对所有向前和向后的数据进行训练。那么问题是,如何为一个主题分割时间序列 我不能只拿最后20

当涉及到正常的人工神经网络或任何标准的机器学习技术时,我理解训练、测试和验证集应该是什么(概念上和经验法则上)。然而,对于双向LSTM(BLSTM)网络,如何分割数据让我感到困惑

我正在努力改进对由监测的健康值组成的个体受试者数据的预测。在最简单的情况下,对于每个受试者,都有一个较长的值时间序列(>20k值),并且该时间序列的连续部分根据受试者的当前健康状况从一组类别中进行标记。对于BLSTM,网络将同时对所有向前和向后的数据进行训练。那么问题是,如何为一个主题分割时间序列

  • 我不能只拿最后2000个值(例如),因为它们可能都属于一个类别
  • 我不能随意地把时间序列分割开来,因为那样的话,学习和测试阶段都是由不连贯的块组成的

最后,每一个主题(据我所知)都有稍微不同(但相似)的特征。那么,也许,既然我有成千上万的科目,我是否需要在某些科目上进行培训,在某些科目上进行测试,在其他科目上进行验证?但是,由于受试者之间存在差异,如果我只考虑一个受试者开始,我将如何设置测试?

我认为这与您的特定数据集有关,而不是一般的Bi LSTM

您混淆了拆分数据集进行培训/测试与拆分特定样本中的序列。看起来你们有很多不同的主题,它们构成了一个不同的样本。对于标准的培训/测试分割,您可以按照上一段中的建议,在受试者之间分割数据集


对于任何类型的RNN应用程序,您都不会沿着时间序列进行拆分;将整个序列作为单个样本输入Bi LSTM。因此,问题实际上变成了这样一个模型是否适合您的问题,在序列中的特定点上有多个标签。您可以使用LSTM模型的序列到序列变量来预测序列中每个时间点所属的标签,但同样,您不会将序列拆分为多个部分。

我认为这与您的特定数据集有关,而不是一般的Bi LSTM

您混淆了拆分数据集进行培训/测试与拆分特定样本中的序列。看起来你们有很多不同的主题,它们构成了一个不同的样本。对于标准的培训/测试分割,您可以按照上一段中的建议,在受试者之间分割数据集

对于任何类型的RNN应用程序,您都不会沿着时间序列进行拆分;将整个序列作为单个样本输入Bi LSTM。因此,问题实际上变成了这样一个模型是否适合您的问题,在序列中的特定点上有多个标签。您可以使用LSTM模型的序列到序列变量来预测序列中每个时间点所属的标签,但同样,您不会将序列拆分为多个部分