我是机器学习的新手,当我的随机森林模型性能在测试数据和新数据之间出现巨大差异时,我感到非常沮丧。任何见解将不胜感激。
我的模型的目标是根据同一股票的时间序列数据预测未来时期的股票收益。我在Python中使用scikit-learn应用了Random Forest Classifier来预测收益十分位数,而不是实际的价格变化。我使用了截至2017年6月的数据,并对80%的数据进行了模型训练,并对20%的数据进行了测试。结果很棒。大于或小于1十分位数的错误分类概率为3%。这意味着,如果模型预测收益率将在十分位数5中下降,那么实际收益率仅在3%的情况下会下降至十分位数4以下或高于十分位数6。我对此感到非常高兴。
但是,当我将模型应用于“新数据”时,从2017年7月1日到现在,我得到了可怕的结果。错误分类的可能性> +/- 1十分位数跃升至60%!!!
我认为由于树木的深度,问题过于适合。但事实并非如此。我将min_samples_leaf设置为20甚至40,实际上它使对新数据的预测更糟。
还有什么呢?如果该模型在历史测试数据上表现出色,那么为什么在新数据上却表现不同。新数据的性质不能有太大的不同。
谢谢大家。
答案 0 :(得分:2)
这是一个广泛的问题,可能有许多原因导致新数据的性能较差,但我会尽力为您提供帮助: