一种基于Xgboost算法的交通量预测方法与流程

文档序号:19378879发布日期:2019-12-11 00:09阅读:2039来源:国知局
一种基于Xgboost算法的交通量预测方法与流程

本发明涉及机器学习方法和交通量预测等技术领域,具体涉及一种基于xgboost算法的交通量预测方法。



背景技术:

交通流量是反应高速公路交通状态的重要指标,短期的交通量预测是高速公路管理的重要内容,是智能交通的重点方向。高速公路系统是复杂非线性的系统,对短期交通量的研究有助于管理部门发布交通信息发布和提高交通诱导效果,提高高速公路系统的运行效率和稳定性。

在统计特性研究层面,有趋势外推法、线性回归、隐形马尔科夫预测模型及卡尔曼滤波等。在机器学习方法层面,通过挖掘历史数据隐含的信息,实现交通量的迭代估计。支持向量机、迭代决策树、随机森林、贝叶斯网络、小波理论、改进粒子群算法优化bp神经网络等不同模型都应用在交通量的预测中。在深度学习中,采用深度信念网络对数据先进行特征学习提取,再采用顶层svm模型进行预测。

以上模型将机器学习理论应用到交通量预测领域,并取得了较好的成果。但在有限的计算条件下,这些模型因为复合了双重甚至更多的模型,参数较多,模型预测时间长,对预测精度有影响。



技术实现要素:

针对上述及问题,本发明提供了一种基于xgboost算法的交通量预测方法,旨在解决在交通量预测中,由于复合模型预测带来的参数寻优困难、计算资源消耗大,预测性能较差的问题。

本发明的上述目的至少通过如下技术方案之一实现:

一种基于xgboost算法的交通量预测方法,包括如下步骤:

步骤s1:采集交通量数据,进行数据归一化,划分为训练数据和测试数据;

步骤s2:基于xgboost算法,对训练数据进行模型训练,确定模型参数;

步骤s3:输入xgboost模型参数、测试数据,进行交通流的预测;

步骤s4:对xgboost模型预测结果进行误差评估,还原预测数据进行输出。

进一步地,所述步骤s1具体包括:

采用线圈对行驶车辆信息收集统计,并分为若干不同时间间隔的交通量数据;

对数据进行归一化,并按照比例划分为训练数据和测试数据,其中,所述数据归一化采用min-max标准化,公式如下:

其中,x*是归一化后的交通量数据,其中max为样本数据的最大值,min为样本数据的最小值。

进一步地,所述分为若干不同时间间隔的交通量数据具体指分为30分钟、60分钟两个不同间隔的交通量数据。

进一步地,所述步骤s2中,xgboost算法将一系列弱学习器的预测结果组合成为强学习器,对损失函数进行二阶泰勒展开,将预测项和正则化项结合起来,在优化过程中加入二阶导数信息,简化目标函数实现计算资源优化,采用弱分类器集成算法选取合适的参数,具体流程包括:

步骤s21、采用岭回归算法(ridgeregression)运行训练数据,选取最优alpha值;

步骤s22、采用随机森林算法(randomforest)运行训练数据,选取最优参数;

步骤s23、采用融合算法(stacking)采取两种模型的优点,提取最优参数,完成模型训练。

进一步地,所述步骤s3具体包括:

输入xgboost模型参数,采用时间窗步长参数对输入数据进行处理,将前n个时刻的交通量数据输入训练好的xgboost模型,生成下一时刻的交通量数据预测结果,即n+1时刻的交通量。

进一步地,所述步骤s4具体包括:

采用训练好的xgboost模型对预测数据进行交通量预测,将预测数据同实际数据进行误差计算,误差计算采用均方误差(mse)和均方根误差(rmse)作为评估指标,还原预测数据进行输出:

均方误差:

均方根误差(rmse):

式中:n是数据集个数,代表预测数据,yi代表真实数据。

本发明提出的一种基于xgboost算法的交通量预测方法,包括如下步骤:对线圈采集的数据进行归一化处理,分为训练数据和测试数据;采用粒子群算法对lstm神经网络的模型参数进行优化;对xgboost模型进行训练;调用预测模型对测试数据进行预测,并评估预测误差。本发明利用了xgboost模型集成弱学习器、运算速度快的特点,可以得到更高的预测精度,且对不同间隔数据样本有良好的适用性。

与现有技术相比,本发明的有益效果在于:

