摘要:文章讨论了基于分类的SVM非线性回归算法及其在时间序列预测中的应用。与传统SVM回归算法相比,本算法有更强的不敏感性和健壮性、参数值可设定性并可避免过拟合现象。文中提出了一种计算预测模型初始参数值的方法,可以高效地找到较好的模型参数,并通过实验对方法的有效性和可行性进行了验证。
关键词:SVR(支持向量回归);时间序列;回归算法;训练算法;核函数
一、 引言
预测是作为决策、规划之前的必不可少的重要环节,是科学决策、规划的重要前提。时间序列预测是预测领域内的一个重要研究方向,在过去的半个多世纪里得到了迅速的发展,特别是对线性时间序列分析的研究,已取得了系统和丰富的成果。但是,对于非线性时间序列分析的研究,仅在近二十年里才逐渐被重视起来。综观国内外在这一方向上的研究概况,前期工作大多局限于对几类典型非线性时间序列模型的参数辨识算法和建模方法等进行研究,然而,由于现实系统的复杂性,人们在预测时存在着正确选择模型的困难,便利这些方法的应用受到很大的限制。于是,人们把目光转向了近年来兴起的人工神经网络模型。传统的时间序列预测采用的是统计和神经网络等方法,如YiMin Xiong,Di-Yan Yeung的文章Time series clustering with ARMA mixtures中用的ARMA方法和Ildar Batyrshin, Raul Herrera-Avelar等的文章 Association Network in Time Series Data Mining中使用的一种关联网络方法。统计建模方法要求时间序列具有平稳性、正态性、独立性,这个方法不适用于复杂时间序列。SVM具有很好的非线性逼近能力,但它存在模型结构难以确定,易出现过度训练或训练不足,陷入局部最小且对连接权初值敏感,并过度依赖设计技巧。目前国外已有将支持向量机用于时间序列预测的研究,如Sayan Mukherjee, Edgar Osuna和 Federico Girosi的 Nonlinear Prediction of Chaotic Time Series Using Support Vector Machines就是这一方法的研究。但这些基于SVM的时间序列研究多是针对理想数据,如人工混沌序列数据等,因此支持向量机在回归中的研究还有许多不尽如人意的地方,有很大的研究余地,本文对此作了较为系统深入的研究。另外,对于现实世界中常表现出非线性时间序列,人们试图用支持向量机进行预测,但相关理论成果零星分散,且存在许多不足,本文对此进行了较深入的研究。
本文安排如下:第二节介绍了基于SVM的时间序列预测模型;第三节阐述了基于分类SVM的网络训练算法和回归算法,并将其与传统的预测模型结合;在第四节描述了一个使用这一预测方法的实验,实验数据来源:personal in come and its disposition of USA: billions of dollars;SAAR(quarterly);最后在第五节分析了实验结果并对其进行了总结。
二、 基于SVM的回归与预测
SVM进行回归与预测的一般思想是用一个非线性映射 将数据 映射到一个高维特征空间F上,并在此空间进行线性回归,通过此种方法,实现将低维特征空间的非线性问题转化为高维特征空间线性回归问题解决。由统计学习理论可以得到回归函数如下:
4. 算法中ε值和σ初始值的计算方法。
(1)不敏感损失函数ε的引入,把SVM推广到非线性系统的回归估计,并展现了极好的学习性能。基于SVM方法的回归估计以可控制的精度逼近任意非线性函数,同时具有全局最优、良好的泛化能力等优越性能。SVM通过参数控制回归估计的精度,但ε取多少才能达到所期望的估计精度是不明确的。
在本文中,我们通过实验得出了一个比较有效地确定 ε初始值的简单方法,可以通过(d′*d″)/sprt(d)=2ε来计算,其中d是原始样本数据的平均值,d″是原始数据各点的二阶导数的平均值。这种方法给定的ε初始值不是最优,只是一个大概的值,但它离最优值很接近。我们通过经验调节得到的最优值往往都在这一初始值周围。这样我们在预测时可以在这一初始值的附近调整即可得到比较满意的 ε值。
(2)预测曲线性能的优劣主要取决于核函数,当选定核函数后,σ值的选择对于曲线的预测效果也有着至关重要的影响。本例中而言,选择的核函数是Gauss核函数,若使用的核宽度相对来说比较大,会得到较为平缓的预测函数,这样得到的拟合效果不好,对应的泛化能力必然很差。相反,若使用的核宽度过小,会得到较为尖锐的高斯函数曲线,使得每个样本点都成为高斯函数的峰值,对应的泛化能力也很差。因此,应根据不同问题,针对性地选择合适的核函数形式及其参数。
尽管如此,我们通过多次实验,仍然找到了一种确定 σ初始值的方法,可以通过lgσ/lgd′=5来计算,其中d′是原始数据各点的一阶导数的平均值。这种方法给定的σ值的不是最优,只是一个大概的值,但它离最优值很接近。在多次实验中我们通过经验调节得到的最优值总是在这一初始值的周围。这样我们在预测时可以在这一初始值的附近调整即可得到比较满意的σ值。
四、 实验
实验使用美国个人收入时间序列数据(Personal income:Personal Income and Its Disposition:Billions of dollars;SAAR(quarterly))。从1947年~2005年,每季度一个数据。将1947年一季度~2000年四季度的数据作为训练样本,2001年一季度~2005年四季度的20个数据作为检验样本。原始数据点图中“.”所示(为表示方便,我们把从1947年~2005年各季度值用从0到23.5表示。每点间隔为0.1表示一个季度。):
图1σ=6.0*109,ε=102.15的结果
实验使用Gauss核函数,选择错分样本惩罚参数C=einsensitive,σ=6.0*109,ε=102.15,实验结果如图1所示,图中“*”表示预测数据。从中不难看出其预测效果,不论是趋势上还是数值上都与真实值接近。
这里要指出的是:(1)错分样本惩罚参数C值的确定一般是人为给定的,很难知道所取C值的好坏性。如何选择一个最佳的C值,目前在理论上尚未解决。(2)预测曲线性能的优劣主要取决于核函数。目前常用的几种核函数及其函数参数的选择都是人为的,根据经验来选取的,带有一定的随意性,因此具有局限性。在不同的问题领域,核函数应当具有不同的形式和参数,应引入领域知识,从数据依赖的角度选择核函数,这还需要进一步的研究。
五、 结论
在应用于回归问题时,支持SVR综合考虑了曲线平滑与误差程度,从而提高了泛化能力。本文使用了基于分类的SVR算法对时间序列数据进行预测。与普通的SVR方法相比,基于分类的SVR算法可以在模型事先未知的条件下对其进行回归,并且由于是SVR方法,执行效率从理论上可以保证。进一步的研究包括:多维时间序列数据的预测、并尝试使用计量经济学模型解决多维时间序列的回归问题。
参考文献:
1.YiMin Xiong,Di—Yan Yeung.Time series clustering with ARMA mixtures.Pattern Recognition,2004,(37):1675-1689.
2.Ildar Batyrshin,Raul Herrera-Avelar,et al.,Association Network in Time Series Data Mining,NAFIPS 2005-2005 Annual Meeting of the North American Fuzzy Information Processing Society.
3.高隽.人工神经网络原理及仿真实例.北京:机械工业出版社,2003.
4.Ye Ning,Liang Zuopeng,Dong Yisheng,Wang Huoli.SVM Nonlinear Regression Algorithm.Computer Engineering,October 2005.
基金项目:本文受安徽省自然科学基金资助,项目号070416251。
作者简介:毛雪岷,博士,合肥工业大学管理学院副教授;杨杰,合肥工业大学管理学院硕士生。
收稿日期:2007-07-13。
“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”