APP下载

基于DFS—BPSO—SVM的股票趋势预测方法

2018-01-09李辉赵玉涵

软件导刊 2017年12期
关键词:支持向量机

李辉+赵玉涵

摘要:技术指标广泛应用于股票市场的预测分析,不同特征组合对预测效果产生不同影响。为了提高股票趋势预测的准确度,提出一种两层特征选取及预测方法。第一层特征选取以特征子集区分度衡量准则——DFS为评价标准,第二层特征选取以分类器分类效果为评价准则,两层特征选取均采用二进制粒子群(BPSO)算法对特征空间进行搜索。通过第一层特征选取可以高效剔除部分非预测相关特征,在保留预测特征集信息的基础上缩小特征集规模;第二层特征选取可以准确选择出具有较好预测效果的特征子集。实验数据为2015~2016年上海证券综合指数,结果表明,DFS-BPSO-SVM预测模型相比于其它4种特征选取及预测模型,具有更好的预测效果。

关键词:二进制粒子群算法;支持向量机;两层特征选取;特征子集区分度衡量准则;股票趋势预测

DOIDOI:10.11907/rjdk.171931

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2017)012-0147-05

Abstract:Technical indicator was widely used in stock predicting. Different combination of indicator have an effect on predicting performance. In order to improve stock price trend predicting performance, this study proposes a new predicting model that is Binary Particle Swarm Optimization combined with Support Vector Machine and DFS criterion (DFS-BPSO-SVM) predicting model. Its a two step feature selection predicting model. In first step, DFS criterion is used for feature selection and we got suboptimal feature subset. After this process, redundant features have been removed and the scale of the feature set becomes smaller. In second step, BPSO-SVM is used for feature selection on suboptimal feature subset and we got best feature subset which leads to best stock trend predicting performance. Based on best feature subset, sample set is constructed for stock trend predicting. In this study, the target is to predict 2015-2016 Shanghai securities composite index daily movement. The experiment results indicate that DFS-BPSO-SVM predicting model have a better performance on stock price and index daily movement than another 4 predicting model.

Key Words:binary particle swarm optimization; support vector machine; two step feature selection; DFS; stock trend predicting

0 引言

自从股票诞生之日起,关于股票价格预测的尝试与研究从未停歇。每一位股票交易者都希望自己能够准确预测未来股票的价格,从而获得超额收益。然而,股票市场具有复杂非线性、非平稳、高噪声等特性[1],股票预测一直以来都充满了困难和挑战。

随着机器学习技术的诞生与发展,越来越多机器学习方法应用于股票趋势预测研究,基于人工神经网络(ANN)[1,3]、支持向量机(SVM)[4]的智能预测方法相比于传统预测方法普遍具有较好的预测效果。不少改进算法也相继应用于股票趋势预测,并取得了一定效果[2, 5]。虽然预测算法在不断改进和发展,但是预测算法性能的提升只是在具有特定输入特征的数据集上相应地提升了预测效果,一旦输入特征改变,将可能直接影响预测准确度。由于股票市场具有复杂多变的特征,使得单一预测方法越来越难以满足建模预测的要求。

针对这一问题,不少研究着眼于构建組合模型进行预测,即先通过特征选取方法选择用于预测的最优特征集,然后将选取的特征用于股票预测。张炜等[6]提出了一种将自适应遗传算法与粗糙集理论结合的特征选取方法,该方法考虑到特征之间和特征与预测结果之间的知识体系,选择包含信息较多的特征组成特征子集,然而该方法在选取特征时没有考虑到预测结果的实际贡献;Zhang等[7]提出了一种CFS(Causal Feature Selection)方法,分别结合神经网络、支持向量机、随机森林、朴素贝叶斯、决策树、线性回归与PCA、CART、NoFS、Lasso方法进行对比实验,结果验证了CFS方法的有效性,但该特征选取方法也仅考虑到了特征与预测结果的因果联系,同样未考虑特征子集对于实际预测结果的贡献;张伟等[8]提出了一种遗传算法结合支持向量机(GA-SVM)的股票预测模型,该方法以预测效果作为特征选择依据,通过GA搜寻最优特征子集。虽然该方法充分考虑到实际预测结果对于特征选取的影响,但此方法进行特征选取时效率较低,当特征较多时比较费时。endprint

