为什么我们不能以 0.01 为参数或 99% 的训练数据拆分训练测试数据

数据挖掘 张量流 lstm 训练
2021-10-11 01:41:26

大多数博客都提到了一个好的拇指规则,即分别用于训练和测试的 80-20 分割。

我的特例是一个时间序列数据集,它用于股票价格,IMO 对时间非常敏感。

问题?为什么我们不能进行 99-1 的训练测试拆分,让模型学习所有信息和时间趋势。由于我的预测是在未来,我将不断增加我的测试数据集。我正在使用神经网络 (rnn-lstm) 进行预测。

我知道 cross_validation、froward_chaining 是训练时间序列数据集的更好方法。

2个回答

拆分 80%-20% 的想法是使用尽可能多的数据进行训练,同时在测试集中保留足够的(标记的)数据,以便可靠地评估性能。如果测试集足够大,可以使用较小的测试集,但如果太小,评估可能无法反映模型的真实性能。

您使用未来测试数据的想法很好,它只是意味着可靠的评估被延迟,直到您获得足够的测试数据。同时,您无法确定您的模型表现良好,因此我会避免将其用于证券交易所的真实交易;)

80-20 分只是一种启发式方法。

如果您想精确地了解它,您可以对其进行统计分析。假设您有一个 0-1 分类器,并且您希望准确度在δ[0,1],那么表明你需要并不难 ķ=1/(δε2) 测试样本以衡量您的准确度高达一个因素 1±ε.

这意味着如果您的数据量远大于 ķ,您可以使用更不均匀的拆分。如果你甚至没有ķ 样本,那么您将无法获得精确的结果,您所能做的就是考虑诸如交叉验证之类的方法。