机器学习已经广泛地应用在对于资产市场的分析中,在量化投资中尤为显著。但是,在浩如烟海的机器学习算法中,到底哪种算法能取得更优的预测效果呢?发表在《Applied Mathematical Finance》的这篇文章利用随机森林算法对股价d天之后的涨跌方向进行了预测。发现相比于SVM、线性判别分析等模型,随机森林可以取得更优秀的预测结果:能够达到85%-95%的准确率。
摘要
为了最小化预测误差,文章将预测股价的走势看做一个二分类问题(涨or跌),使用集成机器学习建模解决。文章里利用RSI(相对强弱指数)、KD随机指标、MACD等6个常用的技术指标作为分类的特征,对随机森林模型进行训练。最后发现,模型中决策树个数增加,模型准确率增加并有收敛趋势;并且,预测的时间窗口越长,模型越准确。
随机森林简介
在正式进入文章前,先对随机森林算法给出简单的介绍。
随机森林算法是一种非线性模型,顾名思义,是将多个决策树集成为森林的一种模型。理解随机森林的关键有两点:随机抽样和多数投票。
首先,对于每一个决策树,从全样本集中有放回地随机抽取训练集。本文决策树分类的标准是特征矩阵X里面的技术指标,一直利用技术指标分类直到基尼不纯度很小达到要求。
这些决策树独立预测,然后对每个决策树预测的结果进行投票,票数最多的成为随机森林的预测结果。这样避免了单个决策树的过拟合。
由于随机抽样,每个决策树使用的都不是全样本(大约只有 2 3 \frac{2}{3} 32的样本被抽到),没有被抽到的样本是这个决策树的非样本集(袋外样本 Out of Bag Sample)。对于所有决策树产生的袋外样本,对每个样本,计算它作为oob样本的树对它的分类情况(约 1 3 \frac{1}{3} 31的树),然后以简单多数投票作为该样本的分类结果,最后用误分个数占样本总数的比率作为随机森林的OOB误分率。所以,OOB偏差越小,说明误分类的比例越低,随机森林分类越准。
研究思路
数据收集 - 指数平滑处理 - 特征提取 - 随机森林集成学习 - 股票市场预测
研究内容
1. 数据收集与预处理
作者收集了Apple,三星和GE的共7000个左右交易日股价走势数据,分别预测了30天、60天、90天后的股票走势。
为了去除历史数据中的噪音,展现历史数据的实际规律,作者采用了指数平滑法对股价数据进行预处理:
S