0

问题是关于RandomForest 模型中训练/测试拆分的错误选择策略。我知道以这种方式选择测试集会产生错误的输出,但我想知道为什么

(模型查看前几天的数据,并试图预测第二天的数据会高于还是低于今天,即分类问题)

我从另一个示例中复制了训练/测试拆分代码,它只是将随机行设置为 train_set 或 test_set。(试图在下面说明) 在此处输入图像描述 原始数据是例如 EURUSD 的每日收盘价。

然后我基于此创建功能。每个特征都会查看一些先前的数据点,并提出一组特征,这些特征是 X_test 中的一行。然后我训练一个随机森林模型来尝试预测第二天的收盘价。

test_set 中的准确性非常高,并且随着它查看的历史先前点数的增加而增加,这似乎表明过度拟合。

例如,当我将训练/测试拆分模型更改为具有例如 train_set:1 月至 6 月的数据和 test_set:8 月的数据时,即完全分离的数据集并且不可能混合,准确度是更现实的 50%。

同样,我知道火车/测试拆分是不正确的,但是有人可以帮我理解为什么..吗?

每次我想验证一行(即 test_set 中的一个预测)时,我都会使用查看先前数据的功能来预测明天的数据?怎么会出现过拟合?

4

1 回答 1

0

用愚蠢的孩子示例解释过度拟合:

如果您混合来自训练和测试的数据,您可能会出现过度拟合。将测试视为考试,将培训数据视为可用于学习考试的材料。然后把机器学习算法想象成一个不太聪明但有很多记忆的孩子。如果考试中有 10% 的问题与他在课本上找到的完全一样,那么即使他不了解将问题与答案联系起来的逻辑,他也很有可能会答对。如果他只答对了与教科书完全一样的问题,你不会认为他什么都懂,只记得书中的例子,即使他得到了很好的评价(因为正确答案的百分比是高的)。你没有训练算法从当前数据中猜测未来数据,而是一个可以从训练集中记住示例的字典。即使数据是完全随机的,这也会起作用(事实上,结果可能会更好)。

于 2017-08-30T08:40:12.050 回答