1

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

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

  • 我不能只取最后 2,000 个值(例如),因为它们可能都属于一个类别。
  • 而且我不能随机分割时间序列,因为这样学习和测试阶段都将由不连贯的块组成。

最后,每个主题(据我所知)都有略微不同(但相似)的特征。那么,也许,因为我有成千上万的科目,我是否会在一些科目上进行训练、在一些科目上进行测试并在其他科目上进行验证?但是,由于存在学科间差异,如果我只考虑一个学科开始,我将如何设置测试?

4

1 回答 1

0

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

您将拆分数据集以进行训练/测试与拆分特定样本中的序列相混淆。似乎您有许多不同的主题,它们构成了不同的样本。对于标准的培训/测试拆分,您将在主题之间拆分数据集,如您在上一段中建议的那样。

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

于 2017-07-12T14:11:36.147 回答