傅清秋,谢永华,2,汤 波,张恒德
(1.南京信息工程大学 计算机与软件学院,江苏 南京210044;2.南京信息工程大学 江苏省网络监控中心,江苏 南京210044;3.中国气象局国家气象中心,北京100081)
沙尘暴是强风将地面大量的沙尘卷入空中,使空气特别浑浊,水平能见度小于1km 的灾害天气现象[1]。在过去的几十年中,沙尘暴覆盖了世界各地的许多地区,而我国的西北地区和华北北部地区也频繁受到沙尘暴的侵袭,沙尘暴的到来给国家的经济和人们的生活带来了深重的影响。因此,近年来针对沙尘暴预报预警技术的研究已经得到了广泛关注和开展。
支持向量机 (support vector machine,SVM)是建立在统计学习理论基础之上的新一代机器学习方法,是目前机器学习界的研究热点,能很好地解决非线性、高维数、小样本以及局部极小点等实际问题。近几年支持向量机方法也被逐步用到了沙尘暴预警的研究中。Zhang Qimeng[2]选用高斯径向核函数支持向量机模型对1981年-1997年的沙尘暴数据进行实验,并将实验结果与BP 神经网络作对比,得出支持向量机模型有更加好的稳定性,更高的准确率和更快的运行速度。路志英,李艳英[3]提出了惯性权值自适应调节的改进粒子群算法,对传统的RBF-SVM 模型的参数选择方面进行了优化,实验表明优化后的预报模型表现出更好的性能。Zhang Wenyu,Liu Xuan[4]利用灰色关联分析来选择沙尘暴发生的主要相关因子,接着利用支持向量模型对民勤春季沙尘暴发生频率进行了预测最后形成了一个完整的沙尘暴预警系统。以上的研究说明了利用支持向量机模型来预报沙尘暴的可行性,但其中也存在着一些不足之处。首先在预警数据选取方面,文献 [2,3]采用了我国西北部从初春到初夏范围NCEP 格点场数据 (东经70度-115度;北纬35度-55度)。该格点场数据覆盖区域广,包含省市多,这就使预报结果不够精确,预报结果会显示某天将会有沙尘暴的发生但是具体发生在哪个省就无从而知了。其次在参数选取方面,由于SVM 参数以及核函数的选取没有固定的方法,一般都是通过实验比较手动调节[3],因此SVM 的参数和核函数的确定问题一直是研究的热点问题。而现在大部分的研究都是针对SVM 参数的选取,对于核函数的优化改进却为数不多。
本文结合了沙尘暴的发生条件,利用气象台站数据和NCEP格点场数据,在支持向量机模型中加入了组合核函数思想,提出一种适合沙尘暴预警的组合核函数支持向量机模型,以缩小预报的范围,提高预报的精度和准确率。
支持向量机分类的基本思想是要找到一个能够将两类样本分开的最优超平面,并且使分类间隔最大。根据分类样本的不同支持向量机分类问题可以分为线性可分问题和线性不可分问题。沙尘暴预报是二分类的问题,即有沙尘暴的发生或无沙尘暴发生,根据下文所选的预报因子,在11维的特征空间中无法找到一个合适的线性分类超平面将两类样本数据完全分开,属于线性不可分问题。然而支持向量机的特点之一就是可以解决线性不可分的问题,通过一个映射Φ 将原来线性不可分的样本 (图1 (a))映射到高维空间 (图1 (b)),使样本集在新的空间中线性可分,这样就可以找到一个超平面将两类样本分开。两个向量在映射过后的空间中的内积函数叫做核函数,碰巧的是,在SVM 中需要计算的数据向量总是以内积形式出现的,这样一来就避开了在高维空间的计算,而是在原来的空间中用核函数直接代替向量映射到高维空间的内积运算。
设样本为n 维向量,样本数为k,样本的构成为 (xi,yj),i=1,2,…,k,其中xi∈Rn,yj∈ {-1,1},引入核函数思想后,最终的判别函数式为[5,6]
图1 线性不可分SVM
式 (1)中vm 为支持向量的个数。
最理想的情况下,人们希望知道数据的具体分布,从而得到一个刚好可以将数据映射到高维空间线性可分的映射Φ,然后根据这个映射计算出核函数,然而,寻找这样一个映射一般情况下是很难甚至没办法实现的,通常都是随便选择一个特殊的核函数即可。当然不是所有的函数都能作为核函数,只有满足Mercer条件[7]的函数才能够作为核函数。最常用的核函数有:线性核函数K(xi,xj)=xTixj;多项式核函数K(xi,xj)= (γxTixj+r)p,r>0;高斯径向基核函数(RBF)K(xi,xj)=exp(-γ|xi-xj|2),r>0;Sigmoid核函数K(xi,xj)=tanh(γxTixj+r)p。
任何一种核函数,当其具有一定优点的同时也存在着局限性[8]。目前用于SVM 分类的核函数主要分为两类:局部核函数和全局核函数。局部核函数具有局部性,只有离输入数据距离较近的点对函数的值才会有影响,插值能力较强,善于提取样本的局部属性,高斯径向基核函数就是一个典型的局部核函数。全局核函数中相距很远的数据点对核函数都有影响,外推能力较强,善于提取样本数据的全局属性,其中最典型的全局核函数是多项式函数。
考虑到采用单一的核函数并不能全面地表示样本数据的特点,因此将多个核函数组合起来,以获得一个具有较好的外推能力和较强学习能力的预报模型。
组合核函数主要思想就是将多种核函数组合起来,从不同的侧面反映整个判别过程,从而使判别结果更加精确。近年来利用组合核函数对SVM 优化方法已经应用在了很多领域,并取得了理想的优化效果。张冰,孔锐[7]利用组合核函数支持向量机进行了人脸识别实验,实验结果验证了此方法的有效性。瞿娜娜[9]将多项式核函数和RBF核函数进行线性组合建模,并从量化分析的角度对中小板股市的趋势进行预测,结果显示,该模型有一定程度的优越性同时也具备一定的推广性。Turgay Ibrikci[10]将该方法用于生物医学方面,利用组合核函数支持向量机模型来对7种不同的病例分类,结果证明新的方法预测准确率有明显提升。因此本文将使用组合核函数来代替支持向量机模型中单一的核函数,将组合核函数支持向量机模型用在沙尘暴预警中。
选取局部核函数和全局核函数中最典型的高斯径向基核函数和多项式函数进行组合,由于有研究表明对于多项式核函数,p=2,4时外推能力较好[7]因此这里就选用了二阶多项式,组合后的核函数如下式
其中K (xi,xj)为组合的核函数,组合的核函数仍然是核函数[11]。
对于参数的选取我们总希望选择的一组参数能够使实验效果达到最好,本文中的参数主要有:正则化参数C,不敏感损失参数ε,高斯径向核函数的核参数γ2,多项式核函数的核参数γ1以及组合核函数中的权值a。怎样判定模型分类效果是否达到了最优呢,本文选用了气象上衡量沙尘暴的准确率的成功界限指数CSI[3],CSI的定义是
其中CS为正确预报沙尘暴的个数,f1为漏报的沙尘暴个数,f2为空报沙尘暴的个数。由定义可以看出,CSI越大报对的数量就越多,漏报、空报的数目越少,预报的效果也就越好。
当有了评判标准以后就可以对参数进行择优选择了,目前还没有公认的SVM 参数选择方法。本文使用网格划分法结合K-CV 方法来选择最优的参数组合。主要思想是将样本分为K 份,接着在参数定义的范围内,根据步长依次选取一组参数值作为当前的训练参数。选取样本中的第1份作为测试集,剩下的数据样本作为训练集,根据前面所选的参数算出CSI的值,接着选取第2份作为测试集,以此类推直到第K 份,最后将所有的K 个CSI取均值,和当前最优的CSI进行比较,CSI最高的那组对应的参数组即为最优参数组。
沙尘暴天气产生的因素是多方面的,总的来说必须具备3个条件:沙源、大风和不稳定的空气状态。其中丰富的沙源是其物质基础,大风和不稳定的空气状态则是沙尘天气的动力条件和局地热力条件。根据沙尘暴的发生条件,文献 [2,3]采用了我国西北部范围的NCEP 格点场数据(东经70度-115度;北纬35度-55度)。该格点场数据包括了俄罗斯、新疆、内蒙古、甘肃、宁夏等多个省市,覆盖范围广。因此利用这样的数据样本预报,预报的范围过大。为了提高预报的精度,本文利用具体气象观测站的地面气候资料日值数据作为主要的预报数据。站点地面气候日值数据主要包括区站号、纬度 (前2位度;后2位分)、经度(前2位度;后3位分)、海拔高度、年份、月份、日期、日平均气压 (0.1hpa)、日平均气温 (0.1℃)、日最高气温(0.1℃)、日最低气温 (0.1℃)、日平均相对湿度 (%)、日降水量 (0.1mm)、日平均风速 (0.1m/s)、日日照时数(0.1小时)这15个要素,要素中缺测值为3277。
在这些要素中日平均风速表示了一个地区风力的大小,而强风是沙尘暴发生不可缺少的动力条件,风力越强越有利于形成沙尘暴。温度、降水、平均相对湿度和日照时数决定着一个地区的干旱程度。持续的高温,少雨,暴晒会造成地表的土壤干燥,容易被风吹起,这是沙尘暴形成的物质基础。而局地的气压、温度、湿度等气象要素在沙尘暴发生时也会发生突变。因此鉴于以上分析本文从气象观测站的地面气候资料日值数据中选取日平均气压、日平均气温、日温差 (日最高气温-日最低气温)、日平均相对湿度、日降水量、日平均风速、日日照时数这7个气象要素作为预报因子。
然而实验表明仅仅利用这7个要素来预报得到的效果并不理想,由于所选取的特征值过少,不能够全面地表现沙尘暴的特点,这就意味着样本中会出现两条记录特征值一样时,一条标识是有沙尘暴发生而另一条标识没有沙尘暴发生,这种情况是支持向量机模型难以解决的。为了避免这种情况的发生,本文参照文献 [2,3]从NCEP 格点场资料中选取了离气象台站经纬度最近格点的五种格点场数据:500hpa的高度、700hpa的东南风和西北风、850hpa的温度和比湿,并根据850hpa的温度和比湿推导出850hpa的位温。最后将得到的4种格点数据和前面7种气象要素结合在一起共11个要素 (见表1)作为预报因子并利用中国强沙尘暴支撑数据集标记出是否有沙尘暴。
表1 SVM 沙尘暴预警预报因子
图2是算法的流程图,该算法的具体流程为:
(1)根据上文所述预报因子的选取方法选取合适的样本数据。
(2)对数据样本进行归一化处理将数据变换到0和1之间,接着将全部样本分为训练集和测试集。
(3)在选定的参数范围内依次选取一组参数,根据训练样本利用K-CV 交叉验证法 (具体步骤参照上文参数的选取)算出每一组的CSI并和当前BESTCSI相比,若比BESTCSI小则选取下一组参数,若比BESTCSI大,则用当前的参数值来取代最优值接着继续选择下一组参数,当遍历完所有的参数组循环结束,选择BESTCSI对应的参数组合,生成分类模型。
(4)将生成的模型用于对测试集分类,统计比较分类效果。
图2 本文方法流程
实验主要数据来源有3 种:①1956-1965 年宁夏盐池(53723)地面气象观测站的地面气候资料日值数据[12];②中国强沙尘暴序列及其支撑数据集[12]中宁夏盐池 (53723)站点的数据;③美国环境气象中心所提供的NCEP 格点场日值资料[13],将NCEP格点场的经纬范围圈定在离盐池最近的格点 (东经107.5度,北纬37.5度)处,采集该格点1956-1965年的格点场数据。
参照上文提到的数据选取方法提取1956-1965 年沙尘暴多发的3-5月的气象数据资料,数据中若存在缺测值就将其整条删除。图3截取了样本数据中的10条,其中每列代表的属性如表1所示,最后一列中1表示当天发生沙尘暴,0表示当天无沙尘暴发生。
图3 样本数据
为了使训练样本和测试样本中沙尘暴数据尽可能分布全面,从第一条数据开始,每隔两条抽取一条数据到测试样本集中剩下的全部为训练样本。统计其中沙尘暴和非沙尘暴个数见表2。
表2 实验数据集
本文以宁夏盐池为例,采用libsvm-mat-2.89-3工具箱完成对SVM 模型的训练与测试,并用MATLAB R2010a工具软件实现模型的仿真实验。分别使用多项式核函数,高斯径向核函数和结合多项式核、高斯径向核的组合核函数对训练集学习,将得到的分类模型用在测试集上,得到数据见表3
其中Csandstorm表示沙尘暴天气报对率,Nrightsand表示报对的沙尘暴天气的个数,Nallsand表示测试样本中沙尘暴的总个数,Cnotsandstorm表示非沙尘暴天气的报对率,Nrightnonsand表示报对的非沙尘暴天气的个数,Nallnonsand表示测试样本中非沙尘暴天气的总数,Accuracy 表示分类的正确率,N 为测试集样本个数。
表3 3种核函数的预测结果
从实验结果看出,多项式核函数和高斯径向核的分类效果相当CSI都为51.85%,而由这两种核函数构成的组合核函数预报的成功界限指数CSI达到了54.64%,比仅使用单一的核函数提高了大约2.79%,沙尘暴报对率也提高了4.65%。这说明了组合核函数兼顾了各核函数的优点,在沙尘暴预警方面有着比单一核函数支持向量机模型更好的预报效果。同时实验结果也说明了对于组合核函数来说,组成它的单一核函数的最优参数的组合并不是其最优解,组合核函数的参数也同样需要使用参数寻优方法来搜寻。为了更好地说明这个问题,对比表3最后两行的结果,其中第三行的组合核函数模型中的各个参数选取了每个单一核函数的最优参数组,而最后一行参数的选取则是通过上文提到的参数寻优法。结果显示虽然经过参数寻优的组合核函数模型的非沙尘暴报对率和分类的正确率 (92.16%)没有第三行高,但是对于沙尘暴预警来说,主要关注的是沙尘暴的预报的性能即沙尘暴的报对率和CSI的值,使用参数寻优的组合核函数模型的沙尘暴报对率达到了67.44%比第三行高出了4.65%,CSI也达到了54.64%,为实验最优值。
本文结合了气象台站的日值数据和NCEP 格点场的格点数据,利用多项式核和高斯径向核组成的组合核函数模型对宁夏盐池地区的沙尘暴进行预警。实验结果表明了在利用支持向量机对沙尘暴预警的研究中,组合核函数模型相比于单一核函数有着更好的分类效果,提出了一种利用单个台站附近的气象数据资料预报沙尘暴的方法,该方法提高了沙尘暴预警的准确率和预报精度。
[1]YUE Ping,NIU Shengjie,SHEN Jianguo,et al.Observation and analysis of micrometeorology parameters and PM10for an ultra strong dust-storm [J].Journal of Natural Disasters,2009,18 (1):118-123(in Chinese).[岳平,牛生杰,沈建国,等.一次特强沙尘暴的微气象要素及PM10 观测分析[J].自然灾害学报,2009,18 (1):118-123.]
[2]LU Zhiying,ZHANG Qimeng,ZHAO Zhichao.SVM in the sand-dust storm forecasting [C]//Proceedings of the Fifth International Conference on Machine Learning and Cybernetics,2006:3677-3681.
[3]LU Zhiying,LI Yanying,LU Jie,et al.Parameters optimization of RBF-SVM sand storm forecasting model based on PSO[J].Journal of Tianjin University,2008,41 (4):413-418(in Chinese).[路志英,李艳英,陆洁,等.粒子群优化RBFSVM 沙尘暴预报模型参数 [J].天津大学学报,2008,41(4):413-418.]
[4]ZHANG Wenyu,LIU Xuan,XIAO Wei,et al.Software design of sand-dust strom warning system based on grey correlation analysis and particle swarm optimization support vector machine[C]//Proceedings of the 2nd International Conference on Power Electronics and Intelligent Transportation System,2009:47-50.
[5]LI Yanying.Study of the swarm intelligence algorithm based on optimizing the parameters of SVM [D].Tianjin:Tianjin University,2007 (in Chinese).[李艳英.基于支持向量机参数优化的群智能优化算法研究 [D].天津:天津大学电气与自动化工程学院,2007.]
[6]WANG Tinghua,CHEN Junting.Survey of research on kernel selection[J].Computer Engineering and Design,2012,33(3):1181-1186(in Chinese).[汪廷华,陈俊婷.核函数的选择研 究 综 述 [J].计 算 机 工 程 与 设 计,2012,33 (3):1181-1186.]
[7]ZHANG Bing,KONG Rui.Compound kernel function of support vector machines [J].Computer Applications,2007,27(1):44-46 (in Chinese).[张冰,孔锐.一种支持向量机的组合核函数 [J].计算机应用,2007,27 (1):44-46.]
[8]XIONG Zhongyang,JIANG Fan,ZHANG Yufang,et al.Improved polynomial SVM classifier for text categorization[J].Application Research of Computers,2009,26 (8):2905-2907(in Chinese).[熊忠阳,江帆,张玉芳,等.一种改进的多项式核支持向量机文本分类器 [J].计算机应用研究,2009,26(8):2905-2907.]
[9]QU Nana.Research and application of support vector machine based on mixed-kernel function[D].Guangzhou:South China University of Technology,2011 (in Chinese).[瞿娜娜.基于组合核函数支持向量机研究及应用 [D].广州:华南理工大学,2011.]
[10]Ibrikci T,Ustun D,Kaya I E.Diagnosis of several diseases by using combined kernels with support vector machine [J].Journal of Medical Systems,2012,36 (3):1831-1840.
[11]YAN Genting,MA Guangfu,XIAO Yuzhi.Support vector machines based on hybrid kernel function [J].Journal of Harbin Institute of Technology,2007,39 (11):1704-1706(in Chinese).[颜根廷,马广富,肖余之.一种混合核函数支持向量机算法 [J].哈尔滨工业大学学报,2007,39 (11):1704-1706.]
[12]China meteorological data sharing service system [EB/OL].[2013-3-10].http://cdc.cma.gov.cn/home.do(in Chinese).[中国气象科学数据共享服务网 [EB/OL].[2013-3-10].http://cdc.cma.gov.cn/home.do.]
[13]Earth system research laboratory [EB/OL].[2013-3-10].http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.html.