题目:一种改进旅行时间预测的梯度增强方法

链接:https://www.sciencedirect.com/science/article/pii/S0968090X15000741?via%3Dihub

年份:2015

摘要

基于树的集成方法在预测领域已经成为了一种研究热点,通过一些简单的回归树的集合,它们通常可以产生较高的预测精度。

和其他那些被认为是盒子模型的机器学习方法相反,基于树的集成方法提供了可解释的结果,尽管需要少量的预处理步骤,但是它有能力处理不同类型的预测变量,能拟合复杂的非线性关系。这些特性使得基于树的集成方法是解决行程时间预测问题的最好方法之一。但是,基于树的集成方法在交通上的应用确是有限的。在本文中,我们用梯度增强回归树(GBM)去分析和建立高速公路行程时间模型去提高预测精确度和模型的可解释性。梯度增强的树方法可以通过纠正先前的树模型所犯的错误结合额外的树。因此能够潜在的提高模型的精度。在模型的性能中不同参数的影响和输入输出变量之间的关系被细节性的讨论。本文提出的方法和另一种流行的集成方法和一个水准点模型进行了比较,研究结果表明,GBM在高速公路行程时间预测方面具有相当大的优势。

2、方法

基于集成学习的模型包含了很多基本模型(例如决策树、神经网络),每一个基本模型都提供了一个可选择的方案,这些模型的预测以某种方式组合来生成最终的模型输出。将一组单个基模型的预测组合在一起通常比任何一个单个模型更稳定,更准确。集成方法背后的基本思想经常用于我们的日常生活中。我们做决定时通常征求别人的意见。通过加权组合这些想法,我们可以做出更明智的决定。
集成方法的成功在很大程度上取决于构成集成的基本模型的多样性。只有当各个模型提供不同的输出,或者换句话说,它们在某些输入上不一致时,组合几个基本模型的结果才有用。集成方法通过纠正单个模型的错误来减少总误差。合并犯类似错误的模型没有任何好处。有策略地组合犯不同错误的单个基本模型可以减少模型的总错误。个体模型的多样性可以通过使用不同的训练数据集或使用不同的训练参数来实现。Bagging和boost是两种流行的集成技术,它们利用不同的重新采样方法创建不同的训练数据,以获得不同的基本模型。尽管训练数据集相似,为了生成不同的基础模型,基础模型常常被迫是弱的。因此,扰动训练数据可以产生不同的模型输出。

树是一种基本模型,通常用于集成。它们对训练数据中的小扰动非常敏感,而训练数据的轻微变化会导致非常不同的回归树。这种独特的属性使它们成为集合的理想候选人。此外,树是快速和简单的算法,减少了计算时间和复杂性。基于树的集成方法构建大量不同的树,然后结合每棵树的结果。使用集成树的好处是通过平均可以减少方差。细节将在后面的部分中说明。一般来说,有两种成功的基于树的集成算法:随机森林和梯度增强回归树。这两种方法都使用一个单一的回归树作为它们的基本模型。
随机森林法是在bagging思想的基础上推导出来的,而梯度增强回归的理论基础是增强技术。下面的段落将简要地解释一个单一的回归树,然后说明如何构建不同的集成树。

2.1 简单的回归树

单个树模型将特征空间划分为一组区域,并为每个区域匹配一个简单的模型(一个常量)。为简单起见,考虑一个连续应变量Y和两个自变量X1和X2的回归问题。
我们首先将空间分成两个区域,并在每个区域分别建立响应Y (Y的均值)模型,然后,我们继续将每个单独的区域划分为两个以上的区域,并继续这个过程,直到满足某个停止规则。图1使用b1、b2、b3、b4四个分裂点,根据X1、X2两个变量,将特征空间划分为{R1、R2、R3、R4、R5}五个区域。树的大小是树的叶节点的个数。在图1中,树的尺寸为5。在每个划分过程中,通过选择变量和分割点来获得最佳的拟合。下图是同一模型的二叉树表示。

A gradient boosting method to improve travel time prediction

我们现在考虑上述示例的一个通用版本:包含p个输入和1个输出的回归问题。例如我们有n个数据,每一个数据包括:

