机器学习技术能够有效用于选股吗?(上)


未经授权,严禁转载


前言

译者翻译了一篇讨论机器学习在量化投资中应用的文章。机器学习在量化金融中是一个日渐重要且充满争议的话题。关于机器学习是否能成为一个实用的投资工具的争论一直存在。尽管机器学习算法可以发现微妙且非线性的关系,从充满噪音的历史数据中提取信息可能会遭受过拟合的问题。在这篇文章中,作者描述了一些关于机器学习的基本概念并且提供了一个简单的例子,来描述投资者如何用机器学习技术来预测横截面股票收益,同时限制过拟合的风险。

许多量化因子模型在2008年的金融危机后就陷入挣扎,许多传统因子不再盈利。结果,一些市场参与者开始关注传统量化选股方法之外的方法。随着流行的因子不再可靠,许多从业者开始开发可以从过去数据中动态学习的模型。然而,动态模型和因子择时方法同样遭受一些批评(如Asness(2016))。很多年来,投资者一直利用计量经济学方法(如回归),然而很少人能够单纯依靠以回归为基础的动态模型成功。这也许是因为金融数据天生就是充满噪音的,因子可以是共线性的,因子和收益的关系也是可变的、非线性的或是与语境相关的。这些特点使得线性回归模型很难去预测潜在因子和预期收益之间的动态关系。

我们相信机器学习算法可以提供更好的方法。这些技术已经出现很多年了。事实上,Frank Rosenblatt在1957年就发明了Perceptron,一种能够分类照片的神经网络。在之后的几十年中,一系列的发展使得机器学习在实际中的应用变为可能:

从1970年代以来,计算机能力大致根据摩尔定律提升

数据的来源指数式增长,存储成本大幅度降低。

计算机科学中和统计学中的新技术,加上提升的计算能力和数据来源,带来了强力的新算法。

机器学习算法已经证明了自己在很多金融之外的领域比传统统计方法更有效,像语音识别、图像识别和推荐算法。深度学习算法现在在图像分类的任务上已经超过了人类的精确度。一个叫做Deep Blue的机器学习算法在1997年第一次击败了最好的人类棋手卡斯帕罗夫。它用暴力计算来评估上千种可能的走法和对手的应对。最近,一个叫做AlphaZero的深度学习神经网络利用模式识别技术成为了世界国际象棋冠军。不像预先编程来评估不同走法价值的Deep Blue,AlphaZero没有收到任何领域的知识,而是通过自己与自己下仅仅4小时的棋来自我教学成为象棋大师。


机器学习是什么

机器学习是一类方法和算法的总称,它允许机器在没有明确的编程指令的情况下发现模式。在选股的情况中,建模者提供一系列可能会预测未来收益的因子并且用机器学习算法来学习哪些因子有用并且与未来收益相关。机器学习可以结合许多弱的信息源,生成一个结合的投资信号,这个投资信号可以比任何一个来源都要强。

最近几年,计算机科学家和统计学家发展并改进了几种机器学习算法,如梯度提升回归树、人工神经网络、随机森立和支持向量机(见表1)。这些算法大部分有两个重要的性质:

1、它们可以发现复杂的模式和隐藏的关系,包括通常很难或不可能用线性分析检测出的非线性和上下文关系。

2、在存在多重共线性的情况下,它们通常比线性回归更有效。

尽管关于机器学习在金融中的研究相当活跃,许多文章关注特定算法的应用。Wang S.和Luo(2012)提供了一个利用AdaBoost算法预测股票收益的一个具体描述。Batres-Estrada(2015)、Takeuchi和Lee(2013)探索了如何利用深度学习预测金融时间序列。Anon(2016)利用树模型来预测投资组合收益。Wang和Luo(2014)提出结合不同训练窗口的预测是有效的。Heaton,Polson和Witte(2016)讨论了深度学习在smart indexing中的应用。Alberg和Lipton(2017)提出应该预测公司基本面数据,而不是收益,因为预测基本面的信噪比更高,可以使用更复杂的机器学习模型。

一些文章研究了非线性模型对因子收益择时的好处。Miller等(2013)和Miller等(2015)发现分类树在预测因子收益时比线性回归更有效。他们同样证明结合线性和非线性模型可以更加有效。更进一步,他们证明将这些因子预测纳入横截面模型可以胜过静态因子模型。我们在本文中有类似的结论,但我们使用了不同的方法。我们不明确预测单变量多空因子投资组合的回报,而是使用横截面因子得分(特征)来预测回报的横截面。

