如何从序列模型中的给定数据集中创建训练-开发-测试集

时间:2019-07-04 13:21:22

标签: tensorflow machine-learning lstm recurrent-neural-network sequence-modeling

假设我们具有以下数据集,其中“ s”代表“步骤”。

f1  f2  f3  f4  target
1   2   3   4     5
2   3   4   5     6
3   4   5   6     7
4   5   6   7     8
5   6   7   8     9

该模型包括4个(时间)步骤。它给出一个数字作为输出(目标)。 在第一个示例中,step1输入为1,step2输入为2,step3输入为3,step4输入为4。我们将训练一个Sequence模型(使用RNN,LSTM或其他方法),然后输出“ 5 ”表示该特定顺序。并且其他示例中的逻辑也相同。

我担心如何将这样的数据集划分为训练集和开发集。 (暂时忽略测试集。)

替代1: 假设前三个样本构成了训练集,接下来的两个样本构成了开发集,如下所示。

火车套:

f1  f2  f3  f4  target
1   2   3   4     5
2   3   4   5     6
3   4   5   6     7

开发设置:

f1  f2  f3  f4  target
4   5   6   7     8
5   6   7   8     9

我的担心是:如果您查看最后一个训练集样本([3,4,5,6],7)和第一个开发集样本([4,5,6,7],8),将看到3个输入步骤相同。 (并且即使是其他开发人员集样本也存在类似的问题。)

问题1:这是某些输入步骤相同的问题吗?还是可以说这并不重要,因为(1)即使输入步长相同,它们也会在序列的不同步中使用,并且(2)每个序列示例的目标值仍然不同。

第二季度:存在上述问题,应该如何创建测试集?

1 个答案:

答案 0 :(得分:2)

是的,没关系,因为它们的时间步长不同,而且顺序也不相同。他们也有不同的目标。因此,如果您对模型进行了很好的训练,那么您的模型肯定应该学会预测下一个角色。