假设我们有以下数据集,其中“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。我们将训练一个序列模型(使用 RNN、LSTM 或其他),然后输出“5 " 对于这个特定的序列。其他示例中的逻辑也是相同的。
我担心如何将这样的数据集划分为训练集和开发集。(暂时忽略测试集。)
备选方案 1: 假设前 3 个样本构成训练集,接下来的 2 个样本构成开发集,如下图所示。
动车组:
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 个输入步骤相同。(即使使用其他开发集样本也存在类似的问题。)
Q1:是不是有些输入步骤相同的问题?或者我们可以说它不应该仅仅因为(1)即使输入步骤相同,它们也用于序列的不同步骤,(2)每个序列示例的目标值仍然不同。
Q2:上面的问题,应该如何创建测试集?