Gu,Kelly和u(2018)检测了机器学习技术在资产定价领域中的功效。作者利用大量的企业数据和宏观变量来预测个股收益。因为他们使用总回报,而不是市场超额收益作为自变量,他们联合预测了预期收益和股权溢价的横截面。他们研究了不同的机器学习方法的表现,并发现与OLS回归相比,非线性估计器可以显着提高精度。他们将改进归因于机器学习模型揭示非线性模式的能力以及它们对多线性预测指标的鲁棒性。尽管我们的结论相似,我们只关注与股票风险溢价无关的横截面收益。因此,我们仅使用个股特征并排除宏观变量。我们相信这种方法可以降低噪音和过度拟合的风险。与Gu,Kelly和u(2018)一样,我们发现许多机器学习算法表现比线性回归更好,但我们不关注单个算法的表现,我们强调了结合不同算法和训练窗口生成预测的好处。我们发现预测组合在美国和其他地区都优于组合中的单个预测。

本文的主要贡献有:(1)讨论特征工程和从业者在使用机器学习模型进行选股时面临的一些问题;(2)展示使用这些技术时预测组合的好处。我们特别强调了将不同算法和训练窗口的预测结合起来的多样化优势。


过拟合的风险

当模型选取了噪音而不是信号时,过拟合就会发生。过拟合的模型在样本内表现很好,但是在样本外的预测能力很差。尽管机器学习技术可以发现历史数据中的细微特征,但过拟合仍是其面临的一个主要问题。训练一个算法时,找出样本内和样本外都存在的特征是很重要的。因子和收益的关系通常充满噪音,并且存在着很多潜在的因子,提升了问题的复杂性。相比之下,许多其他机器学习的应用,例如图像识别,具有更高的信噪比。例如,一些图像分类任务具有低于1%的错误率(例如,对狗与猫进行分类)。

由于预测股票收益的低信噪比,避免过拟合变得尤为重要。图1展示了梯度增强回归树分类器的样本内和样本外的错误率,分类器在模拟出的噪音数据上训练。X轴展示了增强迭代次数(更多的迭代次数允许算法更好地拟合过去数据),Y轴展示错误率。深色线为样本内,浅色线展示了样本外的表现。样本内的误差总是低于样本外收益。当我们提高迭代次数时,样本内的误差下降并且在迭代次数大于400之后变得微乎其微。与之截然相反,样本外的错误率一开始下降,但在大约50次迭代之后开始上升,这意味着算法开始对于历史数据过拟合。

这个模拟出的例子相对于预测股票收益有着更低的信噪比,在这种情况下,样本外的结果会更快偏离样本内。

这个例子展示了在评估训练集上的预测表现时会遇到的风险:过拟合可以使训练集上的结果比它们在实际应用中的结果更好看。接下来我们讨论两种可以降低这种风险的方法:结合预测和特征工程。

(1)预测结合

许多成功的机器学习算法是依赖bagging(如随机森林)或boosting(AdaBoost)的集成学习算法。这些算法从弱分类器生成许多预测,并且将这些预测结合,生成一个更强的分类器。Dropout(见表1与Srivastava和Hinton(2014)),一个相关的用于避免神经网络中过拟合的工具,同样利用了模型平均的概念。我们相信我们通过结合不同类型的算法和训练集可以达到更好的多样性。如果许多不同的算法,在许多不同的训练集上训练,都发现了类似的模式并达到类似结论,我们更有理由相信这个预测是稳健的,而不是过拟合的结果。

结合不同预测的功效已经被统计学文献广泛记载。Clemen(1989)早在1989年就对预测组合的实证证据做出了总结:“结果几乎是一致的:结合多个预测会增加预测准确性......在许多情况下,只需平均预测,就可以显著改善性能。”(p137)Makridakis和Hibon(2000)在对预测3003个不同时间序列的竞争分析中表明,预测组合通常优于最佳成分预测。Timmermann(2006)提供了一个用于确定何时预测结合更可能有效的框架。即当不同的预测器使用不同的数据和/或技术时,预测偏差相对不相关。在这些情况中,预测组合可以提供更多的信息和更少的噪音。