针对上述研究存在的问题,本文提出了一种基于两层特征选取方法构建的股票趋势预测模型。进行第一层特征选取时,充分考虑到特征和特征子集对于分类贡献的大小,采用DFS(Discernibility of Feature Subset)准则[9]作为特征子集衡量度标准,选择出分类贡献大的特征子集作为次优特征子集;进行第二层特征选取时,充分考虑模型实际预测结果对于特征选取过程的影响,以SVM模型的预测准确度作为评价标准,在第一层选择出的次优特征子集基础上选出最优特征子集。为了加快次优、最优特征子集的搜寻过程,同时尽可能得到全局最优特征子集,本文采用了一种随机搜索算法——BPSO算法进行优化搜索。

1 用于股票趋势预测的特征子集评价准则

股票趋势预测即是对股票未来的涨跌进行预测,实质为二分类预测。分类预测效果与预测特征集的优劣存在很大关联,因此需要对预测特征进行筛选。在特征选取时,需要考察已有特征之间的相互联系和对分类的重要性,选择出既能减少冗余或不相关信息,同时又能突出分类能力的特征子集。本文提出的是一种两层特征选取方法,首先分析特征集内部特征数据对于分类贡献的大小,选择分类贡献大的特征子集作为次优特征子集,然后根据分类器的实际预测效果,在次优特征子集中选择出最优特征子集。两层特征选取方法可以在保证以分类效果为最终评判标准的条件下,通过对特征进行预筛选,提高特征选取过程的效率和准确性。

特征子集评价准则直接影响是否能够找到用于预测的最优特征子集。总结以往的研究发现,衡量特征集内部特征对于分类贡献大小的常见评价标准有两类,一类是将单个特征的分类能力大小进行排序,选择分类能力强的特征组成特征子集,典型算法有Relief、 Fisher等;另一类是综合考虑特征之间的相关性和分类能力大小,选择特征之间相关性小并且分类能力强的特征作为特征子集[9],典型准则有CFS、DFS等。第一类准则仅考虑了单个特征分类能力的大小,忽视了特征间相关性对特征子集分类能力大小的影响;第二类准则中CFS更多考虑的是特征之间的两两相关性,而对多个特征之间相关性考虑不足,同时仅能应用于离散数据,对于非离散数据需要进行离散化处理;DFS综合考虑特征子集分类能力和多个特征之间的相关性,同时适用于非离散数据[9]。通过以上分析,本文采用DFS准则作为第一层特征选取的评价准则。

1.1 DFS特征子集评价准则

3 基于DFS-BPSO-SVM的上证指数预测实验

3.1 实验数据

本文将股票预测分析中常用的49个技术指标(AD,BIAS,CCI,CR,DIFF,EMA12/26,LWR,MACD,Momentum,RSI,SDMA,KDJ,VR,WDMA,BHR5/20/60,ARBR,AROON,ATR,BOLL,CMO,CV,DMA,DMI,PosDI,NegDI,ADX,AMA,MA,DPO,EMV,MAEM,FIV,MFI,MTM,NVI,PVI,OBV,PSY,ROC,RVI,TRIX,MATRIX,VHF,WAD,WMS,WVAD)作为预测特征(输入变量),股票指数每日趋势作为预测目标(输出变量)。考虑到股票交易中存在的各种税费和佣金,当股票价格相较前一日上涨0.3%时,标记为“1”,反之标记为“-1”。

