分享我对Ai量化的认识(四)
Ai模型的评估
之前文章标题取得太随意了,从这一篇开始改一下。
上一篇说到Ai模型与传统量化模型的区别,那么Ai模型一定比传统量化模型好吗?不见得。
判断模型好坏,还是要设立一个评估方法。有了评估方法,才能进行比较。
评估方法可以简单到只有一个指标,也可以设计得更加复杂。假如只有一个指标,那么最常用的就是准确率(Accuracy)。在传统量化模型中,模型输出的是预期会上涨的股票,那么准确率指的就是在一段时间内,对股票涨跌判断正确的比例。
用准确率的时候要注意几点:
分母要一致,这样才有比较的基础。
股票池不能太小,股票池太小,就没有统计价值
时间不能太短,同样时间太短的话,就没有统计价值。
基于这几点,可以这么设计,100个股票的股票池,2年的交易日,评估其准确率。如果做指数的模型,那么股票池就一个指数,那就只能把时间拉长了。
对于Ai模型,其实是一样的,100个股票的股票池,每天预测,最后做统计,用判断对的股票数量除以2年的总数即可。
做Ai模型的时候,有训练集,测试集,还有用于回测的数据集。在传统的量化模型中,没有训练集,有人把测试集和回测数据集合并,做出模型后直接进行回测,然后根据回测结果去调整各种参数,然后再回测,这种方式是错误的。
正确的做法是,同样要设定测试数据集和回测数据集,用测试集来评估模型的准确率,达标之后再去回测。这些数据集也是有一些讲究的,这些讲究我将在后面讲数据集的时候再详细讲。
上一篇的例子中提到,传统的量化选出20个要上涨的股票后,可能会进一步地筛选,找出更好的股票。那么有必要对这一部分股票进行评估。这一部分的股票数量不定,评估起来比较麻烦,可以通过选出的数量和准确率同时进行评估。比较理想的状态当然是数量又多,准确率又高,但是现实往往相反。
数量也不能太少,太少则有可能是拟合了某些特定的行情,从而在未来的实战中效果大打折扣。所以在数量和准确率上面要取得一个平衡。
Ai模型往往是通过概率进行排序,有的人会选取某个概率之上的股票来评估,但是这又犯了第一个错误,就是分母不一致。为了分母一样多,需要用到分位数。
AUC也是一个很好的评估指标,AUC的意义是正样本被预测为正的概率(预测对了)大于负样本被预测为正例(预测错了)的概率。在量化中,这个值越大,就是本来要涨的股票确实被模型预测出为涨的概率越高。我还尝试过很多其他的评估方式,最后还是返璞归真,觉得最简单,最质朴的指标比如Acc,Auc才是最有用的。
评估出来的值不是很高也不要气馁,我也见过不少评估值不高的模型,但还能赚钱。关键在于怎么使用模型的输出,这点其实比模型更重要。