当然,传统的多因子模型已经包括了多种预测,因为每个因子都意味着一个独特的预测。然而,此处推荐的方法将这个概念更进一步,包含了许多不同的预测方法和训练集,还有许多的因子。

我们可以通过几个方面实现更好的预测多样性:

结合不同类型算法的预测:许多机器学习算法,特别是集成算法(如随机森林),已经利用预测的结合来得到更好的结果。通过结合不同类型的算法,我们应该可以检测到特征和分类之间不同类型的关系。

结合不同训练窗口的预测:不同训练窗口的预测可以抓住不同的市场情况并且经常有着低相关性。窗口可以在时间,季节或条件的基础上定义。结合不同训练窗口的预测同样可以减少预测方差,潜在地提高风险调整收益。

结合不同视野的预测:不同的因子在不同的时间视野上表现不同。举个例子:基本面因子在长期上更重要,而短期银子在短期更具预测能力。

(2)特征工程

特征工程使用相关领域知识来构建问题,以便更适合机器学习解决方案。它需要相当多的专业知识,并且可能很困难且耗时,但它对于开发可靠的预测也是必不可少的。特征工程确定我们最终要求算法解决哪些问题,以及我们使用哪些算法来解决它们。这是克服过拟合的最有效方法之一,因为它允许我们在训练算法之前提高信噪比。

特征工程需要相关领域的知识。在选股的背景下,这可以涵盖诸如以下决策:我们试图预测什么;哪种算法可能是最有效的; 哪些训练窗口可能是最有用的; 我们应该如何规范因素和回报; 哪些因子可能提供有价值的信息。

下面我们将简要讨论其中的一些问题。目标是提供概述而不是全面的讨论。这些决策的可能变化与金融建模者的想象力和专业知识一样具有重要意义。然而最终,这些决策的质量将决定努力的成功。


我们在预测什么?

训练机器学习算法最好用离散变量,这样可以限制异常值的影响。不像利用线性回归预测回报,MLA通常会预测类别,即表现优异者与表现不佳者,这样噪音会少一些。用户可能还希望使用第三类(例如市场表现者)或甚至更多类别来反映不同的表现水平,但每个新类别都会增加过度拟合的风险,并且它可能为与股票收益一样充满噪音的数据提供很少额外的准确性。

第二个决定涉及如何定义这些类别。如果我们对收益的横截面感兴趣,我们将通过在训练集中的每个日期将股票排名为表现优异者和表现不佳者来定义类别。我们还可以在行业或行业中定义这些类别以降低噪音。通常建议将这也因子标准化为相似的形式。大部分投资者希望收益能超过风险,所以一个自然而然定义表现种类的方法是使用风险调整收益。这可能包括简单的的波动率调整收益,或者相对于风险模型的alpha,例如CAPM,Carhatt(1997)四因子模型,Fama和French(2017)的五因子模型,或者Mozorov,Wang和Borda(2012)描述的MSCI-Barra模型。利用风险调整收益可以提高信噪比,因此可以在时间和市场划分上提供更好的预测。

第三个决定涉及预测的视野范围。选择预测的范围意味着为这个视野范围优化。短的预测视野更适合低容量高换手的策略,而长的预测视野适合高容量低换手的策略。短的预测视野同样意味着更多的训练区间,这可以帮助我们从充满噪音的数据中发现微妙的模式。预测的视野范围同样反映了因子的频率。对于大部分选股的情况,一个合适的预测范围是从日度到季度。


我们应该使用哪些算法

维基百科列出了100多种机器学习方法,并且这个数量一直在增加。机器学习是一个飞速发展的领域,讨论这些许多不同算法的优缺点远远超出了本文的范围。然而,更一般地,我们希望我们的最终预测使用各种不同的技术来结合各种不同的算法。我们事先不可能知道收益和特征之间的确切关系。结合不同类算法的预测可以防止错误识别。这在处理金融数据时尤为重要:金融数据信噪比低,并且很难通过经验来识别有高度确定性的关系。

集成算法在金融和其他领域都有着光明的前途。通过等权预测(bagging)或者准确率加权预测(boosting)它们将弱的分类器结合成一个强的分类器。这个强的分类器会比任何一个组成它的弱分类器表现更好。Boosting和bagging都可以解决所有监督学习遇到的偏差与方差的权衡问题。当估计方法不能有效地捕获数据中的基本关系(欠拟合)时,会引起偏差。方差是由训练集中的微小变化引起的误差,这意味着估计量不会学习推广样本外的关系(过拟合)。

