基于小波去噪的SVM在商品指数预测中的应用研究

预测商品指数运行态势, 对于指数管理部门而言, 可以在一定层面上监测和引导商品指数的平稳运行, 降低市场风险, 从而促进商品指数的可投资性和标尺性,同时,为优化商品指数编制方案提供参考途径。未来对于指数投资者而言,通过机器学习的算法对商品指数进行准确预测, 可以为其投资策略提供很好的参考价值,在一定程度上减少盲目投资的现象,减少投资者的损失。

 

支持向量机(SVM)是一种基于统计学习理论和结构风险最小化原理的机器学习理论,本文针对飞创煤焦矿商品指数的非线性变化特点,采用小波去噪后的数据,并利用3种参数优化算法建立基于支持向量机回归理论的商品指数预测模型,并对指数开盘价预测,这对于管理、监测商品指数的平稳运行有着很好的应用价值。

 

 

一、支持向量机理论

(一)支持向量机基本原理

支持向量机(Support Vector Machine,简称 SVM)是借助于最优化方法来解决机器学习问题的新工具,也是数据挖掘中的一项新技术。最早是在1995年由Corinna Cortes和Vapnik提出,该理论针对小样本统计问题建立了一套新的理论体系,这种体系下的统计推理规则不仅考虑了对渐近性能的要求,而且追求在现有有限信息的条件下得到最优结果。它能非常成功地处理回归问题(时间序列分析)和模式识别分类问题、判别分析等诸多问题,并可推广于预测和综合评价等领域。

 

支持向量机是建立在统计学习理论的VC维理论[1]和结构风险最小化基础上,根据有限的样本信息在模型的复杂性和学习能力之间寻找最佳折衷,专门针对有限样本情况,得到现有信息下的最优解而不仅仅是样本趋于无穷大时的最优值,因而具有很好的泛化能力。支持向量机最终解决的是一个凸二次规划问题,从理论上说,得到的将是全局最优点,解决了在神经网络方法中无法避免的局部极值问题。在处理非线性问题时,支持向量机能将非线性问题转化为高维空间中的线性问题,然后用一个核函数来代替高维空间中的内积运算,从而巧妙地解决了计算复杂问题,并且有效地克服了维数灾难以及局部极小值等问题。

 

(二)支持向量回归机

当支持向量机(SVM)用于回归预测估计时,此时的SVM则称为支持向量回归机(SVR)。支持向量回归机问题实际上是一个函数拟合问题,其基本思想是用一个非线性函数将原样本空间中的非线性回归问题转化为高维特征空间中的线性回归问题。一般的回归问题是:给定训练样本:

 

支持向量回归机

 

希望学习得到形如f(x)=w^T x+b的回归模型,使得f(x)与y尽可能的接近,w和b是待确定的参数,只有当f(x)与y完全相同时,损失才为零,而支持向量回归假设能容忍的f(x)与y之间最多有ε的偏差,当且仅当f(x)与y的差的绝对值大于ε时,才计算损失,此时相当于以f(x)为中心,构建一个宽度为2ε的间隔带,若训练样本落入此间隔带,则认为是被预测正确的。

 

现有样本(x_i,y_i),(i=1,…,N),x_i∈R^d,y_i∈R, f(x)是通过对样本数据的学习而构造出来的回归估计函数,则f(x)满足:

 

支持向量回归机

 

 

其中ε为不敏感损失函数,最简单的SVM回归机使用线性函数对样本点进行拟合,而非线性问题则是通过核函数K(x_i,y_i)=φ(x_i )*φ(y_i)进行非线性变换来解决的,因此SVR问题可转化为如下约束条件下求最小化的线性规划问题:

 

支持向量回归机

 

 

其中,松弛变量为ξ_i≥0, ξ_j≥0,i=1,2,3,…,N,C为损失函数,ω的维数为特征空间维数,采用拉格朗日乘子法求解,得到其对偶最优化问题为:

 

支持向量回归机

 

上式中系数(α_i-α_i^* )只有一小部分不等于0,而这些系数不为0 所对应的数据点就被称为支持向量(SV)。

 

小贴士

VC维理论: 对于一个指示函数集,如果存在h个数据样本能够被函数集中的函数按所有可能的2^h 种形式分开,则称函数集能够把h个数据样本打散(shatter)。函数集的VC维就是能打散的最大数据样本数目h。VC维在机器学习中是用来衡量函数集性能的一种指标—VC维越大,则学习过程越复杂。

 

(三)核函数

核函数是SVM 的核心,其主要思想是将数据从低维映射到高维特征空间,将低维特征空间的非线性问题转换成高维特征空间的最优线性问题,特征空间由核函数来定义。核函数的学习并不是在高维特征空间进行,而是在相对较小的线性子空间中计算,并没有增加算法的复杂性。核函数的引入减少了运算量,避免了“维数灾难”,输入样本特征的维数不会对核函数矩阵有影响。

 

核函数K(x_i,y_i)=φ(x_i )*φ(y_i)是高维特征变换空间的内积运算,通过上面的分析可知,要求变量在高维空间的内积,只需在原低维空间计算其核函数即可,支持向量机通过变换函数φ(x)将低维空间的非线性回归问题转化为高维空间中的线性回归问题,通过核理论免去了在高维空间ω和φ的点积计算。常用的核函数主要有四类:

 

核函数

 

究竟用哪一种核函数取决对数据处理的要求,本文采用RBF核函数,因为RBF在实际问题中表现出了良好的性能。该核函数涉及一个未知参数,而且惩罚系数C也是未知,因此针对具体问题,我们需要对这两个参数进行预先设定。然而以往在选取参数时,主要是凭借经验“人工取值” 的选择方法,这样的参数选择是不合理的,往往找不到全局最优解,而且效率很低,因而本文将采取三种参数优化算法,通过对比分析得到最优参数,进而进行回归预测研究。

 