A gradient boosting method to improve travel time prediction,i=1,2,...,n,j=1,2,...,p;在行程时间预测方面,y_i是时间步i时刻的行程时间,(x)被认为是和y相关的一系列变量,例如历史行程时间,流量、密度和其他因素。将特征空间划分为M个区域A gradient boosting method to improve travel time prediction。这些不同的区域可以被当作不同的交通状况。换句话说,换句话说,回归树根据输入参数的值将交通状况划分为不同的类别,并分别对每个类别的因变量进行建模。每个区域的因变量通常被认为是常数C_m。如果优化准则是最小化平方和,则最佳Cm就是yi在Rm区域内的平均值,在图1中,我们估计了每个区域Rm的Cm的不同值。为了确定最佳分裂变量和分裂点,采用了贪心算法。对于每个分裂变量,最好的分裂点可以通过扫描所有可能的值来确定,这可以非常快地完成。通过扫描所有的输入变量,找出最佳的分裂变量对和分裂点是可行的。单一回归树是随机森林和梯度增强回归树方法的基本模型。

2.2 随机森岭-RF

Random forest是由Breiman(2001)在2001年开发的。它结合了两种强大的机器学习技术:Breiman的bagging思想(Breiman, 1996)和Ho (1998,1995) Amit and Geman(1997)提出的随机特征选择。为了理解随机森林是如何工作的,下面的段落解释了bagging和随机特征选择的概念。在bagging或bootstrap聚合中,每个基于个体的模型都是在训练数据的bootstrap样本上训练的。bootstrap技术最初是为了从有限的数据中通过对原始数据的抽样和替换来估计估计器的抽样分布而开发的。集成技术的最新发展中,boostrap被用来生成不同的训练子集。对于给定的样本容量为n的训练数据集,bagging通过对原始训练数据集进行均匀抽样和替换,生成k个新的训练集,每个训练集的样本容量为n,通过替换抽样,一些观测值在bootstrap样本中出现多次,而其他观测值将被“遗漏”在样本中。然后,使用新生成的k个训练集对k个基本模型进行训练,并通过平均(回归问题)或多数投票(分类问题)进行组合。为了保证bagging方法的成功,单个基础模型应具有不稳定性的特性。Bagging通过扰动训练集产生的每个基模型的多样性来提高预测精度。要从相似的训练数据集中获得不同的基模型,基模型应该是弱的。这里,“弱”指的是模型的表现略好于随机猜测。使用树作为基本模型,我们可以得到最简单的集成树——bagging树。集成中的每棵树都是在随机抽取的数据样本上生长的,这些数据样本是用原始数据替换后得到的。然而,对于大量的数据,我们通常学习相同的回归树。这些树的平均输出并不能提高预测精度。

随机森林利用的第二种技术是随机特征选择。随机森林是bagging回归树的进一步发展.它仍然是基于引导抽样来生长单独的树。与使用所有特性不同,它只允许在树的每个分裂节点上随机使用特性子集。因此,它加强了基础模型之间的多样性。图2展示了随机森林的基本步骤。

A gradient boosting method to improve travel time prediction

随机森林通过对许多有噪声但近似无偏的树进行平均来减少方差,从而提高预测的准确性,根据书中,总树数(K)的随机森林的方差为:

A gradient boosting method to improve travel time prediction

A gradient boosting method to improve travel time prediction:个体数的方差,A gradient boosting method to improve travel time prediction:树之间的相关性,K是集成中树的个数,很明显,通过增加树的总数K,第二项趋于零。因此,随机森林的方差取决于三个因素:

1)任意一对树之间的相关性q:相关性越小,总方差越小。这可以通过以下方法实现:从p个特征变量中随机选择v个。降低v值,既降低了树与单个树的强度之间的相关性,也降低了树与单个树的强度之间的相关性。因此,需要针对特定的数据集寻找v的最优值。

2)每棵树的方差A gradient boosting method to improve travel time prediction,换句话说,每棵树的强度:加强每棵树的性能可以减少模型的总方差。

3)树的总数M:方程的第二项可以通过增加M来减少,因此,我们需要训练足够的树来保证方程的第二项为零。

一般情况下,随机森林是基于bagging思想,并且通过随机特征选择来增强每棵树的多样性。随机森林的理论背景支持并行计算,因此可以通过并行计算加快其训练速度。随机森林的预测性能主要受三种因素的影响:单个树之间的相关性、每棵树的性能与树的总个数。

参考:

https://www.mitpressjournals.org/doi/10.1162/neco.1997.9.7.1545

https://link.springer.com/article/10.1023%2FA%3A1010933404324

2.3 GBRT(梯度增强回归树)

与bagging不同的是,boosting方法按顺序生成基模型。将重点放在这些难以估计的训练案例上,通过开发多个模型来提高预测精度。在boosting的过程中,使用以前的基本模型难以估计的示例比正确估计的示例更经常出现在训练数据中,每一个额外的的基本模型都是为了纠正它之前的基本模型所犯的错误。boosting法的诞生就是从这个答案开始的,一组弱学习者是否等同于一个强学习者呢???弱学习算法是一种仅比随机猜测稍微好一点的算法;强基模型是一种更精确的预测或分类算法,它与问题具有任意良好的相关性,这个问题的答案很重要。与强模型相比,评估弱模型通常更容易。Schapire (Kearns, 1988)通过使用boosting算法(图3)将多个弱模型合并成一个单一且高精度的模型,证明了答案是正确的。

