假设我们具有以下数据集,其中“ 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)每个序列示例的目标值仍然不同。
第二季度:存在上述问题,应该如何创建测试集?
答案 0 :(得分:2)
是的,没关系,因为它们的时间步长不同,而且顺序也不相同。他们也有不同的目标。因此,如果您对模型进行了很好的训练,那么您的模型肯定应该学会预测下一个角色。