APP下载

基于XGBoost 的短时出租车速度预测模型*

2022-07-20赵建有叱干都刘清云

交通信息与安全 2022年3期
关键词:车速出租车速度

肖 宇 赵建有 叱干都 刘清云

(1.长安大学运输工程学院 西安 710064;2.长安大学汽车学院 西安 710064)

0 引 言

出租车是城市营运车辆的重要组成部分[1],出租车驾驶员能否规范行车对城市居民出行具有广泛的影响。随着信息获取技术的持续发展和地理信息设备的广泛应用,通过装载GPS设备,可以实时获得出租车运行的速度和方向等信息,有利于准确识别出租车驾驶员异常驾驶行为,并向驾驶员做出预警,能够有效规避风险,提高运营安全性。

现有的异常驾驶行为识别研究主要是基于车辆历史轨迹数据,对驾驶行为进行事后分析与评价[2]。惠飞等[3]基于车辆驾驶过程中行车数据的时序变化特征,建立了双向长短记忆网络及全连接神经网络的拓展模型,提高了车辆异常驾驶的识别准确度。赵建东等[4]构建了1 种基于时间序列符号化算法和多尺度卷积神经网络的组合模型,用于识别重点营运车辆的异常驾驶行为。但相较于事前分析,事后分析对保障出行安全存在一定的滞后性和模糊性,驾驶行为也往往局限于超速和疲劳驾驶等方面。出租车的运行地点一般是城市道路,车流量和人流量较多,易发生紧急避让或交通拥堵等事件,驾驶员频繁急加减速等行为较多,这会对乘客的出行体验舒适度产生直接影响。因此,通过预测个体出租车速度,能够对驾驶员异常驾驶行为提前发出提示或警告,降低城市交通风险发生概率,是保障出租车行业规范驾驶亟待解决的问题。

传统的交通流预测大多采用统计分析和机器学习方法。王进等[5]总结了基于统计方法、非参数回归和神经网络模型等7类交通流预测模型。Smith等[6]引入启发式预测方法提升了非参数回归的预测性能。Vlahogianni 等[7]采用基于遗传算法的多层结构优化策略,进而选择合适的神经网络对单变量和多变量交通流数据进行预测。Zhang 等[8]分别使用光谱分析、时间序列和波动分析对交通流时间序列多重分形特征进行短期预测。同时,越来越多的学者使用深度学习的方法进行短时交通流量的研究。罗文慧等[9]运用了卷积神经网络提取交通数据的时空特征,以此作为支持向量回归预测模型的输入向量。罗向龙等[10]使用K-最邻近算法构造交通流序列数据集,提出了基于1 种长短时记忆网络的交通量预测方法。冯微等[11]建立了结合深度置信网络的地点车速预测模型,其输入和输出层分别选取了高斯-伯努利受限玻尔兹曼机和Softmax 回归模型。这些研究成果对路段交通运行的整体状况能够有较好的表征,但无法细致地描述个体出租车车速变化的趋势。因此,通过预测个体车辆的速度,可以弥补传统交通量预测的不足,为后续是否发生异常驾驶行为提供判别依据。

在个体车辆速度预测方面,城市出租车运行轨迹受人、车、路、环境等多种因素的影响,从时间角度分析具有显著的时变性和复杂的非线性特征。Shi等[12]建立了非线性自回归动态神经网络模型对实时车辆状态进行预测。Yeon 等[13]结合了车辆内部数据、雷达传感器数据和跟车距离,基于LSTM-RNN模型预测本车速度。Ladan 等[14]提出了进化最小学习机模型来预测车速序列,从而改进车辆动力控制系统。冯安琪等[15]基于射频识别环境,采用了自适应卡尔曼滤波的方法进行高速车辆速度预测。郭兴等[16]提出了改进ARIMA车速短期预测模型,满足了不同驾驶行为下的车速预测需求。连静等[17]结合驾驶意图识别和历史车速预测,针对插电式混合动力汽车系统进行未来行驶工况预测。以上模型对预测模型的输入变量进行了优化改进,使得预测结果更为精确,但选取多个输入变量会降低模型的输入与运算效率,无法保障短时车速预测的实时性。且以往的预测方法针对模型本身的参数设定常选用经验法、网格搜索与随机搜索的参数调整方法,具有搜索速度慢和可能忽略最优值的缺点。XGBoost(extreme gradient boosting)算法[18]是以梯度提升为算法核心,具有运算速度快、鲁棒性好、预测精度高等优点,已在众多预测领域取得了较好效果。钟颖等[19]基于XGBoost模型对路段未来时段平均旅行时间进行预测。叶景等[20]考虑时空特征,提出了CNN-XGBoost 交通流预测模型。宋瑞蓉等[21]建立了ABiLSTM 与XGBoost 的组合模型,提高了交通时间预测的准确度。梁泉等[22]使用XGBoost 算法,分类构建了公交通勤出行目的地预测模型。

