使用了 bagging 的随机森林 (Random Forest, RF) 是最强大的机器学习方法之一, 它略微弱于梯度 boosting。
随机森林包含了一系列决策树 (也被称为分类数或者 "CART" 回归树,用于解决同名的任务). 它们应用在统计学,数据挖掘和机器学习中。每个单独的树都是一个相对简单的模型,含有分支,节点和叶片,节点包含了所依赖的目标函数的属性,而目标函数的值就通过分支到达叶片。在新案例分类的过程中,有必要通过分支到叶片,根据逻辑原理 "IF-THEN( 如果-那么)" 来遍历所有属性值,根据这些条件,目标变量将会被赋予一个特定数值或者一个类型(目标变量将会归于一个特定叶片)。构建决策树的目的是创建一个模型,可以根据几个输入变量的值来预测目标变量的值。
随机森林就是由使用了 Bagging 算法构建的决策树构成的。Bagging 是一个人造词汇,是由单词组合 bootstrap aggregating(自举汇聚法) 形成的。这个词是由 Leo Breiman 在 1994 年引入的,
Bootstrap(自举或自助法)是统计生成样本的一种方法,其中所选对象的数目与初始对象的数目相同。但是这些对象是使用不同重复数量选择的,换句话说,随机选择的对象被返回并且可以被再次选择。在这种情况下,所选对象的数量将包含约63%的源样本,而其它对象(大约37% )永远不会落入训练样本中。这样生成的样本用于训练基本算法 (在本例中,即决策树). 这也是随机发生的: 指定长度的随机子集(样本)在随机特性(属性)子集中做训练。剩余的 37% 的样本用于测试所构建模型的泛化能力。
之后,所有训练过的决策树被组合到一起,使用所有用本的平均误差来做简单投票。Bootstrap聚合的使用减少了均方误差,降低了训练分类器的方差。误差在不同的样本间不会相差太大。这样,根据作者的意见,模型将会较少有过度拟合的问题。bagging 方法的效果依赖于基本算法 (决策树) 是在随机变化的样本中训练的,它们的结果可能相差很大,而误差会在投票中大幅抵消。
可以说随机森林是 bagging 的一个特例,在其中决策树是用作基本单元的。同时,与传统的决策树构建方法不同,没有使用修剪(pruning),这种方法是为了整合大量数据样本的时候能够尽可能的快。每个数是使用特定方法创建的,用于构建树节点的特性 (属性) 不是从全部的特性中选择的,而是从它们的随机子集中选择的。当构建回归模型时,特性的数量是 n/3,如果是分类,它就是 √n. 所有这些都是经验的建议,被称为去相关:不同的特征集落入不同的树,并且树被训练在不同的样本上。
图 1. 随机森林运行框架
随机森林算法已被证明非常高效,可以用于解决实际问题,它提供了高质量的训练,在模型的构建过程中引入了大量的随机性。它的超过其他的机器学习模型的优势是一个非线性的时间估计的一方来说,这是不包括在培训样品。因此,对一个单一的样本进行交叉验证或测试对于决策树来说是不必要的。这就足以限制我们对模型的进一步“调整”:选择决策树的数量和正则化组件。
在标准 MetaTrader 5 开发包里面的 ALGLIB 库就包含了随机决策森林 (Random Decision Forest,RDF) 算法,它是由 Leo Breiman 和 Adele Cutler 所提出的原始随机森林算法的修改版本。该算法结合了两个思想:使用决策树的组合,通过投票获得结果和随机化学习过程的思想。对算法修改的更多详细信息可以在 ALGLIB 网站上找到。
算法的优点
- 学习速度很快
- 非迭代学习 — 算法是完全在确定数量的操作中完成的。
- 可伸缩性(处理大量数据的能力)。
- 取得模型的质量很高 (与神经网络和神经网络结合 相比)。
- 随机抽样对数据尖峰不敏感。
- 配置参数数量不多。
- 由于随机子空间的选择,对特征值的缩放(和一般的单调变换)不敏感。
- 不需要仔细配置参数就可以工作得很好。参数的“调谐”允许根据任务和数据将精度从0.5%提高到3%。
- 即使丢失了大量数据,也能保持良好的精度。
- 模型泛化能力的内部评价。
- 能够在没有预处理的情况下与原始数据一起工作。
算法的缺点
- 构建的模型占用了大量的内存,如果根据 K构造一个基于大小为 N的训练集,则内存需求为 O(K*N)。例如,对于 K=100 并且 N=1000, ALGLIB 所创建的模型要占用大约 1 MB 的内存。但是,当代计算机的内存数量已经足够大了,所以这不是一个大的缺陷。
- 经过训练的模型比其他算法工作得慢一些(如果模型中有100棵树,就必须对它们进行迭代以获得结果)。然而,在现代机器上,这一点并不明显。
- 当一组具有许多稀疏特征(文本、词组)或待分类对象可以线性分离时,该算法比大多数线性方法更差。
- 该算法容易出现过度拟合,特别是在噪声较高的任务上。这种问题可以通过调整 r 参数来部分解决,原始随机森林算法也存在类似问题,但是更加明显。然而,作者声称该算法不易过拟合。这种谬论被一些机器学习实践者和理论家所分享。
- 对于包含不同级别的分类变量的数据,随机森林偏向于具有更多级别的特征。树将被更强烈地调整到这样的特征,因为它们允许接收更高值的优化功能(信息增益类型)。
- 与决策树相似,该算法绝对是不能外推(但这可以被认为是一个加号,因为在峰值情况下不会有极值)。
机器学习在交易中的应用特点
在机器学习的新手中,有一种普遍的观点认为,它是某种童话世界,程序为交易者做一切