PLUS会员

探索:AI量化策略训练时间如何选择?

由bigquant创建,最终由qxiao 被浏览 540 用户

旧版声明

本文为旧版实现,仅供学习参考。

https://bigquant.com/wiki/doc/demos-ecdRvuM1TU


预计算因子表[数据平台]

https://bigquant.com/data/datasources/cn_stock_prefactors

https://bigquant.com/wiki/doc/dai-PLSbc1SbZX

https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS


作者:woshisilvio

AI量化策略的训练时间影响模型的结果,导致在调试的过程中拿不准该如何思考和选择训练时间,我们从以下三个方面探讨训练时间该如何选择?

训练时间对模型的影响

针对特定的一段回测时间作为验证集, 检验训练时间的变化是否让模型带来很大变化?

策略设置

策略选择:新建的可视化AI模板策略

方式:手工滚动训练

时间对比:训练集长时间 (5-10年) VS 训练集 短时间 (1个月-3个月-6个月-1,2年)

长时间训练检验

长时间训练: 2005年——2021年 ,每次增加1年的数据

{w:100}{w:100}{w:100}{w:100}{w:100}

从样本数据上观察到:

首先,标注的训练数据发生了改变, 在相同的预测周期,模型的预测收益和夏普比率随着训练时间改变后达到一个峰值随后开始下降。将样本年份进行更精细的切分之后,发现也是差不多的效果训练数据在05年-16年 这个时间段左右的时候,模型收益达到峰值,其中 ,05年-16年训练得到的收益是最高。

{w:100}{w:100}{w:100}{w:100}{w:100} {w:100}{w:100}{w:100}{w:100}{w:100}

其次,模型中因子的特征权重发生改变再然后是 ndcg的评价也发生了改变,但变化不明显。 普遍发现 无论怎么增加数据时间长短,NDCG的指标都没能超过0.6以上。说明大量的数据样本,其实并没有能让模型很好的学到其中的规律数据的噪音很大,训练效果一般,预测的信号跟样本的内的数据重合度不高。

{w:100}{w:100}{w:100}{w:100}{w:100}

最后,整个模型的预测结果也会产生偏差。

长时间结果评价

长时间训练搜索出来的回测结果回测时间更长,得出结论更稳定但模型也更容易过拟合,训练数据并不是年份越长越好

短时间训练

数据集:2021年到2020年

例如,第一次训练:2020年12月-21年01月 ……

但数据量更少,有可能 NDCG反而提高,收益也更高

{w:100}{w:100}{w:100}{w:100}{w:100} {w:100}{w:100}{w:100}{w:100}{w:100}

下图为2020年12月-2020年1月的训练数据回测,仅仅1个月的训练也能得到一个正收益,但是NDCG很低,而且收益曲线是前高后低,说明模型是欠拟合的。

{w:100}{w:100}{w:100}{w:100}{w:100}

短时间结果评价

短时间训练 搜索出来的回测结果 在未来回测更陡峭收益有可能更高也更容易欠拟合可信度稍低,超额收益持续时间短,未来失效的可能性也越大。

总结

  1. 大部分的模型训练时间并不是越长越好,也不是越短越好。
  2. 不同的模型都有一个自适应的训练区间。 模型内的数据达到饱和之后,再添加数据并不能给模型带来提升。 模型参数能给模型一个更精细的调整,但是也更容易过拟合。
  3. NDCG可以评价 模型训练的成果如何,如果给定训练的数据样本足够清晰 模型训练的比较好,NDCG的评价应该至少在0.8以上。
  4. 如果发现一个模型NDCG很高,未来预测的收益却很差,那说明很有可能发生了过拟合,模型很好的拟合并学会了样本中的规律,但不足以预测未来市场走向。
  5. 如果发现一个模型NDCG很低,只有0.5左右,未来预测的收益却反而高。 这里有一定的运气成分,更大的可能是发生了欠拟合。 模型在训练集中学到的规律,恰好拟合到了当下的市场,得到了正的alpha收益。 也有可能是因为后期加工修正的时候,比如剔除ST,剔除创业板,或者风控择时, 提升了模型的绩效,那这样其实跟模型本身的预测效果已经偏移了,属于修正的结果, 得到的alpha收益是股票池本身赋予的,也有可能是市场环境的影响。
  6. 最佳训练时间的长短跟 模型的训练数据,以及初始化的参数有关。
  7. 一个较好的模型表现应该是:在无过度拟合的情况下(风控,择时,测试集参数过滤)裸跑模型的训练集表现正收益,预测集表现正收益,NDCG参数0.7以上, 且收敛成一条直线。回测股票数量在5-10只股票收益也不错。 如图:

什么样的训练时间最好

年份:05年-16年,13-19年,10-20年都可以试试。

月份: 某年6月开始-结束 ; 某年1月开始-结束

策略思路和因子哪个重要

  1. 好的策略思路可以节省挖掘因子的时间。同时,聚焦某一个领域去钻研,也更容易找到适配的组合,挖掘出好的因子模型。比如追涨的逻辑,就要配合动量因子,做追龙头的逻辑,就要配合波动率因子和收益率因子。

  2. 因子和策略的表现跟市场是强相关的。 有的年份小市值股票厉害,风格暴露在小市值上的模型,超额收益更多,有的年份则相反,比如追涨的逻辑,就要配合动量因子,做追龙头的逻辑,就要配合波动率因子和收益率因子)。

    一类因子其实也只是一种套路或者说一种选股风格的集成, 如何去高效利用好这种因子, 才是我们应该去研究的问题。 平常做模型的因子如果想不到在哪来, 可以在因子看板里面去找找。 IR值正负无所谓,远离0 就行, 夏普比率尽量高且为正,累计多空收益为正。

    注意:看板上的因子为月频调仓,如果要做成日频的策略,要重新用因子看板在调仓测试一次,看看绩效结果如何。

讲解视频

https://www.bilibili.com/video/BV1br4y1B7na?spm%5Fid%5Ffrom=333.999.0.0

https://www.bilibili.com/video/BV15b4y1s7w7?spm%5Fid%5Ffrom=333.999.0.0

策略源码

标签

AI量化策略AI量化交易
评论
  • ![{w:100}](/wiki/api/attachments.redirect?id=bbbe2216-0b47-4452-b678-82f6745431ed) 这咋原封不动克隆了运行失败。。
  • 谢谢分享,之前也发现了在不同训练时间的结果会不一样,长见识了,看来还是要把08、15年的大跌包含进去效果会好一点,能抗住大跌的策略才是好策略
  • 画布没有运行吧,要全部运行
  • 出上面一样的m6找不到的错误,请问作者怎么回事,谢谢!
  • 已经是全部运行
{link}