摘要对支持向量机回归(SVR)在害虫预测预报中的应用进行了研究。用一步预测法对1个害虫发生量样本集进行预测,结果表明:SVR在所有参比模型中预测精度最高,具有较强的泛化推广能力,在害虫预测预报领域具有广泛的应用前景。
关键词害虫;预测预报;支持向量机;非线性
中图分类号S431.9文献标识码A文章编号 1007-5739(2009)14-0147-02
传统的害虫预测预报方法如多元回归、聚类分析、判别分析等均是线性方法,然而,在大多数情况下,预报因子与害虫发生之间并不是简单的线性关系,而呈高度的非线性,传统的线性预测方法显然是不适合的。人工神经网络(artificial neural networks,ANN)具有很好的非线性逼近能力,在害虫发生预测中已获得广泛应用,但ANN本身存在基于经验最小化、模型结构难以确定、易于出现过度训练和训练不足、陷入局部最小、对连接权初值敏感、过度依赖设计技巧等诸多缺陷。
1995年提出的支持向量机(support vector machine,SVM)是在统计学习理论基础上发展起来的新一代机器学习算法,是机器学习领域的集大成者[1-3]。它包括分类(suppose vector classification,SVC)和回归(support vector regression,SVR)2大类,最初用于模式识别(SVC),随Vapnik 的不敏感损失函数的引入,已扩展到用于非线性时间序列分析或非线性回归分析(SVR)[1-3]。与ANN等其他学习方法相比,SVM基于结构风险最小,较好地解决了非线性、过学习、维数灾难、局部极小点、小样本等实际问题,泛化推广能力优异[4-6]。SVM的理论和应用研究目前均发展迅速,已应用于许多领域,但在害虫预测预报中的应用几乎没有报道。本文通过实例,对SVM在害虫预测预报中的应用进行了研究。
1SVR基本原理
回归分析又称函数估计,它要解决的问题是:根据给定的样本数据集{(xi,yi)|i=l,…k},其中xi为预报因子值,yi为预报对象值,寻求一个反映样本数据的最优函数关系y=f(x)。这里的最优是指按某一规定的误差函数计算,所得函数关系对样本数据集拟合的“最好”(累计误差最小),SVM 回归中常用ε-不灵敏误差函数(ε≥0)。如果所得函数关系y=f(x)是线性函数,则称线性回归,否则为非线性回归。
SVM基本思想为:首先将输入空间中线性不可分的样本集通过某种非线性函数关系映射到一个高维特征空间(Hilbert空间),以使其在该空间中线性可分,然后在这个新空间中寻找最优线性分类面。SVM起初是用于解决线性可分情况下2类样本的分类问题(SVC),其核心思想是找到一个最优分类超平面w·x+b=0,使2类样本的分类间隔最大化。SVR与SVC相似,但不同的是:SVR的样本点只有一类,所寻求的最优超平面不是使2类样本点分得“最开”,而是使所有样本点离超平面的距离最小,这时样本点都在2条边界线之间,求最优回归超平面同样等价于求最大间隔。对于线性回归问题,给定样本集(xi,yi),其中i=1,…,n;x∈Rd;y∈R,问题变为寻求一个最优超平面,使得在给定精度ε(ε≥0)条件下可以无误差的拟合y,即所有样本点到最优超平面的距离都不大于ε;考虑到允许误差的情况,可引入松弛变量ξ和ξ*≥0以及惩罚参数C>0,其寻求最优回归超平面的问题转化求解如下一个二次凸规划问题:将该优化问题转化成对偶问题后可解得最优回归函数为:f(x)=w·x+b=■(αi-αi*)(x·xi)+b,其中0≤αi,αi*≤C。
仅有少部分样本的Lagrange乘子α不为零,因此决定该最优回归超平面的样本点只能是这些支持向量。对于非线性回归问题,可通过核函数变换将样本映射到一个高维特征空间中用线性回归来解决。通常,特征空间具很高甚至无穷维数,致使空间变换后计算量巨增而面临维数灾难等问题。幸运的是SVM中待解对偶问题只包含一个变换后特征空间内积运算,而这种运算能在原空间中通过核函数来实现。根据Mercer定理可构造系列核函数,常见的核函数有线性核函数、多项式核函数、径向基核函数和双曲正切核函数等[1-3]。
2SVR建模的方法及步骤
使用LIBSVM2.8支持向量机软件包,包含svmscale、svmtrain、svmpredict、gridregression.py等常用程序。svmscale用于对原始数据规格化;svmtrain用于建立预测模型,其参数t=0是线性核函数,t=1是多项式核函数,t=2是径向基核函数,t=3是双曲正切核函数;svmpredict利用svmtrain所建的模型进行预测;gridregression.py用于自动搜索最佳惩罚参数、灵敏度及径向宽度等核函数参数。采用LIBSVM建模的一般步骤是:①按LIBSVM要求的数据格式准备数据集;②svmscale对数据规格化;③选择核函数;④gridregression.py搜索最佳核函数参数;⑤ svmtrain训练建模;⑥svmpredict进行预测[7]。
3实例分析
山东临沂1958~1973年历年第2代大豆造桥虫幼虫发生量与7月下旬平均气温及雨量见表1[7]。由于评价一个预测模型的好坏,应主要考察其预测能力而非回代拟合结果,因此,本实例只进行预测。为避免单个样本预测的偶然性,以最后5年(1969~1973)作为预测样本,在预测第i年时,前i-1年数据作为学习样本参与建模训练,其后续未来年份数据不得参与建模训练;在预测第i+1个样本时,第i个样本加入训练样本(一步预测)。另外,多元线性回归(multiple linear regression,MLR)和时间序列趋势分析(包括一次滑动平均、一次指数平滑、线性回归、二次滑动平均、三次指数平滑等5种模型)作为参比模型进行了预测。预测结果优劣采用均方误差(mean squared error,MSE)作为评价指标:MSE=■,式中,y为真值,■为预测值,n为预测样本数。MLR和时间序列趋势分析(默认参数设置)由DPS6.55给出[8];SVR由LIBSVM2.8给出,原始变量经svmscale规格化到[-1,1],gridregression.py以留一法寻优后建模预测。
第2代大豆造桥虫幼虫发生量一步预测结果如表2所示。从MSE可看出,SVR无论采用哪种核函数(t=2的预测精度最高),预测精度均高于MLR与时间序列趋势,表明SVR具有较强的泛化推广能力。MLR的预测精度远差于SVR,表明样本集属于非线性动态系统,预报因子与发生量之间呈现高度的非线性关系,用线性模型预测是不合适的。
4讨论
选用不同的核函数,SVR的预测精度不同,甚至相差很大,说明核函数的选择对预测的结果影响比较大。目前,核函数及其参数的选择还没有一个统一的模式,只能凭借经验、实验对比、大范围的搜寻来进行,LIBSVM中的gridregress-ion.py只是以n-fold交叉验证(其极限是留一法)在一定范围内对核函数参数进行寻优。SVR另一个缺点是不存在一个解析的表达式,对因子欠缺解释能力。
以上研究表明,SVR应用于害虫预测预报是可行的,是一个值得探讨和应用的方法。对于害虫的长期预报,如果能选择合适的因子和预测模型,不仅可提高预测精度,更能从生物学意义角度探索,揭示隐含在昆虫生态系统内部的某些规律,进一步把握事物发展的未来。
5参考文献
[1] LIANG Y C,SUN Y F. An improved method of support vector machine and its applications to financial time series forecasting[J]. Progress in Natural Science,2003,13(9):696-700.
[2] THISSENA U,BRAKELA R VAN,WEIJERB A P DE,et al.Using support vector machines for time series prediction[J].Chemometrics and Intelligent Laboratory Systems,2003(69):35-49.
[3] 孙德山,吴今培,肖健华.SVR在混沌时间序列预测中的应用[J].系统仿真学报,2004,16(3):519-521.
[4] V VAPNIK. The nature of statistical learning theory[M].New York:Springer Verlag Press,1995.
[5] 邓乃扬,田英杰.数据挖掘中的新方法——支持向量机[M].北京:科学出版社,2004.
[6] CRISTIANINI N,SHAWE-TAYLORAYLOR J.支持向量机导论[M].李国正,王猛,曾华军,译.北京:电子工业出版社,2004.
[7] 张孝羲.昆虫生态及预测预报[M].北京:中国农业出版社,1985.
[8] 唐启义,冯明光.实用统计分析及其DPS数据处理系统[M].北京:科学出版社,2002.