我正在尝试使用遗传编程来实现时间序列预测。我正在创建具有s表达式的随机树(Ramped Half-n-Half),并使用RMSE评估每个表达式以计算适应度。我的问题是训练过程。如果我想预测黄金价格,培训数据如下所示:
date open high low close
28/01/2008 90.959999 91.889999 90.75 91.75
29/01/2008 91.360001 91.720001 90.809998 91.150002
30/01/2008 90.709999 92.580002 90.449997 92.059998
31/01/2008 90.919998 91.660004 90.739998 91.400002
01/02/2008 91.75 91.870003 89.220001 89.349998
04/02/2008 88.510002 89.519997 88.050003 89.099998
05/02/2008 87.900002 88.690002 87.300003 87.68
06/02/2008 89 89.650002 88.75 88.949997
07/02/2008 88.949997 89.940002 88.809998 89.849998
08/02/2008 90 91 89.989998 91
据我了解,这些数据是非线性的,所以我的问题是:
1-我是否需要对此数据进行任何更改,例如指数平滑?为什么?
2-在循环当前总体并评估训练数据上每个表达式的适用性时,我应该仅根据此数据的一部分还是全部计算出RMSE?
3-算法完成后,我得到了具有最佳(最低)适应性的表达式,这是否意味着当我应用训练数据中的任何一行时,输出应该是第二天的价格吗?
我已经阅读了一些有关此的研究论文,并且注意到其中一些提到在计算适应度时提及对训练数据进行划分,并且其中一些正在进行指数平滑。但是,我发现它们有点难以阅读和理解,而且我发现的大多数实现都是用Python或我不熟悉的R实现的。
我对此表示感谢。 谢谢。