计算机系统应用  2019, Vol. 28 Issue (1): 134-139   PDF    
基于改进萤火虫寻优支持向量机的PM2.5预测
范文婷, 王晓     
太原科技大学 计算机科学与技术学院, 太原 030024
摘要:针对现有PM2.5浓度预测误差较大的问题, 提出一种基于改进萤火虫寻优支持向量机的预测模型(IFA-SVM). 该模型引入邻域搜索和可变步长策略改进萤火虫算法, 利用改进FA对SVM的参数C、εγ寻优, 用最优参数SVM模型预测太原市PM2.5值. 其中邻域搜索策略能为参数优化提供更多更精确的候选解; 可变步长可动态调整算法搜索步长, 加速收敛, 平衡FA的全局和局部搜索能力. 将IFA-SVM预测值与萤火虫算法—支持向量机(FA-SVM)、遗传算法—支持向量机(GA-SVM)、粒子群算法—支持向量机(PSO-SVM)相比较. 结果表明较其他方法, IFA-SVM模型对太原市未来一天和三天的PM2.5值都取得了更精确的预测性能.
关键词: 萤火虫算法    支持向量机    邻域搜索策略    可变步长    参数优化    PM2.5预测    
PM2.5 Forecasting Based on Improved Firefly Optimization SVM
FAN Wen-Ting, WANG Xiao     
School of Computer Science and Technology, Taiyuan University of Science and Technology, Taiyuan 030024, China
Foundation item: Doctorate Fund of Taiyuan University of Science and Technology (20152044)
Abstract: Aiming at the problem of large deviation in existing PM2.5 concentration prediction, a novel model based on Improved Firefly Algorithm optimization SVM (IFA-SVM) was proposed. In this model, two neighborhood search strategies and variable step size mechanism were employed to improve FA. The IFA was applied to optimize the SVM parameters (C, , and ), and an outstanding model was constructed to forecast PM2.5 concentrations in Taiyuan. The neighborhood search strategies can provide better candidate solutions; search step size was dynamically tuned by using variable step size strategy to accelerate convergence and obtain a trade-off between exploration and exploitation. The performance of the proposed IFA-SVM model has been compared with FA-SVM, Genetic Algorithm (GA)-SVM, and Particle Swarm Optimization (PSO)-SVM. Experimental results show that the proposed IFA-SVM model has achieved more accurate performance for PM2.5 forecasts in 1 day ahead and 3 days ahead compared to other method.
Key words: Firefly Algorithm (FA)     Support Vector Machine (SVM)     neighborhood search strategies     variable step size     parameter optimization     PM2.5 forecasting    

作为雾霾的主要元凶之一, PM2.5对人类生活、身心健康、经济发展等都造成了严重影响[1,2]. 如何高效、准确地预测PM2.5值, 进而制定科学合理的雾霾防控方案具有重要意义.

目前, 常用的PM2.5预测方法包括回归模型[35]、人工神经网络[68]、支持向量机[9,10]等. 其中, 支持向量机(Support Vector Machine, SVM)以其强大的学习泛化能力, 结构风险小的特点, 在小样本、非线性预测领域取得了良好的应用效果. 在实际应用中, SVM参数选择直接影响预测性能, 找到一个合适的算法对SVM参数寻优至关重要. 常用SVM参数优化方法包括: 遗传算法 (Genetic Algorithm, GA)、粒子群算法(Particle Swarm Optimization, PSO)、萤火虫算法(Firefly algorithm, FA)等. 如朱霄珣等[11]使用GA优化SVM参数, 建立风速预测模型. 戴李杰等[12]将GA的变异因子引入到PSO中对SVM参数寻优建立未来24小时PM2.5滚动预报模型. 杨孟英[13]使用FA优化SVM参数, 进行中文文本分类. 相比于GA和PSO, FA结构简单、调节参数少, 易于计算, 能更好地平衡全局和局部性能[1416], 但标准FA也存在缺陷, 如迭代后期收敛速度慢, 固定步长造成振荡现象等[1719]. 为此, 本文对标准FA进行改进, 利用改进FA对SVM参数寻优, 构建IFA-SVM的PM2.5预测模型, 用此模型预测太原市未来一天和三天的PM2.5含量, 分析该模型用于PM2.5浓度预测的可行性和高效性.

1 PM2.5预测原理

PM2.5预测是依据气象条件、污染源等因素和历史数据建立数学模型来预测未来PM2.5值, 表示为如下非线性关系:

$y = f\left( {{x_1}, {x_2}, \cdots, {x_n}} \right)$ (1)

其中, $\left\{ {{x_1}, {x_2},\cdots, {x_n}} \right.\} $ 为影响因子, $n$ 为影响因子个数, $f\left( {} \right)$ 为预测模型, $y$ 为PM2.5预测值.

由于PM2.5是气象条件、污染源、地理空间等多种因素共同作用的结果[20], 呈现高度非线性, 本文使用SVM来预测PM2.5值.

2 算法理论基础 2.1 SVM基本原理

SVM基本思想是针对PM2.5非线性样本, 引入径向基(Radial Basis Function, RBF)核函数, 将样本映射到高维空间, 在高维空间求解超平面, 使得两类样本的间隔最大[21], 即求解如下约束优化问题:

$\mathop {\min }\limits_{w, b, \xi } \frac{1}{2}{w^{\rm T}}w + C\sum\limits_{i = 1}^i {{\varepsilon _i}} $ (2)

其中, $C$ 是惩罚参数, 它控制对错分样本的惩罚程度. RBF核函数表达式为:

$K({x_i}, {x_j}) = \exp ( - \gamma {\left| {{x_i} - {x_j}} \right|^2})$ (3)

因此影响SVM性能的主要参数即为C $\varepsilon $ $\gamma $ , 本文用改进萤火虫算法来优化SVM参数.

2.2 标准FA基本原理

FA受自然界萤火虫生物特性启发[22], 其对SVM参数优化思想为:

将所有SVM可选参数模拟为萤火虫个体, 将优化过程看作对最优个体的寻找, 即通过个体的吸引和位置移动实现目标参数寻优, 在迭代过程中用好的可行解淘汰较差可行解, 直到得到最优解, 即亮度最高的萤火虫的位置即为最优参数.

算法涉及两个因素, 萤火虫的发光亮度 $I$ 和相对吸引度 $\beta $ :

$I = {I_0} \times {e^{ - \gamma {r_{ij}}}}$ (4)
$\beta = {\beta _0} \times {e^{ - \gamma {r_{ij}}}}^{^2}$ (5)

其中, ${I_0}$ 为萤火虫的最大发光亮度, 即 $r = 0$ 处的亮度; ${\beta _0}$ 为最大吸引度, 即 $r = 0$ 处的吸引度; $\gamma $ 为光强吸收系数; ${r_{ij}}$ 为萤火虫ij之间的欧式距离.

寻优过程中萤火虫i被吸引向萤火虫j移动的位置更新公式为:

${x_i} = {x_i} + \beta \times ({x_j} - {x_i}) + \alpha \times \left({{rand}} - \frac{1}{2}\right)$ (6)

其中, ${x_i}$ , ${x_j}$ 为萤火虫ij所处的位置, $\alpha $ 为步长因子, 是[0, 1]上的常数, ${{rand}}$ 为[0, 1]上服从均匀分布的随机因子.

FA主要步骤包括:

(1)根据目标函数计算萤火虫的亮度;

(2)亮度较暗的萤火虫按公式(6)向较亮的萤火虫移动;

(3)对萤火虫按亮度值从大到小排序, 找到最亮的萤火虫;

(4)重复迭代, 直到达到最大迭代次数.

2.3 基于邻域搜索策略的改进FA

标准FA迭代中亮度较暗的萤火虫按公式(6)向较亮的萤火虫移动, 当迭代后期亮度相同时, 萤火虫将随机运动, 此时收敛速度下降且很难找到最优解. 同时若萤火虫个体搜索半径内没有更亮个体, 萤火虫也将随机运动, 此时最优亮度为搜索半径内局部最优而非全局最优, 算法搜索能力下降, 精度较差. 根据文献[19], 设计两种邻域搜索策略为参数寻优提供更多更精确的候选解, 帮助萤火虫跳出局部最优并加速收敛, 具体邻域搜索策略为:

${x_i}^1 = {\lambda _1} \times {x_i} + {\lambda _2} \times pbest + {\lambda _3} \times ({x_{i1}} - {x_{i2}})$ (7)

其中, ${x_{i1}}^{}$ ${x_{i2}}^{}$ ${x_i}^{}$ ±2阶半径内随机选取的两个萤火虫, $pbest$ 是第t次迭代中最大的目标函数值, ${\lambda _1}$ ${\lambda _2}$ ${\lambda _3}$ 是[0, 1]上的常数, ${\lambda _1} + {\lambda _2} + {\lambda _3} = 1$ , 此邻域搜索策略在当前萤火虫 ${x_i}^{}$ ±2阶半径内寻找候选解.

${x_i}^2 = {\lambda _4} \times {x_i} + {\lambda _5} \times gbest + {\lambda _6} \times ({x_{i3}} - {x_{i4}})$ (8)

其中, ${x_{i3}}^{}$ ${x_{i4}}^{}$ 是从整个种群中随机选取的两个萤火虫, $gbest$ 是目前为止全局最大的目标函数值, ${\lambda _4}$ ${\lambda _5}$ ${\lambda _6}$ 是[0, 1]上的常数, ${\lambda _4} + {\lambda _5} + {\lambda _6} = 1$ , 此邻域搜索策略在当前迭代次数全局范围内选择候选解.

如果迭代过程中, 第t次迭代萤火虫亮度值与t-1次亮度值相等, 执行上述两种策略, 找到其它两个候选解 ${x_i}^1$ ${x_i}^2$ , 然后从 ${x_i}^{}$ ${x_i}^1$ ${x_i}^2$ 中选择最亮的作为 ${x_i}^{}$ . 显然邻域搜索策略可以提供更多更精确的候选解, 提高萤火虫算法的搜索能力并加速收敛.

2.4 基于可变步长的改进FA

标准FA中, 步长因子 $\alpha $ 是固定的, 固定步长使得算法早期萤火虫个体不能以最快速度靠近亮度高的伙伴; 而后期萤火虫间亮度差值减小, 位置比较靠近, 固定步长又使得萤火虫个体始终无法向最亮的那只进一步移动, 产生振荡, 算法精度较差. 根据文献[20], 采用可变步长因子 $\alpha $ , 在迭代初期, 采用较大 $\alpha $ 探索新的搜索空间, 提高全局搜索能力且加速收敛; 而在后期用较小 $\alpha $ 进行局部开采, 避免振荡. 可变 $\alpha $ 可动态调整算法搜索步长来平衡FA的全局搜索和局部开采能力, 具体 $\alpha $ 的调整公式为:

$\alpha = 0.4/(1 + \exp (0.015 \times (t - maxG)/3))$ (9)

其中, $t$ 为当前迭代次数, $maxG$ 为最大迭代次数.

3 萤火虫寻优支持向量机(FA-SVM)PM2.5预测模型 3.1 IFA-SVM PM2.5预测原理

IFA-SVM PM2.5预测过程如下:

(1)收集太原市PM2.5浓度实验数据, 划分训练集和测试集, 并归一化预处理;

(2) IFA-SVM参数迭代寻优

1)初始化算法各基本参数, 随机分布萤火虫;

2)计算萤火虫的目标函数值, 以SVM对训练集的PM2.5预测性能作为目标函数值;

3)对萤火虫的目标函数值进行亮度排序, 找到当前最优的目标函数值及其对应萤火虫, 并根据公式(6)更新萤火虫;

4)如果迭代过程中, 第t次迭代目标函数值与t–1迭代目标函数值相等, 执行2.3节中两种邻域搜索策略;

5)若达到最大迭代次数, 或满足停止迭代的条件, 则转至步骤6), 否则转至步骤2)继续迭代;

6)输出最大目标函数值及其对应的萤火虫, 即得到最优参数.

(3)使用最优参数预测测试集PM2.5值, 并将预测结果反归一化, 得到实际PM2.5预测值, 输出结果.

具体流程如图1所示.

图 1 IFA-SVM PM2.5预测流程

3.2 数据收集及预处理

统计发现, 太原市秋冬季节出现雾霾频率更高, 综合考虑气象条件和污染源, 收集太原市2015.10~2016.3、2016.10~2017.3和2017.11的湿度、露点、气压、风速、O3、CO、NO2、PM10共8项PM2.5影响因子进行建模. 具体如表1所示, 其中, 2015.10~2016.3、2016.10~2017.3作为训练样本, 2017.11作为测试样本.

为了消除各影响因子量纲不同对预测速度和精度的影响, 建模之前进行归一化预处理, 归一化公式为:

$x_i' = \left( {{x_i} - {x_{\min }}} \right)/\left( {{x_{\max }} - {x_{\min }}} \right)$ (10)

其中, ${x_i}$ 为影响因子初始值, $x_i'$ 为归一化后的值, ${x_{\max }}$ ${x_{\min }}$ 表示每个因子的最大和最小值.

表 1 实验数据

3.3 评价标准

采用平均绝对误差(MAE)、均方根误差(RMSE)对预测结果进行评价, 计算公式如下:

$MAE = \frac{1}{N}\sum\limits_{i = 1}^N {\left| {{O_i} - {P_i}} \right|} $ (11)
$RMSE = \sqrt {\frac{1}{N}{{\sum\limits_{i = 1}^N {\left( {{O_i} - {P_i}} \right)} }^2}} $ (12)

其中, ${O_i}$ 为观察值, 即实际值; ${P_i}$ 为预测值.

3.4 参数优化

为了验证IFA的性能, 选取Ackley函数、Sphere函数进行仿真测试. 种群数量设置为: $N$ =50, $maxG$ =200, $\gamma $ =0.01, 初始步长 $\alpha $ =0.2. 每个函数独立运行30次, 得到FA、IFA的仿真曲线, 如图2图3所示.

图 2 算法对Ackley函数的收敛曲线对比

图2图3看到, 针对函数Ackley与Sphere, IFA收敛速度更快, 精度更高.

为了比较性能, 分别用标准FA、GA、PSO、IFA选取SVM参数, 各优化算法得到的SVM参数如表2所示.

图 3 算法对Sphere函数的收敛曲线对比

表 2 优化得到的各SVM模型参数

3.5 实验结果与分析 3.5.1 IFA-SVM实验结果与分析

利用最优IFA-SVM参数预测2017年11月太原市两种PM2.5值:

(1)预测未来一天PM2.5浓度值;

(2)预测未来第三天PM2.5浓度值.

实验得到最终预测值, 将实际值与IFA-SVM的预测值进行对比, 结果如图4所示.

图 4 IFA-SVM PM2.5预测结果对比图

图4的结果显示, 预测太原市2017年11月的PM2.5浓度, 得到未来一天的预测结果与实际非常接近, 而未来第三天稍有偏差, 但整体变化趋势相同, 预测值与实际值的曲线拟合度很高. 此结果表明IFA-SVM模型是有效的, 该模型可以帮助预测太原市PM2.5值. 而预测未来第三天的精度比未来一天的精度低, 这主要是由于长期预测会对短期的预测错误进行积累.

3.5.2 实验结果比较与分析

分别用模型GA-SVM、PSO-SVM、FA-SVM和IFA-SVM对PM2.5浓度进行预测, 预测误差结果如表3.

表3可知, 使用四个模型对太原市2017年11月的PM2.5未来一天和第三天浓度预报后, 得到的预测误差从低到高依次是IFA-SVM、FA-SVM、PSO-SVM. 即与模型GA-SVM、PSO-SVM相比, FA-SVM的预测结果更准确, 偏离实际值较小, 而与FA-SVM相比, IFA-SVM误差更小, 即IFA-SVM模型的MAERMSE都是4个预测模型中最低的, 其中性能最好的IFA-SVM预测未来一天的PM2.5浓度值, MAERMSE分别为3.85和4.07.

表 3 IFA-SVM、FA-SVM、GA-SVM和PSO-SVM预测结果性能比较

综合考虑3.4节迭代曲线和3.5预测误差结果, 可以看到与标准FA相比, IFA收敛速度更快, 精度更高, 同时IFA-SVM PM2.5预测值也最接近实际值.

4 结论与展望

针对PM2.5与影响因子间的高度非线性关系, 提出一种基于改进萤火虫寻优支持向量机的PM2.5预测模型IFA-SVM, 并以太原市未来一天和第三天的PM2.5值作为实验样本进行模型测试, 并对比GA-SVM、PSO-SVM、FA-SVM的预测效果, 经实验得到如下结论:

(1) IFA-SVM模型对未来一天和三天的PM2.5值都可以有效预测, 由于预测误差会不断积累, 一天的预测精度更高.

(2) FA能够跳出局部最优且计算简单, FA-SVM模型比GA-SVM和PSO-SVM方法预测更准确.

(3)引入邻域搜索和可变步长策略改进FA, 可加速算法收敛, 平衡局部和全局性能, 使得IFA-SVM模型预测结果更接近实际的PM2.5变化趋势, 为雾霾预测提供了一种新思路.

由于PM2.5浓度值不仅与本文所选因子有关, 还受到城市资源能耗、道路布局、空间位置等多种因素影响. 在今后的研究工作中, 尝试将这些信息和技术应用进来, 进一步提高PM2.5预测性能.

参考文献
[1]
孙志豪, 崔燕平. PM2.5对人体健康影响研究概述 . 环境科技, 2013, 26(4): 76-78.
[2]
周艳军. PM2.5的污染危害及预防对策 . 产业与科技论坛, 2013, 12(11): 114-115. DOI:10.3969/j.issn.1673-5641.2013.11.064
[3]
Jian L, Zhao Y, Zhu YP, et al. An application of ARIMA model to predict submicron particle concentrations from meteorological factors at a busy roadside in Hangzhou, China. Science of the Total Environment, 2012, 426: 336-345. DOI:10.1016/j.scitotenv.2012.03.025
[4]
郎艺超, 肖璐, Christakos G. 基于SARIMA模型和普通Kriging法对杭州市主城区PM2.5短期预测和制图 . 环境科学学报, 2018, 38(1): 62-70.
[5]
程兴宏, 刁志刚, 胡江凯, 等. 基于CMAQ模式和自适应偏最小二乘回归法的中国地区PM2.5浓度动力-统计预报方法研究 . 环境科学学报, 2016, 36(8): 2771-2782.
[6]
Pérez P, Trier A, Reyes J. Prediction of PM2.5 concentrations several hours in advance using neural networks in Santiago, Chile . Atmosphere Environment, 2000, 34(8): 1189-1196. DOI:10.1016/S1352-2310(99)00316-7
[7]
Feng X, Li Q, Zhu YJ, et al. Artificial neural networks forecasting of PM2.5 pollution using air mass trajectory based geographic model and wavelet transformation . Atmospheric Environment, 2015, 107: 118-128. DOI:10.1016/j.atmosenv.2015.02.030
[8]
艾洪福, 石莹. 基于BP人工神经网络的雾霾天气预测研究. 计算机仿真, 2015, 32(1): 402-405, 415. DOI:10.3969/j.issn.1006-9348.2015.01.085
[9]
陈俏, 曹根牛, 陈柳. 支持向量机应用于大气污染物浓度预测. 计算机技术与发展, 2010, 20(1): 250-252. DOI:10.3969/j.issn.1673-629X.2010.01.065
[10]
Wu ZH. SVR smoggy forecast model based on data mining. International Journal of Science, 2015, 2(9): 120-125.
[11]
朱霄珣, 徐搏超, 焦宏超, 等. 遗传算法对SVR风速预测模型的多参数优化. 电机与控制学报, 2017, 21(2): 70-75.
[12]
戴李杰, 张长江, 马雷鸣. 基于机器学习的PM2.5短期浓度动态预报模型 . 计算机应用, 2017, 37(11): 3057-3063.
[13]
杨孟英. 基于支持向量机的中文文本分类研究[硕士学位论文]. 保定: 华北电力大学, 2017.
[14]
杨海, 丁毅, 沈海斌. 基于改进萤火虫算法的SVM核参数选取. 计算机应用与软件, 2015, 32(6): 256-259. DOI:10.3969/j.issn.1000-386x.2015.06.063
[15]
Kanimozhi T, Latha K. An integrated approach to region based image retrieval using firefly algorithm and support vector machine. Neurocomputing, 2015, 151: 1099-1111. DOI:10.1016/j.neucom.2014.07.078
[16]
Ch S, Sohani SK, Kumar D, et al. A support vector machine-firefly algorithm based forecasting model to determine malaria transmission. Neurocomputing, 2014, 129: 279-288. DOI:10.1016/j.neucom.2013.09.030
[17]
王晓静, 彭虎, 邓长寿, 等. 基于均匀局部搜索和可变步长的萤火虫算法. 计算机应用, 2018, 38(3): 715-721.
[18]
Wang H, Cui ZH, Sun H, et al. Randomly attracted firefly algorithm with neighborhood search and dynamic parameter adjustment mechanism. Soft Computing, 2017, 21(18): 5325-5339. DOI:10.1007/s00500-016-2116-z
[19]
Yu SH, Zhu SL, Ma Y, et al. A variable step size firefly algorithm for numerical optimization. Applied Mathematics and Computation, 2015, 263: 214-220. DOI:10.1016/j.amc.2015.04.065
[20]
谢金鑫. 基于数据挖掘的雾霾天气影响因子研究[硕士学位论文]. 成都: 电子科技大学, 2014.
[21]
Zhang CH, Tian YJ, Deng NY. The new interpretation of support vector machines on statistical learning theory. Science in China Series A: Mathematics, 2010, 53(1): 151-164.
[22]
Fister I, Fister Jr I, Yang XS, et al. A comprehensive review of firefly algorithms. Swarm and Evolutionary Computation, 2013, 13: 34-46. DOI:10.1016/j.swevo.2013.06.001