根据技术指标构造的49维特征量中每一维特征分量都具有不同的取值范围,并且取值范围差别很大。特征分量之间巨大的数量差异会导致学习算法的参数寻优过程变得复杂,增加了时间成本,同时也会造成大值特征主导预测模型,降低模型预测性能的不利情况[10]。因此,本文采用公式(9)对特征量进行归一化处理,将每一维特征分量都转换到区间[-1,1]。

实验采用的数据为上证综合指2015~2016年的相关交易数据和特征指标,总共263个样本数据。将样本集中80%的样本作为特征选取样本集Train,20%样本作为测试集P。其中特征选取样本集又分为训练集和测试集。

3.2 实验设计

为了验证本文提出的特征选取及预测方法的有效性,分别将主成份分析(PCA)、特征权重算法(Relief)、遗传算法(GA)与SVM结合的特征选取预测模型与DFS-BPSO-SVM模型进行对比实验,同时将未进行特征选取的SVM预测模型作为对比。

实验环境为Matlab2015a, 使用LIBSVM进行分类预测实验,RBF函数作为SVM核函数。需要设置的SVM参数有C、γ,本实验采用5-折交叉验证方法确定预测模型参数。通过网格搜寻的方法确定最佳参数组合,搜寻范围C∈[0.5,50],步长为0.5;γ∈[0.2,6],步长为0.2。在PCA-SVM模型中,本实验将主成份累计贡献率∑ni=1αi阈值设置为95%,即选取协方差矩阵特征值贡献之和达到95%的前n个贡献大的特征;在Relief特征选取过程中,需要确定特征分类权重阈值,图2为特征选取过程中特征的权重分布和统计信息。为了在保留特征集主要信息的同时缩减特征子集规模,本实验将特征权重閾值设置为2 000;使用GA-SVM模型进行特征选取时,将种群规模P设置为30,最大进化代数G设置为100,变异率M设置为0.1,交叉率C设置为0.8,图3为GA-SVM特征选取时特征子集适应度值变化曲线;使用DNS-BPSO-SVM选取次优特征子集时,两层特征选取过程中粒子群粒子数N均设置为30,最大迭代次数I均设置为50,粒子群速度更新公式参数c1=c2=2,图4、图5分别为DFS-BPSO-SVM模型进行两层特征选取时,特征子集适应度值变化曲线。

3.3 实验结果分析

本文采用5种特征选取及预测模型,在相同的实验环境下分别进行实验。表2列出了每种方法所选特征数、特征选取耗时、所选特征子集在测试集上的平均预测精确度(Precision)和准确度(Accuracy),以及训练集平均预测耗时。通过表2实验结果可知,未进行特征选取的SVM预测模型精确度和准确度在几种方法中都是最差的,同时训练耗时最多;PCA-SVM模型的特征选取过程时间最短,endprint

但预测精确度和准确度均不如GA-SVM模型及DFS-BPSO-SVM模型;Relief模型训练耗时最短,但预测准确度和精确度仅优于未进行特征选取的SVM模型;DFS-SVM为两层特征选取中次优特征子集对测试集的预测,可以看出DFS-SVM模型预测表现优于Relief模型,稍优于PCA-SVM模型;GA-SVM和DFS-BPSO-SVM预测模型均具有较高的预测准确度和精确度,DFS-BPSO-SVM预测精确度高于GA-SVM,而预测准确度稍逊于GA-SVM。综合考虑预测精确度和准确度,DFS-BPSO-SVM模型优于GA-SVM模型。无论是GA-SVM模型还是DFS-BPSO-SVM模型,特征选取都耗时很长,这也是以预测效果为特征选取准则方法共有的问题。然而,在股票预测过程中更加重视预测效果,因而特征选取耗时为次要因素。对比DFS-BPSO-SVM和GA-SVM的特征选取耗时,DFS-BPSO-SVM明显低于GA-SVM,这是因为DFS-BPSO-SVM在第一层特征选取过程中,剔除了一些非预测相关特征,缩减了特征子集规模,使分类器在训练过程中耗时减少。同时,BPSO具有较高精确度和较快的收敛速度,从而提高了特征子集优化效率。本文提出的两层特征选取方法在保证预测效果的同时,提高了以分类效果为评价准则的特征选取效率。

