针对当前船舶交通流模型没有充分考虑流量数据本身特性、预测方法精度不高的问题,提出了一种基于飞蛾火焰优化算法(Moth-flame Optimization, MFO)和最小二乘支持向量机(least squares support vector machine, LSSVM)的预测模型,该模型主要利用飞蛾火焰算法对LSSVM模型内部参数进行优化,基于采集的数据进行模型训练和预测。为验证模型有效性,利用我国广东省船舶交通流量等相关数据进行实验,并与FOA-LSSVM、PSO-LSSVM和GA-LSSVM等模型进行对比分析,结果表明MFO-LSSVM模型具有较高的预测精度和预测效率,验证了方法的有效性,可以用于船舶交通流量的预测。 Current dominant ship traffic flow prediction models don’t consider the characteristics of the data and achieve high accuracy in the prediction process, to resolve these problems, a prediction model based on moth flame optimization algorithm and least squares support vector machine is proposed from the perspective of influencing factors of ship traffic flow. The essence of the model is to optimize the internal parameters of LSSVM model by moth flame algorithm and the model is trained based on collected data. To verify the validity of the proposed model, experiments are conducted based on the relevant data of ship traffic flow in Guangdong Province of China, and compared with FOA-LSSVM, PSO-LSSVM and GA-LSSVM models, the experimental results show that the MFO-LSSVM model has higher prediction accuracy and efficiency, the effectiveness of the proposed model is verified and can be used for the prediction of ship traffic flow.
朱姗,孙立谦
中国交通信息科技集团有限公司,北京
收稿日期:2020年5月12日;录用日期:2020年5月26日;发布日期:2020年6月2日
针对当前船舶交通流模型没有充分考虑流量数据本身特性、预测方法精度不高的问题,提出了一种基于飞蛾火焰优化算法(Moth-flame Optimization, MFO)和最小二乘支持向量机(least squares support vector machine, LSSVM)的预测模型,该模型主要利用飞蛾火焰算法对LSSVM模型内部参数进行优化,基于采集的数据进行模型训练和预测。为验证模型有效性,利用我国广东省船舶交通流量等相关数据进行实验,并与FOA-LSSVM、PSO-LSSVM和GA-LSSVM等模型进行对比分析,结果表明MFO-LSSVM模型具有较高的预测精度和预测效率,验证了方法的有效性,可以用于船舶交通流量的预测。
关键词 :智能交通,交通流量预测,飞蛾火焰优化算法,船舶交通流量,最小二乘支持向量机
Copyright © 2020 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
船舶交通量流量作为船舶交通状况的主要反映尺度,其大小可以反映交通是否拥挤,只有实时掌握船舶交通流量信息,才能更准确地进行预测并为船舶交通规划管理提供依据。目前国内外对于船舶交通流量预测方法研究的文献有很多,主要研究思路分为基于影响因素的预测和基于历史数据的预测,在这两方面分别采用不同的预测方法进行研究,并改进相关预测方法来提高船舶交通流量预测准确性。
目前国内外对于基于影响因素的船舶交通流量预测的文献有很多,总的来说,船舶交通流量的大小与多方面的因素有关,如社会经济发展水平、研究的交通流所处地域、当地的物产、货运市场等,其影响因素又有内因与外因之分。内因即船舶个体特征,包括船舶种类、船舶尺度、船舶吨级、船舶操纵性能等;外因包括港口腹地经济发展水平、港口泊位因素、航道条件、锚地条件、航行规定及管理要求、水域分布、自然条件、导助航设施等。冯宏祥和肖英杰 [
受到实际影响因素数据无法准确获得的制约,很多学者尝试从历史数据寻找规律,对未来交通流量进行准确预测,开发了很多复杂技术和算法,这其中主要可以归类为非数学或数学方法 [
船舶运输需求是一种派生性需求,因此影响船舶交通流量的外部环境因素和经济因素众多,单单只通过流量的时间序列数据往往不能进行准确预测,同时由于短期交通流表现出的相关特征,也导致在同一地点连续采集的数据通常会呈现强烈的季节性 [
船舶交通流量通常呈现出剧烈的波动性和随机性,并在数据的变化趋势中也反映出外部环境(包括港口条件、区域经济等)、突发或随机事件等因素的变化情况,因此本文在构建模型时考虑所预测水域的实际情况,从影响因素的角度构建MFO-LSSVM模型进行船舶交通流量预测。
本文应用飞蛾火焰优化算法对LSSVM中核函数参数和惩罚参数同时进行优化。飞蛾火焰优化算法是在2015年提出的一种新型仿生群体智能算法,算法思路是自然界飞蛾的横向定位导航机制,如图1所示,在这种横向导航方式中,飞蛾相对于火焰始终保持着一个固定的角度来飞行,并通过螺旋飞行更新飞蛾和火焰的位置,并最终收敛于火焰位置。相比于传统的粒子群算法和遗传算法,飞蛾火焰优化算法在探索个体最优和开发全局最优方面实现了相对较好的平衡,从而避免算法过早陷入局部最优 [
图1. 飞蛾靠近火焰的螺旋飞行途经
因此,MFO算法选择螺旋函数来对飞蛾空间位置进行更新,并在飞行的优化过程中有以下原则:1) 螺旋的初始点是飞蛾的初始化空间位置,最后一点为火焰的最佳空间位置;2) 螺旋的波动范围不可以超出搜索空间;3) 在火焰周围,飞蛾能够随着t(t为[−1, 1]之间的随机数)的变化从而收敛到任何点,t越小代表离火焰的距离越近;4) 当飞蛾逐渐靠近火焰时,火焰两侧的位置更新频率随之增加。MFO算法数学模型的原理描述如下 [
设定待优化问题的候选解为飞蛾所处空间位置,利用式(1)矩阵表示飞蛾种群规模为n、优化问题维度为d的飞蛾所处的空间位置;利用式(2)矩阵记录飞蛾个体适应度值。MFO算法中的另一关键部分则是火焰。其矩阵与飞蛾矩阵类似,表示为式(3),并利用式(4)矩阵记录火焰适应度值。
M = [ m 1 , 1 ⋯ m 1 , d ⋮ ⋮ m n , 1 ⋯ m n , d ] ;(1)
O M = [ O M 1 ⋯ O M n ] T 。 (2)
F = [ F 1 , 1 ⋯ F 1 , d ⋮ ⋮ F n , 1 ⋯ F n , d ] ; (3)
O F = [ O F 1 ⋯ O F n ] T 。 (4)
式中:n为飞蛾种群规模;d为优化问题维度。在这里,飞蛾和火焰均为候选解,其区别在于二者位置的更新方式。飞蛾是在搜索空间附近移动的搜索动因,而火焰是当前迭代所获得的最佳位置,即通过不断更新火焰位置来获得最佳位置(候选解)。因此,MFO算法可定义为:
MFO = ( I , P , K ) 。 (5)
式中:I为随机生成的飞蛾种群规模和相应的适应值函数值;P为飞蛾在搜索空间移动的函数,其为M矩阵和位置更新返回值;K为终止条件是否满足的判别函数。
用数学模型描述飞蛾—火焰位置更新如下:
M i = S ( M i , F j ) 。 (6)
式中: M i 表示第i只飞蛾位置; F j 表示第j个火焰;S为螺旋函数。
定义用于模拟飞蛾螺旋飞行路径的MFO算法表达式如下:
S ( M i , F j ) = D i e b t cos ( 2 π t ) + F j 。 (7)
式中: D i 为第j个火焰到第i只飞蛾的距离,表示为 D i = | F j − M i | ;b为螺旋形状常数;t为[−1, 1]之间的随机数。
为保证MFO算法获得较快的收敛速度,提出自适应火焰数量更新机制,即利用在迭代过程中自适应地减少火焰的数目。其公式为:
flameno = round ( N − l ⋅ N − 1 T ) 。 (8)
式中:l为当前迭代次数;N为最大火焰数量;T为最大迭代次数。
从式(7)可得飞蛾的下一个位置被定义为一个火焰;参数t定义了飞蛾的下一个位置应该接近的火焰(
MFO-LSSVM模型预测流程如图2所示。
图2. MFO-LSSVM模型算法流程图
步骤一:初始化参数。设定MFO的最大迭代次数l、飞蛾和火焰种群规模sizepop等参数,随机产生初始解。
步骤二:初始计算。将初始飞蛾群代入LSSVM模型计算并记录适应度函数,寻找当前最优个体并将其保存进入火焰适应度矩阵,判断是否满足终止条件,满足则转至步骤四。适应度函数为预测值与实际值的均方根误差:
RMSE = ∑ i = 1 n ( l i − l ^ i ) n (9)
式中, l i 和 l ^ i 分别实际季度船舶交通流量和训练船舶交通流量输出值,n为训练样本的数量。
步骤三:迭代过程。根据式(8)更新火焰数量;计算飞蛾与火焰之间的距离,利用式(7)对飞蛾和火焰的位置进行更新并重新计算适应度函数值,利用式(2)、式(4)分别保存飞蛾及火焰空间位置,并寻找当前最优飞蛾个体,并与前次保留位置进行比较和取舍,判断是否满足终止条件,满足转至步骤四,否则令 l = l + 1 ,并执行步骤三。
步骤四:算法终止。得到最佳适应度 S i ,输出最优个体值和全局极值,并将全局极值代入LSSVM模型用于船舶交通流量预测,算法结束。
选取广东省2010年第1季度到2017年第1季度共29个季度的船舶交通流量,原始数据分布如图3所示,这些船舶交通流量的季度数据均值为743,980艘,最大为872,627艘,最小为576,308艘,由图可以看出数据波动幅度较大,同时这些季度数据在一年里的变化情况存在相似性,即存在季节性波动特征。
图3. 广东省船舶交通流量分布图
通过实际调研以及科技资料查阅,发现区域经济、船舶、港口等均能够影响船舶交通流量。通过分析各个因素对于船舶交通流量的影响程度,本文从宏观和微观角度选取广东省GDP、广东省进出口贸易额、广东省货物吞吐量、广东省旅客吞吐量、广东省船舶总载重量作为主要影响因素来对广东省船舶交通流量进行预测。同时选取FOA-LSSVM模型、PSO-LSSVM模型和GA-LSSVM模型来进行结果和方法有效性分析。
在对LSSVM进行训练前对数据进行归一化处理,避免数据存在量纲问题而导致训练错误,归一化
公式为 z = ( x − x min ) / ( x max − x min ) ,其中 x max 和 x min 是每一项输入数据和输出数据的最大值和最小值。根
据前面的影响因素分析结果,以一组影响因素数据和船舶交通流量数值作为模型的输入和输出,则所有的输入数据可处理为 5 × 29 的矢量,所有的输出数据为 1 × 29 的矢量。基于LSSVM模型对样本数据进行训练时,将数据分为两组:训练组和验证组,两组数据占全部样本比例约为90%和10%。按此比例,在29组数据中选择26组数据作为训练数据,3组作为检验数据。
采用训练组数据对MFO-LSSVM进行训练。核函数和LSSVM内部参数C和 σ 作为影响LSSVM预测精度的主要变量,在训练过程中,因为目前没有权威的方法来确定最佳的核函数,故本文按照一般规律使用RBF径向基核函数,另外使用MFO算法对模型内部参数 C , σ 进行优化,对于每组内部参数得到的支持向量机,都采用前文所述的均方根误差对预测后的流量结果进行适应度计算,从而来检验LSSVM的训练效果。本文设定MFO算法的迭代次数 l = 100 ,因为优化对象为模型内部参数C和 σ ,故问题维
度为2,飞蛾和火焰的群体规模设置为100,空间的上下界设置为 [ l b , u b ] = [ − 1000 , 1000 ] 。
经过MFO对LSSVM内部参数的优化调整,模型适应度变化如图4所示,然后以检验数据的输入数据进行模型输入,得到模型预测结果并与检验数据的输出数据进行结果比较,比较预测精度,并采用此预测模型对将这26组训练数据进行重新拟合,这29组数据的预测值和实际值的拟合效果如图5所示。
图4. MFO-LSSVM迭代图
图5. MFO-LSSVM预测结果图
可以看出MFO-LSSVM对检验组的广东省船舶交通流量具有良好的预测效果,同时对26组训练数据能够基本实现0误差,通过预测结果可得,模型在迭代过程中很快就实现基本收敛,波峰和波谷的吻合度很高,说明此模型在解决复杂非线性问题上具有优势。
为了评估MFO-LSSVM模型对于广东省船舶交通流量的预测效果,本文采用FOA-LSSVM模型、PSO-LSSVM模型和GA-LSSVM模型来进行对比预测,并采用一些相同的指标对模型预测效果进行比较。
LSSVM模型的内部参数都由相应的算法进行模型优化。迭代前对相应优化算法的参数进行设置,FOA如下设置: maxgen = 100 , sizepop = 100 , ( X _axis , Y _axis ) ⊂ ( − 1000 , 1000 ) ;PSO算法如下设置: maxgen = 100 , swarmsize = 100 , particle_size = 2 ,
图6. FOA-LSSVM迭代图
图7. PSO-LSSVM迭代图
图8. GA-LSSVM迭代图
图9. FOA-LSSVM预测结果图
图10. PSO-LSSVM预测结果图
图11. GA-LSSVM预测结果图
季度 | 实际值 | MFO-LSSVM | FOA-LSSVM | PSO-LSSVM | GA-LSSVM |
---|---|---|---|---|---|
2016年3季度 | 645,568 | 666,650 | 672,530 | 670,421 | 702,839 |
2016年4季度 | 698,378 | 740,267 | 744,461 | 742,296 | 661,123 |
2017年1季度 | 638,797 | 602,799 | 616,566 | 611,967 | 568,828 |
表1. 模型预测结果
模型 | MFO-LSSVM | FOA-LSSVM | PSO-LSSVM | GA-LSSVM |
---|---|---|---|---|
MAPE | 0.4634 | 0.7006 | 0.5771 | 0.8809 |
RMSE(104) | 1.0900 | 1.0940 | 1.0958 | 1.1632 |
总误差 | 0.1706 | 0.1876 | 0.1802 | 0.8402 |
开始收敛代数 | 20 | 77 | 71 | 11 |
表2. 模型相关指标结果
由适应度函数和收敛代数比较可得,MFO-LSSVM在收敛速度和收敛结果上效果明显,同时MFO-LSSVM模型的MAPE、RMSE和总误差指标都明显小于其他三个模型,这也显示出MFO全局启发式算法在LSSVM模型优化上的优越性,同时模型的预测结果也相对更为精确,因此,本文提出的MFO-LSSVM相比于本文提出的其他三种模型能够更为精确地进行船舶交通流量预测。
本文针对船舶交通流量数据存在的波动性和随机性等特点,从流量影响因素的角度提出了一种飞蛾火焰优化算法–最小二乘支持向量机预测模型,通过广东省船舶交通流量数据进行实证分析,结果表明本文建立的MFO-LSSVM模型并且相对于FOA-LSSVM、PSO-LSSVM、GA-LSSVM模型具有更好的预测性能和预测效果。MFO-LSSVM模型综合了基于影响因素的预测方法和基于历史数据的预测方法的优势,不仅可以考虑船舶交通流量历史数据规律特性,还能够考虑区域经济、港口条件等因素对船舶交通流量的影响,提高了船舶交通流量预测效率和预测精度。
本预测方法也有进一步改进的空间,下一步将在飞蛾和火焰的匹配机制上进行创新,避免算法过早陷入局部最优。
国家重点研发计划资助(2018YFB1600400)。
朱 姗,孙立谦. 基于MFO-LSSVM的船舶交通流量预测模型Prediction Model of Ship Traffic Flow Based on MFO-LSSVM[J]. 交通技术, 2020, 09(04): 279-288. https://doi.org/10.12677/OJTT.2019.94034