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

Tensorflow 如何从序列模型中的给定数据集创建训练-开发-测试集,tensorflow,machine-learning,lstm,recurrent-neural-network,sequence-modeling,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。我们将训练一个序列模型(带有RNN、LSTM或

假设我们有以下数据集,其中“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”。其他样本的逻辑也是一样的

我关心的是如何将这样的数据集划分为train集和dev集。(暂时忽略测试集。)

备选方案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个输入步骤是相同的。(即使是另一个dev set示例也存在类似的问题。)

Q1:某些输入步骤相同是否存在问题?或者我们可以说,这不重要,因为(1)即使输入步骤相同,它们也在序列的不同步骤中使用,(2)每个序列示例的目标值仍然不同


Q2:Wrt上面的问题,测试集应该如何创建?

是的,这不重要,因为它们在不同的时间步,并且序列不相同。他们也有不同的目标。因此,如果你训练好你的模型,你的模型肯定应该学会预测下一个角色。

是的,这并不重要,因为它们在不同的时间步,而且序列也不相同。他们也有不同的目标。因此,如果你训练好你的模特,你的模特一定要学会预测下一个角色。

谢谢你,@Dulmina!如果目标是相同的呢?您是否仍然认为在不同的时间步中使用相同的bcz输入是安全的?另外,你能用一些数学解释来详细说明你的答案吗?这将非常有帮助。这取决于你的任务。如果可以根据您的任务使用具有相同目标的2个序列,那么就可以了。但根据您的任务,如果两个序列不能具有相同的目标,并且您的数据集中存在此类数据,则这是不正确的数据。那么错误的数据将误导模型的学习。同样,答案也不能用数学方程式来详细说明。如果需要,可以在数学详细信息中参考LSTM的工作原理。:-)谢谢你,@Dulmina!如果目标是相同的呢?您是否仍然认为在不同的时间步中使用相同的bcz输入是安全的?另外,你能用一些数学解释来详细说明你的答案吗?这将非常有帮助。这取决于你的任务。如果可以根据您的任务使用具有相同目标的2个序列,那么就可以了。但根据您的任务,如果两个序列不能具有相同的目标,并且您的数据集中存在此类数据,则这是不正确的数据。那么错误的数据将误导模型的学习。同样,答案也不能用数学方程式来详细说明。如果需要,可以在数学详细信息中参考LSTM的工作原理。:-)