量化投资的哲学基础5:根据Abduction理论挑选机器学习模型


(bxyzz) #1

系列前几篇文章如下:

Vincent Leiberich:量化投资的哲学基础0:不懂哲学的程序员不是好投资经理​zhuanlan.zhihu.com图标Vincent Leiberich:量化投资的哲学基础1:量化投资不是“量化”投资​zhuanlan.zhihu.com图标Vincent Leiberich:量化投资的哲学基础2:笛卡尔说,股票多因子模型是个好框架​zhuanlan.zhihu.com图标Vincent Leiberich:量化投资的哲学基础3:休谟说,量化投资模型都是过度优化​zhuanlan.zhihu.com图标Vincent Leiberich:量化投资的哲学基础4:科学哲学家告诉你怎样避免过度优化​zhuanlan.zhihu.com图标

1. 写在前面的话

如何挑选机器学习模型?这个问题就是个大坑。

本文将从Abduction理论出发,比较几个机器学习模型。Abduction理论的详细介绍可以参见本系列文章的上一篇。

Vincent Leiberich:量化投资的哲学基础4:科学哲学家告诉你怎样避免过度优化​zhuanlan.zhihu.com图标

我们经常遇到这样的情形,几个模型都能够很好地拟合数据。哪怕用上交叉检验,几个模型都难分雌雄。但是,我们仍然需要挑选出我们认为在样本外表现更优的模型。用量化投资的语言来说,一个有经验的量化投资经理能遇到很多历史测试结果很好的策略。但是这些策略在实盘以后的绩效将千差万别。我们能否预判出哪些模型将在实盘以后表现更好?

根据Abduction理论,一个好模型往往符合以下几个优点:

  1. 能够解释机制。
  2. 在精度上有力。
  3. 在广度上有力。
  4. 简单。

我们只需要理解了模型的原理,就知道模型是否符合以上几个优点。因此,我们能够抛开具体数据,跳出对模型的拟合程度的考察,通过分析机器学习模型本身来挑选出相对优秀的机器学习模型。

需要申明一下,本文的直接目的是通过比较机器学习模型,让大家对Abduction理论有更深入的认识。本文不打算从大而全的角度去挑选机器学习模型。例如大量文献都会对模型的运算效率做分析。而量化投资策略可能只会在日内策略这个频率上才会遇到运算瓶颈。本文就不去比较了。

2. 算法介绍

本文会比较以下三个最最简单的算法:KNN,ID3,OLS。

选用以上三个算法,主要是因为简单的算法更方便读者看清楚本质。(也因为以笔者聪明和努力程度,基本也只能理解这几个简单的算法。捂脸)

KNN, K Nearest Neighbors, K近邻法是最简单的机器学习算法。

k-nearest neighbors algorithm​en.wikipedia.org图标

决策树是和KNN并列的最简单的机器学习算法。ID3又是决策树中最简单的一种。

ID3 algorithm - Wikipedia​en.wikipedia.org图标

OLS,最小二乘法,是被研究地最透彻的统计方法。OLS是最传统的统计方法,通常被视作机器学习算法的对立面。

Ordinary least squares​en.wikipedia.org图标

3. 算法比较

我们将从四个角度来分析这三个算法。我们从最容易理解的角度来分析起。

3.1 机制

一个好模型可以给出大量中间结果,方便我们分析标签和特征(自变量和因变量)之间的关系。如果模型仅仅给出一个最终分类或者回归结果,则无法帮助我们去分析数据背后的机制。

这个角度非常好理解,我们来看看这三个模型:

KNN只能给出最后的分类或者回归结果,不能给出任何中间结果,不能帮助分析师分析机制,所以差评。

ID3能够给出一套清晰的分类规则:我们首先选取哪个特征,然后如何用这个特征做分类。其次应该选取哪个特征,然后如何用这个特征做分类。这套规则就能够帮助我们分析标签和特征之间的关系。

OLS,同样可以给出大量中间结果,例如回归系数的正负号能帮助我们判断特征和标签的正反相关关系;我们能用回归系数啊T值啊来分析特征的重要性。

3.2 精度

因此,一个在精度上有力的模型更不容易做过度优化。举个例子,一个精度上有力的模型,不仅仅能够预测一只股票是上涨还是下跌,而且能够预测一只股票是大涨还是小跌,甚至能够预测股票能涨多少点。

在图像识别上,标签通常是不连续的。一张图是猫,另一张图是狗。然而金融数据大多是连续的。特征是连续的,比如过去一个月的涨跌幅度,比如股票的市值;标签也是连续的,比如期货的涨跌概率或者预期收益率。也因此精度问题对于量化投资更有意义。

![](data:image/svg+xml;utf8,)

如上图所示,一个精度上有力的模型应该能够区分远离红线的蓝点和靠近红线的蓝点,应该能够将远离红线的蓝点标识为深蓝的,应该能够将靠近红线的蓝点是偏红色的(好像是紫色)。

这个角度也不难理解。

