如何从序列模型中的给定数据集创建训练 - 开发 - 测试集
how to create train - dev - test sets from a given dataset in sequence models
假设我们有以下数据集,其中 's' 代表 'step'。
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:针对上述问题,testset应该如何创建?
是的,没关系,因为它们处于不同的时间步长,而且序列也不相同。他们也有不同的目标。所以如果你训练好你的模型,你的模型肯定应该学会预测下一个字符。
假设我们有以下数据集,其中 's' 代表 'step'。
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:针对上述问题,testset应该如何创建?
是的,没关系,因为它们处于不同的时间步长,而且序列也不相同。他们也有不同的目标。所以如果你训练好你的模型,你的模型肯定应该学会预测下一个字符。