基于机器学习的马尾松毛虫发生面积预测模型
2019-06-12庞永华冀小菊
庞永华,冀小菊
(1.河南省上蔡县森林病虫害防治检疫站,河南 上蔡 463800;2.河南省上蔡县林业技术推广站,河南 上蔡 463800)
马尾松毛虫(Dendrolimuspunctatus)属鳞翅目(Lepidoptera)、枯叶蛾科(Lasiocampidae),为我国南方18个省区的重要害虫,主要危害马尾松,是我国常发性森林害虫[1]。该害以幼虫取食松针,暴发成灾时,数日内可将大面积连片的松林针叶吃光,远看焦黄、发黑,如同火烧一样,严重影响树木生长,造成松树枯死[2]。因此,加强马尾松毛虫发生趋势预测预报研究,在其大发生之前进行控制,可以把对松林的危害损失降低到最小程度。
马尾松毛虫的发生及其种群数量变化与气象因子和林分结构有关[2-4],若不考虑林分因素,马尾松毛虫的发生量和发生面积主要与气象因子有关。为此,很多学者利用气象因子,通过线性回归[5]、判别分析[6]、马尔科夫链[7]等方法对马尾松毛虫的发生量和发生面积进行了预测,这些方法多属于线性预测方法,实际上害虫的发生与气象因子的关系为复杂的非线性关系[8,9],故探讨预测精度更高的非线性预测方法非常重要。
近年来,很多学者利用机器学习模型建立了害虫发生量与气候因子的非线性模型,预测精度比传统的线性预测模型高[10-17]。对于马尾松毛虫发生面积的预测,很多学者运用人工神经网络模型进行预测,预测精度优于线性回归模型[14-18]。但是运用深度学习、随机森林、支持向量机等机器学习模型对马尾松毛虫的发生面积的预测并选择最优模型相关报道较少。
1 材料与方法
1.1 数据来源
本研究采用的20组马尾松毛虫发生面积数据和气象数据来自陈绘画等学者的研究[2],其中马尾松毛虫发生面积数据资料来自浙江省仙居县森林病虫防治站,气象资料来自浙江省仙居县气象局。
1.2 预报因子的选择
对马尾松毛虫发生面积的8个气象预测因子:当年2月下旬平均气温(x1)、当年3月上旬平均气温(x2)、当年2月中旬相对湿度(x3)、上年10月中旬降水量(x4)、上年9月中旬日照时数(x5)、上年6月上旬最低气温(x6)、上年8月中旬最低气温(x7)、上年12月中旬最低气温(x8)进行逐步线性回归分析[2],最终选择3个进入逐步回归模型的气象因子:x2、x5和x8作为线性模型、随机森林、支持向量机和深度学习模型建模的自变量,预测马尾松毛虫的发生面积。用前18个年份的数据作为训练集,构建模型,后两年的数据作为测试集,验证模型的精度。
1.3 选用的模型预测方法
1.3.1 多元线性回归 多元线性回归是利用气象因子预测虫害的常用方法[3,5]。采用R软件中的lm函数建立当年3月上旬平均气温(x2)、上年9月中旬日照时数(x5)和上年12月中旬最低气温(x8)3个气象因子与马尾松毛虫发生面积(y)的多元回归线性模型。
1.3.2 随机森林模型 随机森林(random forest)模型是一种基于分类树的机器学习算法[8-10],即在变量(列)的使用和数据(行)的使用上进行随机化,生成很多分类树,再总分分类树的结果构建模型。采用R软件中的randomForest程序包构建随机森林模型,ntree=200。
1.3.3 支持向量机模型 支持向量机(support vector machine,SVM)的基本思想是通过非线性映射将数据映射到高维空间特征空间,然后在该空间进行线性回归,让所有样本点的总偏差达到最小,进而提高模型的预测能力[8-9,10,12],在诸多机器学习模型中因其准确高效而备受关注。采用R软件中的e1071软件包的SVM构建支持向量机模型。
1.3.4 深度学习模型 深度学习(deep learning)是在神经网络模型基础上建立的预测精度更高的机器学习模型之一,该模型可以逼近任意的非线性函数,能够处理系统内难以解析的规律型,具有良好的泛化能力[19]。采用R软件中的h2o程序包建立深度学习模型,设置隐含层数为3,各层的节点数分别为10、8和8,,训练次数为500次,训练误差为1×10-6。
1.4 模型评价方法
1.4.1 均方根误差 用均方根误差(Root mean square error, RMSE)作为指标来衡量多元线性回归、随机森林、支持向量机和人工神经网络4个模型的性能[11]。RMSE的计算公式如下:
(1)
公式(1)中:Xa,i为实测值,Xb,i为模型预测值,n为预测样本数。
1.4.2 预测准确率 预测准确率(PA, %)[17,18]的计算公式如下,式中的参数含义如公式(1)所示。
(2)
2 结果与分析
2.1 模型拟合
选择18组数据,分别采用多元线性回归、随机森林、支持向量机和深度学习构建模型,通过模型的决定系数、RMSE和残差来比较所建的4个模型的性能。由图1可知,4个模型的决定系数R2的大小顺序为深度学习(0.9901)>支持向量机(0.9617)>随机森林(0.9584)>多元线性回归(0.8861);均方根误差RSME的大小顺序为多元线性回归(0.5493)>随机森林(0.4269)>支持向量机(0.3275)> 深度学习(0.00453)。说明多元线性回归模型的拟合效果最差,3个机器学习模型的拟合效果均优于多元线性模型,其中深度学习模型的拟合效果最好,其次为支持向量机模型。
图2为4个模型预测值与实际值相比较的误差,与3个机器学习模型相比,多元线性回归模型的预测值误差异常点较多;其次为随机森林模型;支持向量机模型预测值误差异常点较少,精度较高;深度学习模型预测值与实测值差异很小,误差点几乎均位于零值线上,说明深度学习模型的拟合精度最高。
图1 预测马尾松毛虫发生面积
图2 4种模型预测马尾松毛虫发生面积误差比较
2.2 模型预测与验证评估
把预留的2001和2002年数据代入4个模型中,对4个模型的预测精度进行验证比较(表1)。由表1可知,多元线性回归模型对2001和2002年马尾松毛虫发生面积的预测值误差均较大,两年的平均预测准确率最低,仅为45.61%;深度学习模型预测值误差最小,两年马尾松毛虫发生面积平均预测准确率最高,为99.27%;其次为支持向量机模型,平均预测准确率为92.13%。
表1 4种机器学习模型对马尾松毛虫发生面积的预测效果比较
3 结论与讨论
本研究表明,传统的多元线性模型对马尾松毛虫发生面积的预测拟合度和预测误差较大,3种机器学习模型对马尾松毛虫发生面积的预测效果均优于传统的多元线性模型,这与很多学者的研究结果一致[2, 11, 14-17]。由此可见,虽然所选择的预报因子一样, 但由于气象因子与森林害虫的关系并非单纯的线性关系[2, 11, 17],深度学习、支持向量机和随机森林模型利用了各气象因子相互之间及其与害虫发生面积之间的相互关系,进行深度学习训练[11, 17],无论拟合精度和预测效果均比传统的线性回归模型好。
在3种机器学习模型中,深度学习对马尾松毛虫发生面积的预测最为稳健,拟合决定系数和预测准确率最高(R2=0.9901,PA=99.27%),RSME最低,仅为0.1711。证明深度学习模型用于马尾松毛虫发生面积预测更为科学可靠,原因是深度学习具有较强的自适应、抗干扰和容错性等能力,个别学习样本的分量偏差对网络的学习效果影响较小,因此模型的稳定性较好[19]。很多学者利用神经网络模型进行马尾松毛虫发生量和发生面积预测,也取得了满意的预测效果[14-16]。其次,支持向量机模型预测效果也较好(R2=0.9617,RSME=0.3275,PA=92.13%),随机森林模型相对较差。支持向量机与随机森林相比,支持向量机更适合处理小样本问题[8, 9, 17-18]。本研究的样本量较小,可能是造成随机森林模型预测误差较大的原因。建议在今后的研究中,加强对马尾松毛虫长时间序列发生面积、发生量及其气象因子的观测,增大样本量,深入开展机器学习模型在马尾松毛虫发生面积和发生量预测预报中应用的研究,提高马尾松毛虫的预测预报准确率。