ID3也能够通过统计同一类别的样本得到回归结果。但是,ID3对单独每一个特征做简单粗暴的二分法,这个方法在精度上是有问题的。比如,两层的ID3模型会通过水平和垂直的两条线将上图中的球分为四个部分。因此左上角和右下角的分类结果会比较模糊。而最靠近红线的蓝点反而可能被认为是深蓝的。

KNN能够在精度上做区分。因为越靠近红线的蓝点的附近,将越可能出现粉色的点。越远离红线的蓝点的附近,将更不容易出现粉色的点。通过对近邻的统计,我们就能判断出一个点离红线的距离。

OLS能够也能够在精度上做区分。可以猜想,回归方程将在图上表示为一条从左下到右上的直线。越靠近直线的两端,则越远离红线,则区分度有高;越靠近直线的中间,也就越靠近红线,则区分度越低。

(有小伙伴说,本文选取的例子只有两个维度。而在更高的维度上,结果就不明显了。但是笔者作为三维生物,无法理解更高维度上的例子,因此就不修改本段文字了。捂脸。仅仅提醒读者注意。)

3.3 广度

一个在广度上有力的模型能够在不同的数据上体现出相似的解释能力。

本来这个标准是可以通过数据来验证的,也没有太多可以讨论的。但是,我们尝试用模型的鲁棒性来推测一个模型的广度。鲁棒性越好的模型应该在广度上更有力。

然而鲁棒性的定义也很复杂,我们将参考breakdown point的定义。

KNN的鲁棒性是最好的。KNN只对K个近邻样本做分析。当K个样本不包括离群值时,KNN的结果不受离群值影响。

ID3是在全局上寻求最优,但是仅对标签的概率做统计。因此即便离群值的标签的偏离程度,不影响学习的效果。

OLS对于离群值最敏感。因为OLS首先是在全局上做优化。并且OLS会考虑离群值的标签,因此一个离群值偏离非常大的时候,OLS的结果也将大大偏离。

3.4 简单

什么是简单,就是一个非常烧脑的问题了。大家可以参考下面的文章。

Simplicity (Stanford Encyclopedia of Philosophy)​plato.stanford.edu

OLS几乎是最简单的统计方法。OLS假设特征和标签符合线性关系。而线性关系是数据之间最简单的关系,只需要2个参数就能够描述。OLS无需参数就能优化。OLS几乎是最简单的统计方法。

KNN没有假设数据之间的线性关系,但是假设特征是在同一阶数上的。KNN需要定义参数K。同时,关于数据之间距离的定义也将剧烈影响KNN的结果。因此我们认为KNN有两个hypo-parameter。

ID3没有假设数据之间的线性关系,并且假设特征不同阶。ID3需要一个算法来评价分叉的效果。此外,ID3通常需要一个参数来规定剪枝的结束,要么关于树的长度,要么关于分类成功的标志。所以我们认为ID3至少有两个hypo-parameter。

4. 相对完美的算法——GBDT

我们发现,以上三个算法各有优劣。OLS的缺点是鲁棒性不够,优点是简单。KNN的缺点是不能揭示机制。ID3的缺点是不能够在精度上做解释,并且模型稍显复杂。

因此,读到这里,希望获得最优模型的读者可能会觉得失望。

为了表达作者的诚意,我推荐一个相对完美的算法——GBDT(Gradient Boosting Decision Tree)。

一个极简的GBDT的算法的思路如下:首先选出对标签最有解释力的特征,做回归,然后求得残差。然而选出对残差最有解释力的特征,做回归,然后求得残差。然后继续迭代。具体算法,读者可以自行百度。

为什么说GBDT是相对完美的算法?

首先,GBDT基于回归和决策树,因此能够揭示机制。

其次,GBDT基于回归,因此在精度上有力。

再次,GBDT假设数据之间的关系是线性的,但是特征在级数上有差别。因此这样的假设也比ID3更简单。

最后,一个极简的基于OLS的GBDT的鲁棒性不佳。但是,稍微再GBDT上做一些修改,模型的鲁棒性就能够有巨大的提升。比如借鉴C4.5决策树,做一些剪枝;比如借鉴random forest和xgboost的思想引入随机的样本和特征。

5. 结语

用Abduction理论去筛选模型有两个意义:

首先,有小伙伴说,模型的选择靠信仰。信仰是非理性的。Abduction理论提供了理性挑选模型的角度。

其次,在做数据拟合或者回测之前,分析员就能够根据Abduction理论对模型进行筛选。这样能够大大提高研究的效率。数据分析员的很大一部分时间都在编写和测试各种机器学习模型,然后进行比较。但是,研究者在理解了模型之后,就能够根据Abduction理论对模型进行初步取舍,直接抛弃一些不大可能成功的模型。这将让分析员省去大量的编写和测试的时间,将能够让分析员投入更多的精力在更有可能取得成功的模型上。

一家之言,欢迎讨论。

** 配图是The Slave Market in Rome(Gerome Jean-Leon),描绘的是古代西方的奴隶主挑选女奴。本文是谈挑选机器学习算法。无论挑选什么,都需要剥开表面现象,赤裸裸地分析本质。(主要目的是希望用香艳的配图吸引眼球。捂脸。)