A gradient boosting method to improve travel time prediction

bagging法和boosting法的主要区别在于boosting法从战略上重新组合训练数据,为每个连续模型提供最有用的信息。在训练的每个步骤中,调整后的分布是基于之前模型产生的误差所得到的。与统一选择每个样本生成训练数据集的bagging方法不同,boost算法选择单个样本的概率是不相等的。被错误分类或错误估计的样本有更多机会被选择更高的权重。因此,每一个新创建的模型都把重点放在了被之前的模型错误分类的样本上。

boost适用于其他模型,这些模型最小化了训练数据的平均损失函数,如MAE或MSE。损失函数衡量的是预测值偏离真实值的程度。该问题的近似解之一是使用正向阶段建模方法。在不改变已添加模型的参数和系数的情况下,正演阶段方法依次添加新的基本模型,该问题的近似解之一是使用正向阶段建模方法。在不改变已添加模型的参数和系数的情况下,正演阶段方法依次添加新的基本模型。在回归问题上,升压法是一种“函数梯度法”。这是一种优化技术,通过在每一步添加一个基模型来最大限度地减少损失函数。通用梯度增强方法的伪代码如下:

Friedman提出了一种基于固定大小的回归树作为基本模型的梯度增强方法的修正。修改后的版本提高了模型的质量。在本研究中,我们将GBM模型的这一修正版本用于旅行时间预测。假设每棵树的叶节点数是J,每棵树将输入空间划分为J个不相交区域R1m、R2m、…、Rjm,并预测区域Rjm的一个常数值bjm。回归树的形式为:

                       A gradient boosting method to improve travel time predictionA gradient boosting method to improve travel time prediction

在通用梯度增强方法中使用回归树代替gm(xi),模型更新方程和梯度下降步长如下:

A gradient boosting method to improve travel time prediction

梯度增强回归树按阶段建立模型,并通过最小化某一损失函数的期望值来更新模型.在模型中加入许多树后,拟合模型可以获得任意小的训练误差。但是,模型与训练数据的拟合过于紧密,泛化能力较差。随着迭代次数的增加,模型变得复杂,数据中的微小波动也会被夸大。这将导致对测试数据的预测性能很差。有必要确定最优的迭代次数(或树的数量)M来最小化与预测相关的未来风险。通过控制梯度增强迭代的次数可以防止过拟合,或者更有效的方法是将每棵树的贡献比例看作一个在0到1之间的因子。

A gradient boosting method to improve travel time prediction

参数J称为学习率,它通过以因子0 < j< 1来缩小每个基本模型的贡献来控制其贡献。在迭代次数和学习速度之间有一个折衷,在迭代次数相同的情况下,学习率的值越小,训练风险越大。较小的J值需要较大数量的M才能获得相同的训练风险。通常,一个小的J (J < 0.1)和一个大的M是更好的。

另一个参数,树复杂度,也会影响算法的性能。树复杂度指的是树中节点的数量,在构建集成系统时,可以分别估计每棵树的最优大小。通过简单地假设每棵树是模型中的最后一棵,我们通常期望非常大的树,特别是在早期迭代期间。这是一个非常糟糕的假设,可能会降低模型性能并增加计算复杂度。一个简单的解决方案是将所有树的大小限制为C。因此,对于整个过程,我们只需要确定一个值C来对数据进行最优估计。随着数据集的增大,C值的增加会带来更大的收益。由于大型数据集提供了关于问题的更详细的信息,因此增加C的值将捕获数据中复杂的变量之间的关系。树的大小C限制了每个模型的交互级别,也就是说,c-1是具有sizeC的树的交互效果的最大级别。因此,树的大小反映了变量交互作用的最大深度。

GBM模型有策略地添加每个基本模型,以最小化某个损失函数。它使用了一种分段抽样策略,这种策略更加强调难以估计的样本。这与随机森林的不同之处在于,随机森林训练每个基本模型的随机抽样具有替换性和等概率。GBM模型的性能受树数(M)、学习率(J)和变量交互作用(C)的影响,通过仔细选择这些参数的最佳组合可以达到模型的最优性能。感兴趣的读者也可以参考教程(Natekin和Knoll, 2013)来详细讨论GBM方法。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: