基于数据数量对支持向量机和BP神经网络性能分析摘要本文在阐述创新型预测模型理论的基础上,分别利用基于BP神经网络和支持向量机的玉米开盘预测模型,在样本大小不同情况下对玉米开盘价格指数进行了研究和预测。
研究结果表明,基于支持向量机的预测模型在预测精度、运算时间、最优性等方面均优于基于BP神经网络的预测模型。
近年来,以GARCH类模型、SV类模型等为代表的预测模型在资产价格预测方面获得了广泛的应用,但是这些模型在研究中往往受到样本数据分布、样本容量等方面的限制。
因此,包括以神经网络、支持向量机等智能算法为基础的创新型预测模型,在金融资产价格预测方面得到了广泛的应用。
本文在阐述创新型预测模型理论的基础上,分别利用基于神经网络、支持向量机的预测模型,在不同样本大小的基础上,就玉米开盘价格分别用支持向量机和单隐层和双隐层的BP神经网络做预测,比较预测结果,对比分析支持向量机和BP神经网络在样本大小不同的情况下两者的性能分析。
关键词:支持向量回归BP神经网络libsvm工具箱一、模型介绍1、模型介绍1.1支持向量机回归1.1.1支持向量机回归模型的介绍在机器学习中,支持向量机(SVM,还支持矢量网络)是与相关的学习算法有关的监督学习模型,可以分析数据,识别模式,用于分类和回归分析。
给定一组训练样本,每个标记为属于两类,一个SVM 训练算法建立了一个模型,分配新的实例为一类或其他类,使其成为非概率二元线性分类。
一个SVM 模型的例子,如在空间中的点,映射,使得所述不同的类别的例子是由一个明显的差距是尽可能宽划分的表示。
新的实施例则映射到相同的空间中,并预测基于它们落在所述间隙侧上属于一个类别。
除了进行线性分类,支持向量机可以使用所谓的核技巧,它们的输入隐含映射成高维特征空间中有效地进行非线性分类。
1.1.2支持向量回归求解过程图1.1.3核函数的介绍利用支持向量机解决回归问题时,需要根据求解问题的特性,通过使用恰当的核函数来代替内积。
这个核函数不仅要在理论上要满足Mercer 条件,而且在实际应用中要能够反映训练样本数据的分布特性。
因此,在使用支持向量机解决某一特定的回归问题时,选择适当的核函数是一个关键因素。
在实际的应用中,最常用的核函数有4种:线性核、多项式核、径向基(简称RBF)核、多层感知机核等。
函数关系表达式分别如下:(1)线性核函数)(),(x x x x K i i ⋅=(2)多项式核函数[]+∈⋅=Z q x x x x K qi i ,)(),(γ(3)RBF 核函数⎪⎪⎭⎫ ⎝⎛--=2exp ),(σx x x x K i i 式中σ为核参数,它隐式地定义了从原始空间到高维特征空间中的非线性映射。
RBF 核函数与传统RBF 方法的重要区别是,这里每个基函数中心对应一个支持向量,它们及输出权值都是由算法自动确定的。
(4)sigmoid 核函数))(tanh(),(c x x v x x K i i +⋅=式中v、c 为常数。
这时SVM 实现的就是包含一个隐层的多层感知器,隐层节点数是由算法自动确定的,而且算法不存在困扰神经网络方法的局部极小点问题。
[2]1.1.4各参数介绍及影响(1)核参数:在本题中用g 表示,g 能决定从低维空间到高维空间的映射状态要,首先选择合适的核函数将数据投影到合适的特征空间,得到推广能力良好的SVR 模型。
(2)误差惩罚参数c:它能够实现在回归精度和模型复杂度之间的折衷,即在确定的特征子空间中调节学习机器置信范围和经验风险的比例以使得到的回归函数的推广能力最好(3)精度参数ε:采用ε-不敏感函数,具有一定的抗干扰能力,能够提高估计的鲁棒性。
1.1.5寻找最优参数函数寻优方法和思想由于本组安装matlab libsvm 工具箱内置自带K 折交叉检验法寻优函数大家只需了解交叉检验法大致思想如下:在机器学习、数据挖掘和模式识别等领域,需要训练大量的数据来得到一个准确的模型,当数据的数量有限时,就会出现不同的问题。
为了解决这些问题,交叉验证的方法就出现了。
Holdout 当数据有限时,需要将原始数据分为两份,一份用来training 一份用来testing(比例一般是2/3和1/3),或者分为三份,还有一份用来validation。
以上过程就叫做HoldoutStratified holdout(or Stratification)为了确保分割后用于training 和testing 的数据都具有代表性,需要通过随机取样的过程来确保这一点,这就是stratification。
其达到的效果是让在每一个分割中,每个类所占的比例和总体数据中每个类所占的比例相同。
Repeated holdout重复的进行随机取样,计算每一次的error rate,然后对其取平均。
threefold cross-validation将数据分为三份,每一次都去其中一份用于testing,其余部分用于training,直到遍历完每一个fold,即每一个instance都至少用于一次testing,后面还有stratified threefold cross-validation。
Stratified tenfold cross-validation在实际的应用中,这是标准的数据处理方法,具体含义和上一个类似,在实际的应用中,往往需要重复10遍十折交叉验证,也即往往需要做100次。
具体matlab程序详见附件附录和附件(附录一最优c和g选择,核函数选择/附件:程序/最优c和g求抽样样本model选取核函数比较误差)。
1.1.6支持向量回归核函数选择本文为了公平起见用sigmoid核函数因为BP神经网络默认的函数也为sigmoid函数,保证不受其他因素影响,尽可能使结果正确有意义。
1.1.7程序求解解法一;将如上二次规划函数利用matlab进行求解解法二:利用libsvm内置函数svmtrian函数求解(本文用libsvm工具箱)1.2BP神经网络1.2.1BP神经网络介绍在BP神经网络中,单个样本有个输入,有个输出,在输入层和输出层之间通常还有若干个隐含层。
实际上,1989年Robert Hecht-Nielsen证明了对于任何闭区间内的一个连续函数都可以用一个隐含层的BP网络来逼近,这就是万能逼近定理。
所以一个三层的BP网络就可以完成任意的维到维的映射。
即这三层分别是输入层(I),隐含层(H),输出层(O)。
如下图示1.2.2隐含层的选取在BP 神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少才合适呢?实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层节点数目,如下其中为隐含层节点数目,为输入层节点数目,为输出层节点数目,为之间的调节常数。
1.2.3BP 算法BP 算法即误差反向传播(Back Propagation)算法,其主要思想是是把学习过程分为两个阶段:第一阶段(正向传播过程),给出输入信息通过输入层经隐含层处理并计算每个单元的实际输出值;第二阶段(反向过程),若在输出层未能得到期望的输出值,则逐层递归地计算实际输出与期望输出之差值(即误差),以便根据此差值调节权值。
BP 算法的基本步骤如下:1)设置初始权值W(0)为较小的随机非零值。
2)给定输入/输出样本集合{,}p p p u d ,误差指标21()2p ip ip iE d y =-∑总误差指标1Pall p p E E ==∑重复下列过程直至满足收敛条件(allE ε≤)a)对于任意一个样本p,计算正向过程1,,,,,l l p p p pu O x y -反向过程()()()'11'1,1,1l L ip ip ip ip l l l l ip mp mi ip m p l l ip jp l ijd y f x w f x l L E O l L w δδδδ++-⎧⎪=--∙⎪⎪⎛⎫⎪=∙∙<<⎨ ⎪⎝⎭⎪⎪∂⎪=∙<≤∂⎪⎩∑b)修正权值()()1,0llij ij l ij E w t w t w ηη∂+=->∂包括两种学习方式:模式(Pattern)学习方式:()()1,0pl l ij ij l ij E w t w t w ηη∂+=->∂1.2.4本文运用的BP 神经网络结构二、不同样本数量性能对比本文通过前一天的玉米期货属性因素:指数最高值、指数最低值、收盘指数、当日交易量和当日交易额五个因素运用支持向量机和单隐含层的BP 神经网络以及双隐含层的BP 神经网络寻找响应关系预测第二天的开盘金额指数。
分别用五组不同数量的样本数据,分析样本数据多少对模型性能的影响,决定性能的指标有:目标值目标值)(预测值/-相对对误=样本数目标值))(预测值(平均误差样本数/-abs 1∑=样本数))目标值目标值)(预测值((准确率样本数/100%*-abs -11∑=平均误差为15.4786,准确率为0.9886平均误差为23.0628,准确率为0.9835平均误差为20.1082,准确率为0.9853平均误差为10.4371,准确率为0.9925平均误差为12.3201,准确率为0.9910平均误差为11.5022,准确率为0.99162.1.3500组样本对比:平均误差为8.5662,准确率为0.9943平均误差为10.4371,准确率为0.9925平均误差为19.3519,准确率为0.99372.1.41000组样本对比:平均误差为7.9745,准确率为0.9950平均误差为8.6907,准确率为0.9945平均误差为8.7245,准确率为0.99452.1.52427组样本对比:平均误差为6.6678,准确率为0.9964平均误差为7.0711,准确率为0.9962平均误差为6.9456,准确率为0.99632.1.6列表归纳分析:2.1.7结论100组200组数据时支持向量机明显优于BP神经网络然而双隐含层优于单隐含层BP,500组和1000组和以上两组相似但不同的是单隐层BP和双隐层BP性能逐渐逼近,2427组三者性能逐渐逼近。
三、对比模型评价分析以及结论神经网络是基于传统统计学的基础上的。
传统统计学研究的内容是样本无穷大时的渐进理论,即当样本数据趋于无穷多时的统计性质,而实际问题中样本数据往往是有限的。
因此,假设样本数据无穷多,并以此推导出的各种算法很难在样本数据有限时取得理想的应用效果。
支持向量机则是基于统计学理论的基础上的,可以克服神经网络难以避免的问题。
通过支持向量机在逼近能力方面与BP网络仿真结果的比较表明,支持向量机具有较强的逼近能力和泛化能力。