机器学习等在量化投资领域可以发挥的空间很大。金融数据是非常庞大的,无论是历史还是每天的增量数据,所以机器学习等在处理大数据流上有非常显著的优势,能挖掘因子的非线性关系,寻求更多的投资机会。在量化策略上可以作如下应用:
单一机器学习算法:
集成机器学习算法:
这里简要讲解一下随机森林策略在BigQuant上应该如何构建,先看下策略应用结果:
什么是随机森林:
随机森林是一种集成算法(Ensemble Learning),它属于Bagging类型,通过组合多个弱学习器(决策树),对弱学习器的结果投票或取均值得到整体模型的最终结果,使得整体模型的结果具有较高的精确度和泛化性能。其之可以取得不错成绩,主要归功于“随机”和“森林”,一个使它具有抗过拟合能力,一个使它更加精准。
决策树
随机森林是多个决策树的集成。所以理解随机森林,首先要从理解决策树开始。
随机:Bagging
Bagging 是一种并行的集成学习的方法。基于“自助采样法”(bootstrap sampling),主要关注降低方差,因此它在容易受到样本扰动的学习器(如不剪枝的决策树)中效果明显。
森林:更精确
每个树的预测结果可能都不尽如人意,但是如果有多个树,让这些树投票选出最有可能的分类结果或者对于所有树的结果取均值得到回归结果,那么森林的预测就会更准确。
随机森林的关键参数
- n_estimators (int) – 树的个数,个数越多,则模型越复杂,计算速度越慢。
- max_features (str) – 最多考虑特征个数,新建节点时,最多考虑的特征个数。
- max_depth (int) – 每棵树的最大深度,数值大拟合能力强,数值小泛化能力强。
- min_samples_leaf (int) – 每个叶子节点最少样本数,数值大泛化能力强,数值小拟合能力强。
- n_jobs (int) – 并行度,同时使用多少个进程进行计算,最多是4。
模型评价
(1)特征重要性
随机森林模型可以在预测的同时通过特征划分过程来计算评估各个因子特征的重要性。特征影响力的计算需要借助于结点分裂时Gini 指数,方法如下:
其中, ( )表示结点i 根据特征A 分裂为两个子结点后,Gini 指数相对于母结点分裂前的下降值。故而可定义特征A 的绝对重要性 ( )为所有按特征A 分裂的结点处的 ( )之和。将所有特征的绝对重要性归一化,即可得到各个特征的重要性评分。
(2)模型评价
a. 回归模型
- 可解释方差 EVS:可以被解释的方差,越接近1越好
- 平均绝对误差 MAE:预测值和真实值的差值。数值越小越好
- 均方误差 MSE:预测值和实际值的平方误差。数值越小越好
- 均方对数误差 lnMSE:取对数后预测值和实际值的平方误差。当目标具有指数增长的目标时,最适合使用这一指标
- 中位数绝对误差 median absolute error:取目标和预测之间的所有绝对差值的中值来计算损失
- 确定系数(r^2) r2:预测模型和真实数据的拟合程度,最佳值为1,同时可为负值
b. 分类模型
- 准确率 accuracy:预测正确的的数据占所有数据的比例
- 精确率 precision:预测正确的正例数据占预测为正例数据的比例
- 召回率 recall:预测为正例的数据占实际为正例数据的比例
- F1分 f1 score:综合指标。F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率)
2、随机森林智能选股策略构建
策略步骤
如图5所示,随机森林的策略构建包含下列步骤:
- 获取数据:A股所有股票。
- 特征和标签提取:计算18个因子作为样本特征;计算未来5日的个股收益作为样本的标签。
- 特征预处理:进行缺失值处理。
- 模型训练与预测:使用随机森林模型进行训练和预测。
- 策略回测:利用2010到2017年数据进行训练,预测2017到2019年的股票表现。每日买入预测排名最靠前的5只股票,至少持有五日,同时淘汰排名靠后的股票。具体而言,预测排名越靠前,分配到的资金越多且最大资金占用比例不超过20%;初始5日平均分配资金,之后,尽量使用剩余资金(这里设置最多用等量的倍)。
- 模型评价:查看特征重要性和模型回归结果。
回测结果&特征重要性
回测结果如下:
从回测结果可以看出,由于市场本身问题,随机森林策略在2017-2018年的表现并不很好,但是当市场风格趋于一致时,随机森林策略表现出了不错的选股效果。
随机森林模型可以按照重要性输出特征,有助于我们分析哪些因素对于预测的帮助更大,从而优化模型。使用特征重要性如下:
随机森林模型评价
下面进行模型评价。训练集和预测集上的情况分别如下:
其他应用,欢迎来BigQuant——人工智能量化平台研究和探索!