考虑到现有预测方法针对个体出租车辆速度研究的内容较少,以及存在无法兼顾预测速度与精度等问题,本文提出了1 种基于XGBoost 算法的短时出租车速度预测模型。将原始时间序列数据构造得到可供监督学习使用的数据,作为预测模型输入的参数变量,然后使用基于贝叶斯优化的hyperopt 方法进行参数优化,采用深圳市GPS 出租车数据对模型进行训练与测试。通过与当前研究使用率较高的非参数回归和神经网络模型的预测结果比较,验证了XGBoost模型的预测精度。

1 XGBoost算法原理

XGBoost 算法由华盛顿大学陈天奇[18]在SIGKDD 2016大会上发表的论文中率先提出,能够增强梯度提升性能。鉴于单棵回归树精度不足和使用场景受限的应用背景,XGBoost 是在分类回归树算法的基础上对提升树算法进行的改进。XGBoost的原始模型见式(1)。

迭代前XGBoost的目标函数见式(2)。

通过初始化1个预测值,每次迭代时添加1个新函数,经过多次迭代,XGBoost在追求残差减小的方向上逐步生成新模型,从而不断地减小残差,直到满足系统的误差要求,达到提升(Boosting)的目的。

相较于以往的梯度提升算法,XGBoost 算法作出了许多优化。经过二阶泰勒展开,XGBoost 算法能够去除目标函数中的常数项,由每个数据点的二阶导数决定着最终目标函数的形式。将正则化项进行拆分也可进一步简化目标函数,泰勒展开和拆分正则化项均有助于更快地找到目标函数最小的情况。针对分类、排序和回归问题,XGBoost兼顾了速度和效率,采用并行树提升的方法,加快了模型学习速度,可以在不同平台和语言环境下运行,强化了非线性学习能力和可扩展性,从而在许多预测问题与实际应用中具有高效、轻便的显著优势。

2 基于XGBoost 的短时车速预测模型

2.1 构造监督学习序列

短时车速预测模型是聚焦速度值的时间序列自回归模型,利用XGBoost 可以进行对时间序列问题拟合、评估、预测等,若给定一系列时间序列数据集,可以进行数据重构。对于短时出租车速度预测模型,使用训练集固定步长的连续时间序列数据作为输入变量,称为历史时间序列,将此后下1个步长的时间序列作为输出变量,称为当前时间序列,历史时间序列与当前时间序列共同组成1个时间窗口。本模型为提高预测精度,以城市车辆由最高行驶速度50 km/h迅速降低为0所需时长为阈值,时间大约需要8 s,其他情况下车速以较小的加速度变化,车速发生较大变化的时间长度小于8 s。若采样时间间隔为2 s,那么需要连续4次采样的数据。因此,设置预测模型输入数据的时间窗口长度L为5,即根据车辆前8 s 内的历史车速预测下1 个时刻的当前车速。规定时间窗口每次向前滑动1 个时间步长,直到滑动到第1个时间窗口,示意图见图1。通过滑动窗口,将时间序列xi转化为1个新的数据集,即若干个时间窗口。

图1 时间窗口示意图Fig.1 Time window diagram

通过将原本按时间顺序排列的数学序列S=[(t,x)i],其中,t为时间,x为速度值,转化为由输入变量和输出变量组成的监督学习序列St=[((xi-4,…,xi-1),xi)],为有监督学习的短时出租车速度预测模型创建了新的数据集。此外,由于XGBoost 中内置的K 折交叉验证方法中的测试集是由原始数据集随机分割得到的,导致测试集与训练集的分布存在较大差距,而短时出租车速度预测模型是根据历史数据预测未来数据,因此模型评估阶段使用前向验证(walk-forward validation)方法。将数据集拆分为2个部分,较大的数据集用于进行模型的训练,较小部分的数据集进行预测验证。从测试数据集的第1个时间窗口开始预测,将预测值自动反馈给XGBoost模型进行调试,随后继续对测试数据集中的下1个时间窗口进行预测,存储、评估及调整模型性能指标,遍历测试集以重复上述过程。

2.2 模型构建

