Python 测试数据与测试数据之间的随机森林精度差异;新数据
我的随机森林模型的性能在测试数据和新数据之间存在巨大差异 我的模型的目标是基于同一股票的时间序列数据预测未来时期的股票收益。我使用Python中的scikit learn应用随机森林分类器来预测收益十分位数,而不是实际的价格变化。我使用了截至2017年6月的数据,在80%的数据上对模型进行了培训,并在20%的数据上进行了测试。结果很好。错误分类大于或小于十分之一的概率为3%。这意味着,若模型预测收益率下降到十分位5,实际收益率将下降到低于十分位4或高于十分位6的情况仅占3%。我对此感到非常高兴 然而,从2017年7月1日至今,当我在“新数据”上应用该模型时,我得到了可怕的结果。误分类概率>+/-1十分位跳到60% 我认为由于树木的深度,这个问题过于合适了。但事实并非如此。我将min_samples_leaf设置为20甚至40,实际上它使对新数据的预测变得更糟Python 测试数据与测试数据之间的随机森林精度差异;新数据,python,scikit-learn,random-forest,Python,Scikit Learn,Random Forest,我的随机森林模型的性能在测试数据和新数据之间存在巨大差异 我的模型的目标是基于同一股票的时间序列数据预测未来时期的股票收益。我使用Python中的scikit learn应用随机森林分类器来预测收益十分位数,而不是实际的价格变化。我使用了截至2017年6月的数据,在80%的数据上对模型进行了培训,并在20%的数据上进行了测试。结果很好。错误分类大于或小于十分之一的概率为3%。这意味着,若模型预测收益率下降到十分位5,实际收益率将下降到低于十分位4或高于十分位6的情况仅占3%。我对此感到非常高兴
还可能是什么?如果模型在历史测试数据上表现如此出色,那么为什么它在新数据上表现如此不同。新数据的性质不能有那么大的不同 这是一个广泛的问题,可能有很多原因导致新数据的性能较差,但我会尽力帮助您:
很难说不知道你在看什么股票,但“新数据的性质不可能有那么大的不同”这句话对股票来说通常是错误的,因为随着时间的推移,市场变化如此动态,很难从过去就单个股票的水平推断出关于未来的很多信息“过去的表现不是未来的指南”被贴在大多数金融产品说明书上是有原因的。我听你说,但没有进入有效市场假设的讨论,该模型确实在测试20%的历史数据时显示了巨大的希望。测试数据和新数据之间的差异不应导致en epic失败???这里还缺少其他东西……在不知道你在看什么股票的情况下很难说(如果你分享一些股票会有所帮助),但有很多股票价格分布,训练数据集将表现良好,未来的预测非常糟糕:1920年前的马车公司,1930年前的湖冰出口商,打孔卡电脑制造商在20世纪60年代之前,等等。我排除了过度装修的可能性,因为我有200棵树,并将树缩短到20和40个样本,正如我在最初的帖子中所说的那样。我错过什么了吗?还有什么可能导致过度装配?Re#2我的特征主要是基于价格和交易量行为(即技术分析)的定量指标。如果他们在20年历史数据的培训和测试基础上表现良好,很难相信他们在过去12个月里会如此惨败?#1我会尝试使用
minu samples\u leaf
>50,至少这通常是我的模型的出发点:“较小的叶子使模型更容易捕获列车数据中的噪声。一般来说,我更喜欢最小叶片尺寸大于50。“与测试精度相比,您的训练精度如何?#2如果不了解问题,很难判断:(