成功的量化交易——量化模型(8)


支持向量机

为了激励支持向量机(SVM),我们需要考虑一个分类器的思想,通过一个线性分离边界来分离不同的类。如果存在这样一个简单的分离,那么我们就可以创建一个监督分类器,这个分类器只基于判断新特性位于这个线性分类平面之上还是之下。在现实中,这种分离很少存在于量化交易中,因此我们需要考虑软利润分类器或支持向量分类器(SVC)。


SVCs的工作原理是在特征空间中寻找一个线性分离边界,通过在两个类之间创建一个最优分离边界来正确地分类大部分(但不是全部)训练观测值。有时,如果类分离大部分是线性的,那么这样的边界是非常有效的。然而,在其他时候,这样的分离是不可能的,有必要使用其他技术。扩展SVC的动机是允许非线性决策边界。


这是支持向量机(SVM)的领域。支持向量机的主要优点是,它允许特征空间的非线性扩展,包括显著的非线性,同时仍然保持显著的计算效率,使用一个称为“核技巧”的过程。


支持向量机允许通过许多不同的“内核”选择非线性决策边界。特别地,我们可以使用二次多项式、高阶多项式甚至径向核函数来描述非线性边界,而不是像SVC那样使用完全线性的分离边界。


这给了我们很大程度的灵活性,代价是我们的估计中经常出现偏差。我们将使用下面的SVM尝试通过一个非线性边界来划分特征空间(即滞后的价格因素和成交量),这样我们就可以对接下来的一天是上涨还是下跌做出合理的预测。


决策树和随机森林

决策树是一种监督分类技术,它利用树结构在树的每个节点上通过“决策”将特征空间划分为递归子集。


例如,可以询问昨天的价格是高于还是低于某个阈值,该阈值会立即将功能空间划分为两个子集。然后,对于这两个子集中的每个子集,都可以询问成交量是高于还是低于阈值,从而创建四个独立的子集。


这个过程将继续下去,直到分区不能获得更多的预测能力为止。


与支持向量机或判别分析器的“黑箱”不透明方法相比,决策树提供了一种自然可解释的分类机制,因此是一种流行的监督分类技术。


随着计算能力的提高,出现了一种新的解决分类问题的方法——集成学习。基本思想很简单。从相同的基本模型中创建大量分类器,并用不同的参数训练它们。然后将预测结果平均起来,希望得到的预测精度大于任何单个成分所带来的预测精度。


最广泛使用的集成方法之一是随机森林,它采用多个决策树学习者(通常是数万或更多),并结合预测。这样的组合往往可以表现得非常好。Scikit-Learn在集成模块中附带了一个随机森林分类器(RFC)类。


RFC感兴趣的两个主要参数是n_estimators和n_jobs,前者描述要创建多少决策树,后者描述要将计算分散到多少处理核心。我们将在下面的实现部分讨论这些设置。


主成分分析

上述所有技术都属于监督分类领域。执行分类的另一种方法是不监督训练过程,而是允许算法自行确定“特征”。这种方法被称为无监督学习技术。


无监督技术的常用实例包括将问题的维数减少到只有那些被认为重要的维数,在大量文本文档中发现主题,或者发现可能在时间序列分析中提供预测能力的特性。


在本节中,我们感兴趣的是降维的概念,它旨在确定一组提供最可预测性的因素中最重要的组成部分。特别地,我们将使用一种称为主成分分析(PCA)的无监督技术,在我们的监督分类器中使用之前减少特征空间的大小。


PCA的基本思想是将一组可能相关的变量(例如具有时间序列自相关的变量)转换成一组称为主成分的线性不相关变量。这些主成分是根据它们所描述的方差量以正交的方式排列的。因此,如果我们有一个非常高维的特征空间(10 +特征),然后通过主成分分析我们可以降低特征空间大概2或3个主成分,提供几乎所有的数据变化,从而导致一个更健壮的监督分类器模型使用时减少数据集。


使用哪种预测器

在有大量训练数据的量化金融情况下,应该考虑使用支持向量机(SVM)等模型。然而,支持向量机缺乏可解释性。但对于决策树和随机森林集合就不是这样了。


后者通常用于保持可解释性,而支持向量机等“黑盒”分类器则不提供这种功能。


最终,当数据如此广泛时(例如tick数据),最终使用哪个分类器就无关紧要了。在这个阶段,还会出现其他因素,如计算效率和算法的可伸缩性。一般的经验法则是,将训练数据加倍可以提供线性的性能增长,但是当数据量变得很大时,这种改进会减少为性能的次线性增长。


监督分类器的基本统计和数学理论非常复杂,但是每个分类器的基本直觉很容易理解。另外,请注意,下面的每个分类器对于它们什么时候工作得最好都有不同的假设集,所以如果您发现一个分类器性能很差,这可能是因为使用的数据集违反了用于生成理论的假设之一。


朴素贝叶斯分类器

虽然我们在上面的例子中没有考虑朴素的贝叶斯分类器,但是为了完整起见,我想对它进行讨论。朴素贝叶斯(特别是多项式朴素贝叶斯- MNB)在有限的数据集存在时很适合使用。这是因为它是一个高偏置分类器。MNB分类器的主要假设是条件独立。本质上,这意味着它无法辨别单个特性之间的交互,除非它们是作为额外的特性特别添加的。


例如,考虑一个文档分类情况,当试图进行情感分析时,它出现在财务设置中。MNB可以了解到像“cat”和“dog”这样的单个单词可以分别指与猫和狗相关的文档,但是短语“cats and dogs”(英国俚语,意为大雨)不会被分类器认为是气象词汇!解决这个问题的办法是把“猫和狗”作为一个额外的特征,具体来说,然后把它与气象类别联系起来。


逻辑回归

与朴素贝叶斯模型相比,逻辑回归提供了一些优势,因为它较少关注特征之间的相关性,而且由于模型的性质,结果具有概率解释。这最适合需要使用阈值的环境。例如,我们可能希望对“up”或“down”结果设置80%的阈值(比如),以便正确地选择它,而不是选择概率最高的类别。在后一种情况下,“上升”的预测可能是51%,“下降”的预测可能是49%。在这种情况下,将类别设置为“up”并不是一个非常强的预测。


决策树和随机森林

决策树(DT)将空间划分为布尔选择的层次结构,这些布尔选择将根据相应的决策进行分类或分组。这使得它们具有高度的可解释性(假设树中有“合理”数量的决策/节点!)DT有很多优点,包括处理特性之间交互的能力以及非参数性。


当不能直接(或不可能)将数据线性地分离到类中(这是支持向量机需要的条件)时,它们也很有用。使用单个决策树的缺点是它们容易过度拟合(高方差)。这个问题是用随机森林来解决的。在机器学习竞赛中,随机森林实际上是一些“最好”的分类器,所以它们总是应该被考虑的。


支持向量机

支持向量机(SVM)虽然具有复杂的拟合过程,但实际上相对容易理解。线性支持向量机本质上是尝试使用线性分离边界将空间划分为多个不同的组。对于某些类型的数据,这可以非常好地工作,并导致良好的预测。然而,大量的数据并不是线性可分的,因此线性支持向量机在这里的性能很差。


解决方案是对SVM所使用的核函数进行修改,使其具有允许非线性决策边界的效果。因此,它们是非常灵活的模型。然而,为了得到最好的结果,需要选择正确的SVM边界。SVM尤其适用于高维文本分类问题。由于计算量大、调优难度大、拟合模型难以解释等因素,使其处于不利地位。