连续时段内出租车速度呈明显的时间序列特性,相邻时间间隔的速度数据具有很强的相关性,因此可以根据时间窗口中历史时间序列的速度数据预测下1 个时刻的速度值。XGBoost 模型构建首先需要对原始数据集作进一步预处理。对于数据集中存在个别时刻车速值缺失的问题,利用缺失点前后时刻车速值的平均值进行插值,从而避免预测结果出现异常偏差。根据2.1中构造的监督学习序列,将前80%的数据量作为训练集,后20%的数据量作为测试集。

迭代后的短时出租车速度预测的数学模型见式(3)~(4)。

对目标函数进行泰勒展开得到式(5)~(7)。

采用贪心算法得到最佳分裂节点,对比节点分裂前后的差异,增益值Gain计算见式(9)。选取增益值最大的分裂节点进行分裂,当增益值大于0 或未达到树的最大深度时,继续分裂叶子节点;当增益值小于0或已达到树的最大深度时,树停止分裂,函数得到权重最优解和预测速度最优值,此时预测模型避免了过拟合现象的出现,提高了预测速度且拟合效果最佳。

2.3 参数设置

采用XGBoost算法预测出租车辆车速的重要环节是设置不同参数的取值,以及指定学习任务和相应的学习目标,以增强模型的可控性。各个参数取值会影响预测模型的精确程度和运算速度,不同的参数取值组合也会导致预测结果出现过拟合或者欠拟合的情况。XGBoost所有参数中对算法性能影响较大的参数包括学习率(learning rate)、树的最大深度(max depth)和迭代次数(n-estimators)等。为得到最优的参数组合,需要在训练模型前进行调参。

根据经验进行手动调参的方法容易导致模型错过最优参数,而选取次优参数,无法保证模型选择的合理性。与网格搜索和随机搜索算法这类自动调参方法相比,贝叶斯算法能够克服以上方法在参数寻优速度和质量方面的问题,基于Python 软件的hyperopt 模块可以实现贝叶斯优化,通过内置函数可指定输入参数的范围与取值,经过随机搜索初始空间后,根据目标函数迭代的反馈,不断调整缩小搜索空间,在大范围内对多个参数进行优化,最终获得总体性能最优的参数组合,文中所使用的XGBoost 模型最佳参数设置见表1。

表1 XGBoost 模型参数设置Tab.1 XGBoost model parameter settings

3 实验结果及分析

3.1 数据来源

实验在英特尔i5 2.11GHz,4 核8 线程CPU,8GB RAM,Windows 8操作系统的计算机进行,仿真平台为pycharm,使用sklearn,pandas,numpy,xgboost和hyperopt等python库。以2013年10月22日00:00—24:00 的深圳市出租车GPS 数据为实验数据,采样时间间隔以2~15 s 不等,采集信息特征包括:出租车ID、时间、经度、纬度、占用状态和速度等数据,共计23 409 条数据。本数据仅用来验证模型准确性,不作为分析目前城市出租车运行特征的数据,选取该出租车1 d内最后100个样本点作为模型预测精度可视化展示。利用高德开放平台绘制该出租车运行轨迹见图2。

图2 某出租车运行轨迹Fig.2 Trajectory of a taxi

3.2 评价指标选取

恰当的评价指标可以准确直观地反映模型的预测效果,将模型预测值和数据集真实值作比较,达到量化分析模型性能的目的。评价指标选取平均绝对误差(MAE)和均方根误差(RMSE)。MAE是对所有样本的绝对误差求平均,与平均误差相比,平均绝对误差由于误差被绝对值化,不会出现正负抵消的情况,因而更能反映预测值误差的真实情况;RMSE可以体现数据的离散程度,MSE和RMSE的计算见式(10)~(11)。

式中:n为训练集数据总量。

MAE和RMSE虽然可以较好地体现模型预测精度,但从二者的公式中可以看出,由于MAE和RMSE预测的是车辆速度值,而车速值在采集时的原始值在较大的范围内波动,因此造成MAE和RMSE值较大。为提高模型评价指标的可读性,去除测试集数值本身大小的影响,引入R²和调整后的R²(R²_adjusted)来判断预测模型的优劣,避免了自由度对预测结果的影响,计算见式(12)~(13)。R²_adjusted越大,表示模型拟合效果越好,其取值范围为[0,1]。

3.3 实验结果分析

将训练过后的XGBoost 模型对测试集进行预测,分析预测值与实际值的差异,计算得到预测模型的MAE、RMSE和R2_adjusted。同时对比非参数回归模型、神经网络模型、与XGBoost模型的预测结果,预测性能评价见表2,3 种模型的预测值与实际值的对比见图3~5。

表2 模型预测性能评价Tab.2 Model prediction performance evaluation

图3 非参数回归模型预测结果Fig.3 Nonparametric regression model prediction results

