监督学习中LSTM序列预测的训练测试集划分合规性咨询
LSTM时序预测样本构造与数据集划分问题解答
关于训练测试划分合规性与评估有效性
- 你当前的划分方式完全符合时间序列监督学习的规范,可以直接将
Xtest=[(7,8)]输出的预测结果和真实测试值[(9,10)]对比做模型评估。 - 时间序列数据集划分的核心准则是所有训练数据的时间戳严格早于测试数据的时间戳,禁止测试集信息流入训练环节。你划定的训练集覆盖观测值1-8,测试集覆盖9-10,构造的所有训练样本(包括X和Y)用到的观测值最大序号为8,测试集的9、10从未出现在训练过程中,不存在数据泄露问题。
- 你采用的输入窗口长2、预测窗口长2、滑动步长1的窗口采样方式,是时序预测任务里的常规操作,本身没有逻辑错误。
关于是否需要截断训练集预留间隔
- 不需要做你提到的截断操作,也没必要在训练集和测试集之间刻意留间隔,这种操作反而会浪费有效训练数据,拉低模型效果。
- 预留间隔/截断训练集的唯一适用场景,是训练集的输出窗口越界覆盖了测试集的时间范围,造成数据泄露。举个典型的错误例子:如果你的训练集最后一个样本构造为
X=(6,7), Y=(8,9),此时Y里的9属于测试集数据,模型训练时提前接触到了测试集的真实标签,后续评估结果会完全虚高,这种情况才需要删掉越界样本,或者留出长度等于预测窗口的间隔。 - 你当前构造的训练集里,所有Y样本的最大观测值是8,刚好落在训练集的边界上,没有越界到测试集范围。你提到的「训练集标签末尾观测值被用于预测输入」是完全合理的:推理阶段本来就允许使用所有训练阶段可见的最新观测值作为输入,7、8本身就是训练集的最后两个已知观测值,用来预测后续的9、10完全符合任务设定,不属于需要规避的问题。
- 你设想的把训练集截断为
xtrain=[(4,5)]、ytrain=[(6,7)]的做法,会直接丢掉4组有效训练样本,对于本身长度就只有10的序列来说,样本量过少会直接导致模型欠拟合,完全不可取。
小提示:当前你构造的训练集只有5个样本,数据量偏少,如果后续模型效果不佳,可以在原始数据量充足的前提下调整窗口长度、滑动步长来扩充样本,但现有划分逻辑不存在原则性错误。
内容的提问来源于stack exchange,提问作者New
相关产品推荐
相关产品推荐