(四)参数优化算法

参数选择在很大程度上会影响支持向量机回归的准确性,关于SVM参数的优化选择问题,到目前为止,学术界还没有公认统一的最好方法。比较常用的参数寻优的方法包括:经验法、网格搜索法、粒子群算法、遗传算法等;本文利用后三种优化算法进行参数寻优。

 

1、网格搜索法GS

网格搜索法(Grid Search,简称GS)的基本原理就是让参数c(惩罚系数,下同)和g(上文中的,表示核参数,下同)在一定的取值范围内划分网格并遍历网格内所有点。对于取定的c和g利用K-VC[1]方法得到在此组c和g下训练集的均方误差MSE,最终取使得训练集MSE最低的那组c和g作为最佳的参数。

 

小贴士

K-VC法:全称是K-fold Cross Validation,是交叉验证(CV)法的一种,该方法将原始数据分成K组,将每个子集数据分别做一次验证集,其余K-1组子集数据作为训练集,K一般大于等于2。

 

2、遗传算法GA

遗传算法(Genetic Algorithm,简称GA)是现代启发式算法之一,属于非数值算法范畴,它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。遗传算法模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解群,并按个体的适应度值从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合, 产生新一代的候选解群,重复此过程,直到满足某种收敛条件为止。它是一种具有全局优化性能、通用性强且适合于并行处理的算法。

 

 3、粒子群算法PSO

粒子群算法(Particle Swa-rm Optimi-zation,简称PSO)也叫鸟群觅食算法,它也是一种启发式算法。其基本思想是通过群体中个体之间的相互协作和信息共享,最终达到群体最优目的的行为。在PSO系统中,每个备选的解被称作一个“粒子”,多个粒子共存、合作寻优(近似鸟群寻找食物),每个粒子根据它自身的“经验”和相邻粒子群的最佳“经验”在问题空间中向更好的位置“飞行”搜索最优解。粒子通过跟踪两个“极值”来更新自己,分别是粒子本身所找到的最优解和整个种群目前找到的最优解。在搜索最优参数时,把寻优的c与g看作粒子群算法中的粒子,从随机解出发,不断地进行迭代来求解最优解。

 

 

二、基于飞创煤焦矿指数的回归预测

(一)数据来源和指标选取

本文选取飞创煤焦矿指数2012年12月31日至2018年5月11日共1301个交易日的数据,前1000个交易日的数据做为训练集,剩余301个交易日的数据做为测试集。输入指标为:前一日开盘指数值、指数最高值、指数最低值、收盘指数值、对应品种的交易量和交易额,输出为当日的开盘指数值,飞创煤焦矿指数的开盘价走势图如下图1所示:

 

飞创煤焦矿指数的回归预测

 

 

(二)数据处理

数据预处理和去噪是时间序列预测过程的首要环节,采集到的时间序列数据受各种因素的影响,数据往往不完整,并常带有不同程度的噪声,如果不对数据进行预处理,就会影响预测精度。数据预处理的目的是在不损失真实数据信息的基础上,对时间序列数据进行去噪、归一化等优化处理,提高数据质量,满足时间序列预测对历史数据的要求。

 

1、小波去噪

小波分析被认为是继傅里叶变换以来的又一重大理论突破,小波变换在时域和频域内有较好的局部化性质,随着信号的不同频率成分,在时间空间域的取样间隔能自动调节,易于分析信号的任意细节,提取信号特征,因此被誉为数学显微镜。小波去噪问题的本质是一个函数逼近问题,即如何在由小波母函数伸缩和平移版本所展成的函数空间中,根据提出的衡量准则,寻找对原信号的最佳逼近,以完成原信号和噪声信号的区分。利用小波变换的消噪原理去除时间序列中的细微波动,只考虑大体趋势,从而对时间序列进行平滑处理;由于小幅干扰的噪音已被消除,用支持向量机对其进行建模预测走势时,准确率将提升,因为消噪后的时间序列更能反映序列的主要特征。本文采用5层db3小波去噪后的数据,去噪后指数走势如下图2所示:

 

小波去噪

 

2、归一化处理

不同指标的数据处在不同的数量级上,数量级大的分量对模型的影响就较大,而数量级小的分量对模型的影响就小,小数“淹没”在了大数里而失去了意义,由于计算机所能表示的数据精度有限,如果个别数据过大或者过小,也容易使计算后的数据越界而丢失信息。基于以上考虑,为了避免各个因子之间的量级差异,消除各个因子由于量纲和单位等不同造成的影响,建模前先对每个因子按下式进行归一化处理。本文利用matlab中的mapminmax函数将各因子归一化到[1,2]之间,归一化公式如下所示:

 

归一化处理

归一化处理

 

(三)模型实现

1、模型的建立

基于支持向量回归机原理对飞创煤焦矿指数建立如下模型:

 

模型的建立

 

 其中,x_1,x_2,x_3,x_4,x_5,x_6分别代表前一天的开盘价、最高价、最低价、收盘价、交易量、交易额,y_i代表开盘价,即本模型代表的含义为用前一天的6个指标,预测今天的开盘价。y_i即为目标函数,根据已知数据建立训练集和测试集,解的最优解带回到回归决策函数方程,得到回归决策函数,最后计算预测结果。

免责声明:信息仅供参考,不构成投资及交易建议。投资者据此操作,风险自担。
如果觉得文章对你有用,请随意赞赏收藏
相关推荐
相关下载
登录后评论
Copyright © 2019 宽客在线