我已经写了一份GA,用于在一段时间(5年)内对少数股票(4)进行建模。令人印象深刻的是GA能够快速找到训练数据的最佳解决方案,但我也知道这主要是因为它在训练阶段过度适应的倾向。
然而,我仍然认为我可以采取一些预防措施,并对同一时期的一组看不见的测试股进行某种预测。
我采取的一项预防措施是: 当同一天可以购买多个股票时,GA只会从列表中购买一个,并随机选择一个。我认为这种随机性可能有助于避免过度拟合?
即使仍然发生过度拟合,在GA的最初几代中不应该缺席,因为它还没有机会过度适应吗?
作为一个注释,我知道没有免费的午餐定理,它证明了(我相信)没有完美的参数集可以为两个不同的数据集产生最佳输出。如果我们进一步考虑这个问题,这个非免费午餐定理是否也禁止概括?
下图说明了这一点。 - >蓝线是GA输出。 - >红线是训练数据(由于上述随机性而略有不同) - >黄线是顽固的测试数据,没有显示出一般性。事实上,这是我可以制作的最讨人喜欢的图表。
y轴是利润,x轴是根据各自的利润(在y轴上)从最差到最好(从左到右)排序的交易策略
到目前为止我收到的一些最好的建议(感谢seaotternerd)是关注前几代并增加训练样例的数量。下图中有12个培训股而不仅仅是4个,仅显示前200代(而不是1,000代)。同样,它是我能够制作的最讨人喜欢的图表,这次是中等选择压力。它看起来确实好一点,但也不是很棒。红线是测试数据。
答案 0 :(得分:0)
过度拟合的问题在于,在单个数据集中,除了在一般情况下实际上变得更好之外,过度拟合是非常具有挑战性的。在许多方面,这更像是一门艺术,而不是一门科学,但这里有一些通用的指导方针:
结论:我认为改变测试案例是最有希望的(虽然我有偏见,因为这是我的主要研究领域之一),但它也是最具挑战性的解决方案,实现明智的。因此,作为一个更简单的修复,您可以尝试更快地停止进化或增加数据集。