问题是关于RandomForest模型中训练/测试分裂的错误选择策略。我知道选择测试集这样会产生错误的输出,但我想知道为什么。
(该模型查看前几天的数据,并试图预测第二天的数据是否会高于或低于今天,即分类问题)
我从另一个例子复制了火车/测试分割代码,它只是将随机行设置为train_set或test_set。 (试图在下面说明) 原始数据是每日收盘价,例如EURUSD。
然后我根据它创建功能。每个功能都会查看一些以前的数据点,并提供一组功能,这些功能是X_test中的一行。然后,我训练一个随机的森林模型,试图预测第二天的结束。
test_set的准确性非常高,并且随着它所看到的历史先前点数的增加而增加,这似乎表明过度拟合。
当我改变列车/测试分割模型时,例如,train_set:1月至6月的数据和test_set:8月的数据,即完全独立的数据集,没有可能的混合,准确度是50%的实际值。 / p>
同样,我知道火车/测试分裂是不正确的,但是有人可以帮助我理解为什么......?
每次我想验证一行(即test_set中的一个预测)时,我会使用查看之前数据的功能来预测明天的数据?怎么会有过度拟合?
答案 0 :(得分:0)
如果您混合训练和测试中的数据,您可能会过度拟合。将考试视为考试,并将考试数据作为可用于考试的材料。然后把机器学习算法想象成一个不太聪明但有很多记忆的孩子。如果考试中10%的问题与他在教科书上发现的问题完全相同,那么即使他不理解将问题联系起来的逻辑,他也很可能会把问题弄清楚。如果他只对问题与教科书完全相同,你就不会认为他对此有任何了解,只记得书中的例子,即使他得到了很好的评价(因为正确答案的百分比是高)。您没有训练算法来猜测来自当前数据的未来数据,而是一个能够记住其训练集中的示例的字典。即使数据完全随机(事实上,结果可能更好),这也会有效。