4 結语

本文提出了一种基于DFS-BPSO-SVM的股票趋势预测方法。首先通过DFS-BPSO进行第一层特征选取,得到次优特征子集;然后通过BPSO-SVM进行第二层特征选取,得到最优特征子集;最后以选取出的最优特征构建样本集,使用SVM进行训练预测。对比常用的几种特征选取及预测方法,实验结果表明,本文提出的DFS-BPSO-SVM股票趋势预测模型具有较好的预测效果。该方法通过第一层特征选取,高效剔除了一些非预测相关特征,减少了冗余信息对股票趋势预测的影响,同时缩减了特征规模;通过第二层特征选取得到最优特征组合,提高了预测准确率。当预测特征较多时,该方法具有较好的特征选取及预测效果,并兼具相对较高的运行效率。

参考文献:

[1] REFENES A N, BURGESS A N,BENTZ Y. Neural networks in financial engineering: a study in methodology[J]. IEEE transactions on neural networks, 1997,8(6):1222-1267.

[2] JIGAR PATEL,SAHIL SHAH,PRIYANK THAKKAR,et al. Predicting stock and stock price index movement using trend deterministic data preparation and machine learning techniques [J]. Expert Systems with Applications, 2015,42(1):259-268.

[3] XIAOTIAN ZHU, HONG WANG, LI XU, et al. Predicting stock index increments by neural networks: the role of trading volume under different horizons [J]. Expert Systems with Applications, 2008,34(4):3043-3054.

[4] KYOUNG-JAE KIM. Financial time series forecasting using support vector machines [J]. Neurocomputing, 2003,55(1-2):307-319.

[5] CHI-JIE LU. Hybridizing nonlinear independent component analysis and support vector regression with particle swarm optimization for stock index forecasting [J]. Neural Computing & Application, 2013,23(7-8):2417-2427.

[6] 张炜,范年柏,汪文佳.基于自适应遗传算法的股票预测模型研究[J].计算机工程与应用,2015,51(4):254-259.

[7] XIANGZHOU ZHANG, YONG HU, KANG XIE, et al. A causal feature selection algorithm for stock prediction modeling[J].Neurocomputing, 2014,142:48-59.

[8] 张伟,李泓仪,兰书梅,等.GA-SVM对上证综指走势的预测研究[J].东北师大学报:自然科学版,2012,44(1):55-59.

[9] 谢娟英,谢维信.基于特征子集区分度与支持向量机的特征选择算法[J].计算机学报,2014,37(8):1704-1717.

[10] YAKUP KARA,MELEK ACAR BOYACIOGLU, OMER KAAN BAYKAN. Predicting direction of stock price index movement using artificial neural networks and support vector machines: the sample of the istanbul stock exchange[J]. Expert Systems with Applications, 2011,38(5):5311-5319.

[11] KENNEDY J, EBERHART R C. Particle swarm optimization [C]. Proceedings of International Conference on Neutral Networks IV, 1995:1942-1948.

[12] 刘全金,赵志敏,李颖新,等.基于近邻信息和PSO算法的集成特征选取[J].电子学报,2016,44(4):995-1002.

[13] KENNEDY J, EBERHAR R. A discrete binary version of the particle swarm algorithm[C]. Proceeding of the World Multiconference on Systemics, Cybernetics and Informatics, Newjersy: Piscataway, 1997:4104-4109.

(责任编辑:黄 健)endprint

猜你喜欢

支持向量机
基于支持向量回归机的电能质量评估
基于智能优化算法选择特征的网络入侵检测
基于改进支持向量机的船舶纵摇预报模型
基于支持向量机的金融数据分析研究
管理类研究生支持向量机预测决策实验教学研究