杨鹏飞,孙先波
(湖北民族大学 信息工程学院,湖北 恩施 445000)
道路结冰预测系统对预防或减少道路交通事故的发生具有重要的作用,可以为交通、路政等部门提供技术支持.例如,交通部门可以根据预测系统提供的技术参数对交通进行合理的调度;路政部门也可以根据道路、气象参数确定路面的养护时间和除冰剂的用量,避免除冰剂的浪费和对环境的污染.道路结冰预测系统也能为大众的交通出行提供路况信息,降低交通事故发生率和改善道路交通通行状况等[1].
在道路的结冰预测问题上,国内外学者做了大量的研究.一方面是基于视频照片信息分析建模,该方法存在一些不足,即如果采集路面有汽车等遮挡物会造成识别的准确率不高,另外如果系统图像处理不及时,会导致路况信息更新延误和信息采集不充分等问题.在采用最小波去噪提取路面特征向量的基础上,李颀等[2]利用支持向量机算法搭建基于图像处理的路面结冰预测模型,解决了传统的图像识别提取路面信息不充分的问题.但是,由于该预测模型对图像信息的处理时间过长,导致道路信息上传不及时的问题.
另一方面是基于气象数据和数据处理算法,搭建数据处理分析模型.史达伟等[3]采用C4.5决策树算法构建道路结冰预报模型,将数据抽象处理成规则集,利用构建的结冰规则判断路面情况.但是,决策树算法最大的问题是前级规则的误差会直接影响到结果的准确度,造成模型分类的经验性太高,预测结果准确度误差过大.白永清等[4]利用温度传感器和回归算法搭建了高速桥(路)面的结冰预警系统,但单一的选用温度参数,忽视了其他气象因子对道路结冰情况的影响,使模型的误差较大.董天翔等[5]通过分析道路结冰规律,利用支持向量机、多元线性回归和朴素贝叶斯算法搭建路面低温预测模型,通过对江苏南部路网的数据分析,发现相比较其他算法,支持向量机的预测效果最佳.邱欣等[6]利用支持向量机算法构建以降水量、气温和地表温度为变量的路面结冰预测模型,发现模型具有较高的准确率,展示了支持向量机算法在预测模型方面的优越性.雷建军等[7]利用遗传微粒群算法优化了支向量机的参数和引进其他气象因子综合考虑,搭建了一种用遗传算法优化的支持向量机预测模型,该系统改进了支持向量机算法造成的参数选择误差,提高了模型的准确度.实际道路结冰情况是受多个气象因子综合结果的结果,单一的利用某一个或两个气象因子进行建模会造成模型的通用性和鲁棒性较差.
支持向量机就是构建分类条件将正分类和负分类样本区分开,因此在二分类问题上,支持向量机算法具有独特的优势.但因为其参数选择经验性太强,因此在支持向量机算法搭建的道路结冰预测模型中,不同的经验参数得到的结果会出现较大的误差波动.利用交叉验证算法、遗传算法和粒子群算法对预测模型的经验参数进行寻优优化,可以有效提高预测模型的准确性和鲁棒性.只需要比较不同优化算法下的准确率,就可以得到优化效果最好的预测模型,预测模型的准确率越高,对更好的预防道路交通事故发生的意义越大.
本文气象数据来源于某气象数据中心地面气象站2019-12-07日的逐小时观测资料,从地理上选取贵阳、南昌、长沙、武汉、合肥、郑州、长春、邯郸、济南、石家庄、天津、北京、沈阳、资阳等地气象站的数据资料,数据中心总共有25种特征值,本文选取其中7种作为道路结冰模型的特征值,为保证数据集的科学性,首先对数据集进行错误数据和不良数据的筛选和剔除操作.
支持向量机(support vector machine,SVM)是建立在机器学习上的结构风险最小化的理论,它是Vapnik和Cortest在1995年提出来的,主要用来解决非线性回归和分类问题[8].支持向量机原理图如图1所示,其解决问题的主要思想是通过分类条件,在空间中构造一个决策面将正分类和负分类分离开来并使得正例和负例之间的间隔最大化[9-11].
图1 支持向量机原理图Fig.1 Support vector machine schematic
通过设置分类条件,在数据集空间中构造分类超平面,使得条件不同的正例和负例之间的间隔λ最大化,其中λ可表示为:
(1)
通过间隔最大化原则,在数据集空间中寻找分类超平面,满足支撑向量到分类超平面的间隔最大.
(2)
通过构造拉格朗日函数和对偶原理解决带约束的分类超平面优化问题,分类间隔最大化问题可简化为:
(3)
引入软间隔原理可以减少由于分类条件不充分引起的错分现象,模型可等价为:
(4)
利用训练集数据得到合适的道路结冰分类超平面,完成对道路结冰预测模型的搭建.通过式(5)可以实现对分类超平面的检测,同时,利用测试集数据对已建立的预测模型进行仿真测试,可得到道路结冰预测模型的准确率[12].
(5)
通过分析影响道路结冰的气象条件和收集到的气象数据,确定影响道路结冰的主要影响因素.基于收集的气象数据集和道路结冰预测模型,将复杂的道路结冰问题简化为通过监测道路实时气象数据的数据处理分析问题.支持向量机算法主要是处理二分类问题,因此可以将影响道路结冰的气象因素构成支持向量机的分类条件,构建基于气象数据条件的道路结冰预测模型.
在运用支持向量机算法处理多分类问题上,核心思想主要有两种:一种是通过构造多分类函数,将所有维度的数据归合成一个最优函数,直接实现对多分类问题的求解.另外一种方法是通过分析数据集的共性,将多个二分类函数组合起来,通过逐级分析求解多分类问题[13].
影响道路结冰的气象因子很多,其中最重要的是路面的温度和湿度条件,其他气象因子通过影响这两个气象因子来作用于道路结冰状态的发生[14].气象站总共有25种参数,考虑到所建模型的鲁棒性,本文选取传统的7个气象要素(温度、湿度、气压、风速、风向、降雨量、水汽压)和支持向量机算法对道路结冰条件进行建模研究.模型搭建采用林智仁教授项目组开发的LIBSVM工具箱.LIBSVM工具箱提供了支持向量机算法的源代码,在参数选择上,LIBSVM工具箱提供的默认参数极大的简化了支持向量机算法的使用,模型的整体流程图如图2所示.
图2 模型整体流程Fig.2 Model overall process
第1步:选定特征值.本模型选取7个气象要素作为自变量,因变量则为道路结冰状态,根据函数:
(6)
设道路结冰状态为+1类,反之为-1类.
数据组总共有数据300组,每组样本含有7个特征分量,每一组数据的标签已给出,每一小时测一组,训练集数据训练出来的预测模型,需要用测试集进行检测,得到分类器的性能指标,即准确率.
第2步:数据的筛选与剔除.由于气象站仪器的误差,造成收集的气象数据存在个别的异常和缺失,因此在得到数据后,需要对其中的异常数据进行筛选和剔除.300组数据中剔除异常数据后剩余278组.
筛选完数据后对所使用的数据集进行可视化操作,可以得到数据集的箱式图.由于气压数据和其他数据的幅值相差过大,为了减小误差,需要对数据集进行归一化操作.
第3步:选定训练集和测试集.训练集用来训练预测模型,测试集用来测量预测模型的准确程度.预测模型选用前154组数据作为训练集,后124组数据作为测试集.
第4步:得到训练模型.根据训练集数据的分布特征,在数据集空间中寻找一个决策分类超平面,将道路结冰情况不同的数据组分开.构建支持向量机预测模型的本质就是寻找对训练集数据进行分类的决策超平面.
第5步:检测训练模型.在训练模型搭建好之后,为了得到训练模型的准确程度,需要使用测试集对已经训练好的模型进行测试,测试结果用准确度表示.准确度越高,证明训练模型的分类效果越好,对现实道路结冰情况的预测效果越强.
构建道路结冰预测模型,降雨量、温度和湿度是影响道路结冰气象因素中首先要考虑的3个因素,同时,大气压、风速和风向对预测模型的准确率也有较大的影响.箱式图可以直观的表现出数据的异常情况和平均情况.由于本例选择的特征值较多,因此采用箱式图表示数据特征.数据集的箱式图如图3所示.
图3 数据集的box可视化图像Fig.3 Box visualization of the dataset
从图3可以看出气压的中位数线比较高,主要集中在920~1 000百帕之间,这与所选地点的气象站位置有关.在数据选择的时间里,全国大多数地方的天气较好,降雨量为0.湿度分布较为均匀,风向是统一以某一参考方向为基准方向的测量值,其分布相差较大,其最大值和最小值相差近350度.
在搭建好的支持向量机模型中,选用惩罚因子参数c为5,核函数参数g为0.5.进行仿真,结果准确率为81.6%.得出原始算法下模型预测分类值与实际分类值的比较图如图4所示.
图4 原始算法下模型预测分类值与实际分类值的比较图Fig.4 Comparison of model predicted classification value and actual classification value under the original algorithmm
从图4可知原始预测模型下的预测错分值较大,对道路结冰的预测结果不准确.
将粒子群算法引入本模型可以实现对道路结冰模型最优参数的无限逼近,空间中的每一个粒子代表一组参数,通过空间中粒子的运动,使得粒子不断向最优解逼近,通过对粒子的个体极值和群体极值的追踪计算,使得参数组不断向最优参数组靠拢,最终找到预测模型的最优参数.粒子群算法的主要参数有粒子群规模、个体认知和群体认知.个体认知和群体认知直接决定算法的迭代次数和收敛速度[15-16].为避免过学习和欠学习状态的出现,这里取个体认知参数c1为2.8,群体认知参数为1.3,粒子规模取20[17].经过仿真分析,得到的结果准确度可达 93.600 0%,其适应度曲线如图5所示.
图5 粒子群算法优化下的适应度曲线Fig.5 Fitness curve under particle swarm optimization
由图5可知,在种群的迭代中,当最优的惩罚因子参数为1.002 1,最优的核函数参数为0.010 0时,得出的预测模型准确度可达95.454 0%.测试集124组数据中只有8组被错分,优化后的预测模型准确度可达93.600 0%,与原始不经优化的预测模型相比,粒子群算法的优化作用较为明显.
在寻优优化方法中,交叉验证法是一种常用适用于数据量不大的数据集、能有效避免过学习和欠学习状态出现的优化算法.将交叉验证法引入本模型进行优化主要是防止测试集测试分类模型时出现过大的误差,使得模型的鲁棒性更高、预测模型的分类作用更明显[18-19].决定交叉验证算法优化模型收敛速度和收敛的精度的主要参数是惩罚因子和核函数参数的步进大小.经过仿真实验,优化后模型的准确度可达94.400 0%,仿真结果如图6、图7所示.
图6 交叉验证算法下的支持向量机算法参数优化等高线图Fig.6 Contour map of SVM algorithm parameter optimization under cross-validation algorithm
图7 交叉验证法下的支持向量机算法参数优化结果图Fig.7 Parameter optimization results of SVM algorithm under cross-validation
由图6、7可以看出,当交叉验证法优化后的预测模型惩罚因子参数选为0.757 8,核函数参数选为0.015 6时,模型的预测准确度可达95.454 5%.测试集124组数据中只有7组数据被错分,测试集的分类精度可达94.400 0%.与初始预测模型相比,准确率有了较高的提升.
原始算法下的结果误差较大,原因是惩罚因子c和核函数参数g选用的不合适[20-21].遗传算法从生物学角度实现对支持向量机模型参数的寻优迭代,由初始族群选择参数,再通过变异、交换、选择3个步骤实现对参数的最优化选择,通过对初始族群数量、交叉概率,变异概率和迭代代数的设定,得出最佳的道路结冰模型参数.利用遗传算法对支持向量机算法进行参数最佳的搜索优化.遗传算法对参数的优化程度取决于种群的最大数量、进化代数、交叉概率和变异概率,种群的最大数量代表潜在解在可解空间的分布,进化代数决定潜在解对空间最优解的收敛程度,交叉概率和变异概率都与收敛速度有关[22-23].在本模型中,遗传优化算法的种群最大参数选为20,进化代数参数选为200,惩罚因子参数的取值范围选定为[0,100],核函数参数的变化范围选定为[0,100],交叉概率和变异概率参数都为默认值.通过仿真实验,得到的仿真结果准确度为 95.200 0%,训练集的的仿真准确度最大可达96.103 9%.适应度曲线如图8所示.
图8 遗传优化算法下的适应度曲线Fig.8 Fitness curve under genetic optimization algorithm
由图8可知,在遗传优化算法的进化迭代中,当惩罚因子取51.586 2、核函数参数取0.071 4时,训练集的最大准确度可达96.103 9%.当种群进化到第近20代时,最佳适应度已达到96.000 0%左右.测试集中124组数据仅有6组数据被错分,预测模型的准确度达到95.200 0%.通过比较原始预测模型和遗传优化算法优化的预测模型的准确度,遗传优化算法对原始模型核函数和惩罚因子参数的优化作用明显.
基于气象数据,分析得到影响道路结冰情况的气象因素分类条件,利用支持向量机算法搭建道路结冰预测模型,分别使用交叉验证算法、粒子群算法和遗传算法对预测模型进行参数优化.通过比较原始模型和优化后模型的预测精度,得出由遗传算法优化的预测模型的通用性和准确度更强,更能适用于现实情况中复杂的道路交通安全预测预防情况.优化算法对模型的准确度提升作用明显,提高了交通部门对道路结冰情况的掌握程度,达到了预防和减少道路交通事故发生的效果.
优化算法优化预测模型的本质是通过迭代算法对预测模型核函数和惩罚因子参数进行迭代计算,通过比较迭代结果,得出优化效果最好的模型参数.而使用的遗传算法、粒子群算法和交叉验证法算法的原始参数是根据经验选择,在此基础上下一步的工作可以继续对优化算法进行叠加优化以期达到更高的准确率.