基于StockRanker算法的机器学习量化策略


(小Q) #1

机器学习算法简介

最近几年人工智能(AI)技术得到飞速发展,其在各个领域的运用也不断取得重大成果。机器学习被评为人工智能中最能体现人类智慧的技术,机器学习在量化金融中的运用我们通过下例介绍,以便大家有个直观印象。

假设我们要去预测某个连续变量$ Y$未来的取值,并找到了影响变量$ Y$取值的$K$ 个变量,这些变量也称为特征变量(Feature Variable)。机器学习 即是要找到一个拟合函数$f(X_1,X_2,\ldots,X_K|\Theta)$去描述 $Y$和特征变量之间的关系,$\Theta$为这个函数的参数。

要找到这样的函数,必须要足够量的观测数据,假设有 N 个样本数据$ { y_1,y_2,\ldots,y_n }$和 $x_{1i},x_{2i},\ldots,x_{Ki}$(其中$i=1,2,\ldots,n$)。然后定义一个函数$L$来衡量真实观测数据和模型估计数据偏差,函数 L 也称作损失函数(Loss Function)。基于历史观测数据,我们可以求解下列的最化问题来得到参数$\Theta$ 的估计值

$$\hat{\Theta} = arg \ \min \sum_{i=1}^N L(y_i,f(x_{1i},x_{2i},\ldots,x_{Ki})) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1.1) $$

求解(1.1)过程称作模型训练(Model Traing)。基于特征变量的最新观测值和训练出来的模型参数就可以预测y的数值。

StockRanker算法

机器学习算法太多,本文讨论只针对适用于金融数据预测的常用有监督型机器学习(Supervised Machine Learning)算法:StockRanker。

StockRanker算法是专为选股量化而设计,核心算法主要是排序学习和梯度提升树

$$ StockRanker = 选股 + 排序学习 + 梯度提升树 $$

StockRanker的图示

图片1

StockRanker的特点

  • 选股:股票市场和图像识别、机器翻译等机器学习场景有很大不同。StockRanker充分考虑股票市场的特殊性,可以同时对全市场3000只股票的数据进行学习,并预测出股票排序

  • 排序学习 (Learning to Rank):排序学习是一种广泛使用的监督学习方法 (Supervised Learning),比如推荐系统的候选产品、用户排序,搜索引擎的文档排序,机器翻译中的候选结果排序等等。StockRanker 开创性的将排序学习和选股结合,并取得显著的效果。

  • 梯度提升树 (GBDT):有多种算法可以用来完成排序学习任务,比如SVM、逻辑回归、概率模型等等。StockRanker使用了GBDT,GBDT是一种集成学习算法,在行业里使用广泛。

  • StockRanker的领先效果还得益于优秀的工程实现,我们在学习速度、学习能力和泛化性等方面,都做了大量的优化,并且提供了参数配置,让用户可以进一步根据需要调优。

如何使用StockRanker算法开发量化策略

在BigQuant人工智能量化平台上,直接拖曳不会编程就能开发AI量化策略。[视频链接]

机器学习算法可能遇到的问题:

  • 过拟合

  • 数据集重叠

  • 数据集划分不当

  • 训练集数据太少

  • 数据预处理不够

  • 标注和特征逻辑不一致

  • 因子并非越多越好