图4 神经网络模型预测结果Fig.4 Neural network model prediction results

图5 XGBoost模型预测结果Fig.5 XGBoost model prediction results

通过表2及图3~5可知:非参数回归模型、神经网络和XGBoost模型的预测曲线与实际曲线的变化趋势基本相符。但XGBoost 模型的MAE和RMSE分别为9.841和12.711,均小于非参数回归模型和神经网络模型,3 种模型的R² _adjusted 值为0.595,0.504,0.592,相差较小。综合分析各评价指标,表明XGBoost 模型对出租车1 d 内的车速变化情况具有更高的预测精度。

由于R²_adjusted 值越接近1 时,模型的拟合度越高,出现3 种模型R²_adjusted 值均较低的主要原因是出租车车速的变化受驾驶员主观行为的影响较大,出租车实际运行中的上下客行为导致其速度值在时间序列上具有随意性较大的特点。经过数据预处理后,数据波动依然较大,缺少规律性,因此导致模型拟合存在一定内部误差,从而造成R²_adjusted值整体偏小,但评价指标仍可体现模型对预测结果的解释功能。

此外,相较其他2 种模型,XGBoost 模型在速度发生急剧变化的点附近的拟合程度更佳,当出租车驾驶员出现急加减速操作时,可以及时进行预警提示;当出租车正常加减速时,避免了无效或错误提示,能够更为准确地进行预测。同时对比3 种模型的预测结果可以发现,非参数回归模型和神经网络模型在第80 个样本点附近的预测值车速在极短时间内突变为负数,明显与实际情况不符,这是由于上述2 种模型在训练过程中学习过于彻底,在测试阶段无法更好地识别数据,造成模型过拟合。而XGBoost模型由于引入了正则化的方法,降低了模型的复杂度,因此在该处的拟合效果较优,验证模型具有较好的泛化能力。

任选取1 d 内20 个时间点进行预测,预测效果见图6。由图6可见:预测曲线与实际车速曲线间的误差较小,因此当数据采集的频率足够高,每个采集点时间间隔足够小时,XGBoost 模型就可以对出租车短时运行的速度趋势做出准确预测。若给定急加速和急减速加速度设定阈值,可以计算得到单位时间内速度变化阈值,当预测时刻模型预测值与实际值的差大于变化阈值时,就可以认为出租车辆出现急加速或急减速的情况,乘客乘车舒适性较差,同时存在驾驶安全隐患;当预测时刻模型预测值与实际值的差小于变化阈值时,认为认出租车辆以正常加速度行驶,乘客乘车舒适性较好,同时车辆平稳运行。

图6 该出租车20个时间点预测结果Fig.6 Prediction results of the taxi at 20 time points

综上所述,运用XGBoost 算法在城市交通管理中进行出租车辆车速预测研究,能够通过较少的速度时间序列得到更为精确的下一时刻速度预测结果,结合预测值与实际值之差和设定阈值,有助于判别个体出租车驾驶员是否出现异常驾驶行为,实现对驾驶员的及时预警,保障城市出租车的安全运行。

4 结束语

选取城市出租车个体车辆速度作为预测对象,相较于路段平均车速,能够精确反映个体车辆的运行状况,并将车速时间序列数据集转化为有滑动窗口的监督学习序列,实现了对出租车辆短时运行速度的预测,参数的寻优处理能够在保证计算效率的同时,提升模型的预测性能。基于XGBoost 算法的短时车速预测模型较非参数回归模型和神经网络模型在预测精度方面有较为明显的提升,是1 种较为有效的出租车速度预测方法。模型在出租车速度发生突变时刻附近的预测效果更加准确。通过分析预测时刻的误差值与相关阈值,分析得到出租车行驶过程中可能出现的速度异常情况,进而判断驾驶行为异常的发生,能够对异常驾驶行为进行精细化识别和提前警示,规范了驾驶员的驾驶行为,提高了乘客出行满意度,减少了道路事故发生可能性,为城市出租车运行提供实时监测保障。

由于出租车辆短时速度预测对训练数据集的数据条采集精度要求较高,需要出租车辆GPS 设备的采集时间间隔更小,而目前已有的公开数据集的采集频率较低或不固定,因此后续将提高原始数据精度,从而得到更好的预测效果。

猜你喜欢

车速出租车速度
行驶速度
速度
乘坐出租车
2012款奔驰R300车修改最高车速限制
凭什么
比速度更速度——“光脑”来了
开往春天的深夜出租车
在解决Uber之前先解决出租车行业的垄断
北京现代途胜车车速表不工作
两车直角碰撞车速计算方法及应用