基于支持向量机的上证指数开盘指数预测
来源:用户上传
作者: 周易
摘要:支持向量机在模式分类、回归分析等领域应用的过程中,其性能依赖于参数的选取,而参数往往是随机给定的或凭测试经验给定。针对这一情况,对影响模型分类、回归能力的相关参数进行了研究,采用交叉验证的思想对其中重要的两个参数(误差惩罚参数和高斯核参数)进行了优化,并成功的应用于上证指数开盘指数的预测,达到了很好的效果。
关键词:支持向量机;交叉验证;参数优化;上证指数
中图分类号:TP 文献标志码:A
Prediction of Opened Index in Shanghai Composite Index
Based on Support Vector Machines
Zhou Yi
(Computer Science, South-Central University for Nationalities, Wuhan, Hubei 430074)
Abstract: In the application of pattern classification, regression analysis and other fields, the performance of Support Vector Machine always depends on the parameter selection, and often given by random or experience. In response to this situation, the relevant parameters which affect the model of classification, regression ability had been studied, using Cross-Validation, two of the best important parameters (error penalty parameter and Gaussian kernel parameter ) is optimized, which can successfully used in the prediction of opened index in Shanghai Composite Index and achieve good results.
Key words: Support Vector Machine; Cross Validation; parameter optimization; Shanghai Composite Index
0 引言
支持向量机(Support Vector Machine, SVM)由Vapnik于20 世纪90年代提出,可以解决小样本情况下的机器学习问题、高维问题、非线性问题、可以提高泛化性能、避免神经网络结构选择和局部极小点问题,在理论研究和算法实现方面都取得了突破性进展,开始成为克服“维数灾难”和“过学习”等传统困难的有力手段[1]。目前,SVM已被广泛应用于模式分类、回归分析、函数估计等领域。然而在分类、回归的过程中,SVM参数对分类精度、回归预测效果有较大的影响。选择合理的参数可使SVM具有更高的精度和更好的泛化能力。传统的参数选择方法是通过随机给定的或凭测试经验给定的,难以达到分类的最优化。本文基于交叉验证(Cross Validation, CV)的方法对SVM的参数进行了优化,并有效的应用于上证开盘指数预测。
1 支持向量机
SVM方法是通过一个非线性映射,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题,也就是升维和线性化[2]。升维,就是把样本向高维空间做映射,这会增加计算的复杂性,甚至会引起“维数灾难”,因而人们很少问津。但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归)。
SVM方法巧妙地解决了升维带来的计算复杂化[3]:应用核函数的展开定理,就不需要知道非线性映射的显式表达式;并且由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但不增加计算的复杂性,而且在某种程度上避免了“维数灾难”。这样,对核函数的参数g优化就显得至关重要。
文献[4]指出:误差惩罚参数c(即支持向量系数口i的上界)可实现在错分样本的比例和算法复杂度之间的折中,在确定的特征子空间中调节学习机器置信范围和经验风险的比例以使学习机器的推广能力达到最好。它的选取一般是由具体的问题而定,并取决于数据中噪声的数量。在确定的特征子空间中,c的取值小表示对经验误差的惩罚小,学习机器的复杂度小而经验风险值较大;如果c取无穷大时则所有的约束条件都必须满足,这意味着训练样本必须要准确地分类。每个特征子空间至少存在一个合适的c,使得SVM推广能力最好。当c超过一定值时,SVM的复杂度达到了特征子空间允许的最大值c时,经验风险和推广能力几乎不再变化。
2交叉验证
CV的思想可以在某种意义下得到最优的参数,可以有效的地避免过学习和欠学习状态的发生,最终对于测试集合的预测得到较理想的准确率。CV的基本思想是在某种意义下将原始数据(dataset)进行分组,一部分作为训练集(train set),另一部分作为验证集(validation set)。其方法是首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以得到的准确率作为评价的性能指标。
常见的CV方法:
(1) Hold-Out Method
(2) K-fold Cross Validation(K-CV)
(3) Leave-One-Out Cross Validation(LOO-CV)
通过比较可知CV这三种方法的区别[5]:
方法(1)处理简单但不是真正意义上的CV方法,因为这种方法没有达到交叉的思想,由于是随机的将原始数据分组,所以最后验证集分类准确率的高低与原始数据的分组有很大的关系,所以这种方法得到的结果其实并不具有说服力;
方法(2)将原始数据分为K组,将每个子集数据分别做一次验证集,同时其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标。K-CV可以有效地避免过学习以及欠学习状态的发生,最后的结果也比较有说服力。
方法(3)与方法(2)类似,但原始数据是N个样本,每个样本单独验证,这样最接近样本的分布,结果比较可靠;且没有随机因素影响实验数据,保证实验过程是可以复制的。但计算成本高,当原始数量相当多时,LOO-CV实际操作困难,不容易实现。
3 模型建立
对于大盘指数的有效预测为从整体上观察股市的变化提供了强有力的信息,这样对于上证指数大盘指数的预测很有意义。本文用Matlab对1990.12.20―2009.08.19每日的开盘数进行回归分析,拟合出结果。
3.1 模型假设
假设上证指数每日的开盘数与前一日的开盘指数,指数最高值,指数最低值,收盘指数,交易量,交易额相关,即把前一日的开盘指数,指数最高值,指数最低值,收盘指数,交易量,交易额作为当日开盘指数的自变量,当日的开盘指数为因变量。
3.2 模型实现
3.2.1 对数据进行预处理
使用mapminmax函数对原始数据即自变量和因变量,进行归一化处理,使数据处于(-1,1)的概率分布中[6]。通过归一化,使物理系统数值的绝对值变成相对值关系,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。简化计算,缩小量值。
3.2.2 参数选择
本文采用K-CV的方法对误差惩罚参数c和高斯核参数g这两个参数进行优化,以建立SVM模型。采用多参数网格搜索法进行优化,其基本原理是将各参数变量值(c和g)的可行区间(可从小到大)划分为一系列的小区,由计算机顺序算出对应各参数变量值组合,所对应的误差目标值(即预测值和实际值的偏差平方和)并逐一比较择优,从而求得该区间内最小目标值及其对应的最佳特定参数值。这种估值方法可保证所得的搜索解基本是全局最优解,可避免重大误差。
3.2.3回归预测及结果分析
利用到得的最佳参数c和g对SVM进行训练,然后对原始数据进行回归预测。
运行结果:均方误差 MSE = 5.29148e-005 相关系数 R = 99.9539%
本文使用的是 ( )类型的SVM,采用的是Gaussian RBF(Radial Basis Function)核函数,具有很强的回归能力[7]。通过使用CV方法对误差惩罚参数c和高斯核参数g的优化,可以很好的对上证开盘指数进行回归预测,达到理想的效果。
4 结论
SVM具有优良的学习能力和推广能力,能够有效的克服“维数灾难”和“过学习”的问题。而SVM的参数是影响分类精度、回归预测的重要因素,本文指出误差惩罚参数c和高斯核参数g对SVM性能的影响是至关重要的,并且基于交叉验证的方法,运用多参数网格搜索法对这两个参数进行优化,有效的用于对上证开盘指数的预测。
参考文献:
[1] Cortes C, Vapnik V.Supoort-Vector network[J].Machine Learning,1995,20:273-297.
[2] Vapnik V. statistical Learning Theory[M].Wiley, New York,NY,1998.
[3] 冯振华,杨杰明.SVM回归的参数探讨[J].机械工程与自动化,2007,3:17-22.
[4] KEERTHI S S, LIN C J. Asymptotic behaviors of support vector machines with gaussian kernel[J],neural computation,2003,15:1667―1689.
[5] 邱龙金,贺昌政. 神经网络稳定性的交叉验证模型[M]. 计算机工程与应用,2010,46(34),43-45.
[6] 张德丰. MATLAB神经网络仿真与应用[M]. 北京:电子工业出版社,2009.
[7]Chih-Chung Chang and Chih-Jen Lin. LIBSVM: a Library for Support Vector Machines[M/OL]. Taiwan:National Taiwan University, February 27, 2009. http://www.csie.ntu.edu.tw/~cjlin.
转载注明来源:https://www.xzbu.com/8/view-45572.htm