1、xgboost模型底层使用cart树,叶子节点采用数值,有助于算法的高效优化,提升运行速度;

2、xgboost模型分类树切割点采用近似值算法,枚举类算法提高了运行速度;

3、xgboost模型将损失函数扩展到二阶可导,可以更加快速地得到最优解;

3、xgboost模型对不同间隔的数据样本具有良好的适用性。

附图说明

图1是本发明实施例的流程示意图。

图2是四种模型不同数据中的预测均方误差。

图3是四种模型不同数据中的预测均方跟。

具体实施方式

下面结合实例对本发明做进一步的说明,所描述的实施例旨在便于对本发明的理解,但对其不起任何限定作用。

一种基于xgboost算法的交通量预测方法,主要流程如图1所示,包括如下步骤:

步骤s1:交通量数据采集,并进行数据归一化预处理,分为训练数据和测试数据。

所述交通量数据来源于城市公路线圈采集的车辆信息,获得时间段内交通量信息,数据样本间隔可以根据实际预测需求制定,本发明采用的是30分钟、60分钟两个间隔样本数据。读取获得原始交通量数据,采用min-max标准化方法对数据归一化:

其中,x*是归一化后的交通量数据,其中max为样本数据的最大值,min为样本数据的最小值。

步骤s2、基于xgboost算法,对训练数据进行模型训练,确定模型参数;其中,xgboost将一系列弱学习器的预测结果组合成为强学习器,对损失函数进行二阶泰勒展开,将预测项和正则化项结合起来,在优化过程中加入二阶导数信息,简化目标函数实现计算资源优化。采用弱分类器集成算法选取合适的参数。

具体包括步骤:

步骤s21、采用岭回归算法(ridgeregression)运行训练数据,选取最优alpha值;

步骤s22、采用随机森林算法(randomforest)运行训练数据,选取最优参数;

步骤s23、采用融合算法(stacking)采取两种模型的优点,提取最优参数,完成模型训练;

步骤s3、:输入xgboost模型参数、测试数据,进行交通流的预测;具体包括包括:输入xgboost模型参数,采用时间窗步长参数对输入数据进行处理,将前n个时刻的交通量数据输入训练好的xgboost模型,生成下一时刻的交通量数据预测结果,即n+1时刻的交通量。

步骤s4、对xgboost模型预测结果进行误差评估,还原预测数据进行输出,具体包括:采用训练好的xgboost模型对预测数据进行交通量预测,将预测数据同实际数据进行误差计算,误差计算采用均方误差(mse)和均方根误差(rmse)作为评估指标:

均方误差:

均方根误差(rmse):

式中:n是数据集个数,代表预测数据,yi代表真实数据。

本发明的有效性可以通过实施例来进一步说明,实施例的数据不限制本发明的应用范围。

实验平台:处理器为inteli5-6500,内存为16.0gb;系统是windows10(64位);程序语言版本为python3.6。

实验内容:

本实施例的数据来源广州市某公路的线圈数据。采取方法为每隔5分钟交通量数据。本实施例的数据量大,真实性高。本发明的数据整理后采集间隔分别为30分钟,60分钟,能够有效保证管理部门数据预测需求。采用离差标准化方法进行归一化,实验以前8天数据为训练集,后2天数据为测试集。

根据训练数据得到xgboost模型参数,分别为:learning_rate=0.1,n_estimators=100,max_depth=5,min_child_weight=5,gamma=0.1,reg_alpha=1,reg_lambda=1。将这些参数作为xgboost模型的参数进行测试数据的预测。

实验选取了在行程时间预测中常用的模型作为对照:随机森林算法(rf)、支持向量机算法(svm)、最近邻算法(knn),同本发明的算法(xgboost)进行预测性能对比。

图2是四种模型不同数据中的预测均方误差,图3是四种模型不同数据中的预测均方跟。四种模型的行程时间预测性能对比如表1所示。

表1为算法行程时间预测性能对比

综上所述,本发明提出的一种基于xgboost算法的交通量预测方法,能够获得更好的预测性能,在降低模型的复杂度、减少过拟合、降低计算量的同时,提高了交通量预测精度。本发明所提出的方法,在两个不同间隔数据中误差均最低,证明了方法具有良好的适用性。

以上是本发明的实施例,但本发明并不局限于上述特定实施方式,凡依本发明技术方案作出的改变,所产生的功能作用未超出本方法技术方案的范围时,其同样应当视作本发明所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1