Bagging独立地在随机的训练集子样本上拟合每个分类器,如决策树(弱分类器)。每个弱分类器都是过拟合的,但当把这些弱分类器结合成强分类器时,过拟合带来的误差会减小。Boosting顺序拟合训练集上的估计量,并在连续的推进轮次中给予错误分类观察更多权重(参见Schapire(1990))。强分类器是弱分类器的准确度加权平均。通过给予更好的分类器更大权重,boosting可以降低偏差。然而,如果我们让boosting给了成功分类器过大权重,会有更大的方差。因为这个权衡,boosting算法会需要比bagging更仔细的参数调整,并且对于选股,保守学习率在样本外表现更好。许多boosting算法需要更长时间去训练,因为它们必须序列运行,而bagging算法可以并行运行。

Boosting和Bagging集成算法可以利用不同的基础算法作为弱分类器。不同的算法可以捕捉数据中的不同特征。有些算法是相对的简单和线性,而另外一些算法可能非常复杂,可能发现高度非线性关系。此外,虽然我们经常想要捕捉复杂性,但更复杂的算法通常需要更高的信噪比和/或更多的训练数据才能有效地学习。通过使用多种算法和方法,我们希望简单和复杂的关系都能捕捉到,同时最大限度地降低过度拟合的风险。

更一般地说,建模者应当关注哪些已经被证明适合噪音数据,并且优点和缺陷都很明确的算法。在实际应用中,使用软件提供的算法也是一个好主意,这些算法已经在不同的应用中测试过。然而,现成的算法不经过调参不太可能是合适的。因为股票数据的信噪比往往很低

选择时,通常需要以严重限制算法过度拟合的方式来参数化算法。与所有投资策略一样,不必优化样本中的模型。感兴趣的读者可以参考de Prado(2018)中的一个深入处理金融数据的交叉验证。


我们应该使用什么样的训练窗口?

一般来讲,我们想使用可能代表预期未来环境的数据来训练机器学习算法。举个例子,我们可能希望使用如下的训练集:最近的,有着相似宏观经济情况的(如估值水平、流动性情况或增长动态)或发生在一年中相同时段的(为了捕捉季节性)。相反地,如果我们对预期的未来环境不确定,我们会希望用最大、最长且最广的数据集来捕捉不同的环境。然而,这种方法将需要更长的运行时间并且可能无法捕获特定时段的模式。

另一个考虑因素是模式的横截面变化。例如,如果我们认为不同区域或行业将表现出因子和收益之间的不同关系,我们希望如此对这些不同地区或行业的数据进行单独训练。相反,当我们使训练集过于细化时,过度拟合的风险会增加。举个例子,为美国股票和日本股票分别设置训练集可能是有意义的,但对美国科技股与日本汽车股票分别设置训练集可能是没有必要的。


我们应该包括哪些因子?

相关领域知识对于选择因子和构建它们以提高信噪比至关重要。为了最大限度地减少运行时间并限制过度拟合,从业者应该只对算法提供可能与未来股票收益相关的数据。这些包括与未来经济相关的因子(基本面因子)以及与未来供需相关的因素(技术因子)。 因为机器学习算法通常非常擅长处理共线数据,所以如果不确定哪些是最相关的,从业者当然可以包括许多类似的因子,尽管相似因子可能会会增加运行时间。

相关领域知识同样可以帮助我们构建数据以获得最大的信噪比。举个例子,如果我们的目标是选股,而不是选择行业,我们应该相应地调整数据。对于许多因子来说,强行使其行业中性可以降低方差并且不会显著降低因子平均收益。


关于大数据

机器学习算法以其从大数据中提取信号的能力而闻名,例如从文本中检测情绪,或通过社交媒体预测未来销售。虽然这些肯定是机器学习算法的有前途的应用,但它们并不是本文的重点。相反,我们的目标是展示如何使MLA相比传统的定量技术更有效。


后续

在接下来的文章中,作者根据上述分析,提供了一个简单的例子,来描述投资者如何用机器学习技术来预测横截面股票收益,同时通过文章中提到的方法来限制过拟合的风险。

点击【阅读原文】,查看更多内容~

雪球转发:1回复:0喜欢:6