郭海山, 高波涌, 陆慧娟
(中国计量大学 信息工程学院,浙江 杭州 310018)
在股票市场中,对于投资者来说,股票价格走势的预测一直是热门问题。准确判断和把握整个股票市场的变化趋势,不仅可以减少股票市场中盲目投资的现象,对于提高股市中投资者的理性程度具有较高的现实意义,更可以为国家制定相关经济政策提供参考[1]。
支持向量机(support vector machine,SVM)作为机器学习领域的的新方法,已被广泛应用于股票价格预测的研究中。彭丽芳等人[2]借助SVM方法构建模型对股票价格进行了预测,实验结果明显好于传统方法。李云飞等人[3]提出了一种基于SVM的股票投资价值分类模型,取得了不错的实验结果。Pai Ping-Feng等人[4]提出了一种基于自回归积分滑动平均(autoregressive integrated moving average,ARIMA)模型和SVM相结合的混合模型预测台湾股票收盘价走势,结果表明:混合模型均高于单纯的ARIMA模型和SVM模型预测精度。李小琳等人[5]提出了一种SVM修正的模糊时间序列模型,并将其用于上证指数的预测研究中,结果表明模型的均方根误差平均为22.73,明显低于其他模型。张伟等人[6]提出了一种遗传算法(genetic algorithm,GA)和SVM相结合的方法,并将其用于上证综指的走势预测中。上述文献方法忽略了特征选择对SVM性能的影响;2)优化方法耗时很难精确找到最优模型参数。特征选择对SVM分类算法起着重要的作用。魏小敏等人[7]提出了一种基于递归特征消除(recursive feature elimination,RFE)法的蛋白质能量热点预测,实验表明模型预测精度提高了6.25 %。代琨等人[8]提出了一种快速迭代的基于SVM的特征选择算法。林俊等人[9]提出了一种SVM-RFE-Boruta粒子群优化(Boruta particle swarm optimization,BPSO)算法的特征选择方法。徐国祥等人[1]提出了一种主要成分分析(PCA)-GA-SVM模型,并将其用于沪深300指数预测精度准确分析中。
近年来有很多学者针对PSO优化SVM方法进行了深入研究。姜滨等人[10]通过PSO对最小二乘SVM(least square SVM,LS-SVM)的数参数进行优化,从而提高模型的精确度。谷文成等人[11]将PSO-SVM应用于双螺旋分类问题中。武昊等人[12]将PSO-SVM方法进行肌电信号步态识别,使得优化后的平均识别率达到了97.0 %。黄发明等人[13]提出了一种基于多变量PSO-SVM模型的滑坡地下水位预测方法,可以真实反映地下水位系统发展演化的本质特征。而目前尚无基于Boruta和SVM方法的股票预测文献。
本文提出了采用Boruta算法进行特征选择以减少SVM特征集的复杂度,同时采用PSO算法优化SVM的惩罚参数及核函数参数的新算法,并首次将该优化后的SVM用于股票交易信号的识别和分类研究中,以获得更优的分类性能和识别判断能力。
设X1,X2,…,Xn为输入向量xj={xi1,xi2,…,xij},K(X,X1),K(X,X2),…,K(X,Xn)为SVM的核函数。SVM的输出分类决策函数为
0≤ai≤C
(1)
式中ai为系数;C惩罚参数;μ为权系数;b∈R为偏置。核函数选择高斯核函数
(2)
1)通过增加原始数据集所有属性的随机性成分(也称阴影属性)得到扩展数据集,然后在扩展数据集上运行随机森林分类器,获得评价特征重要性的Z分值。
2)将阴影属性分值低于最大Z分值(Zmax)的属性标记为+1,记为hits。
3)使用Zmax对阴影属性中重要性无法确定的属性进行双侧显著性检验,标记阴影属性分值小于Zmax的特征为0。
4)根据伯努利公式
(3)
计算步骤(3)中hits属性的概率,将概率值低于0.01的属性标记为重要,并将其移出扩展数据集。
5)重复上述步骤,直到所有属性均被视为“重要”,或者算法达到随机森林运行前设置的极限值。
PSO算法标准公式为
vid=λvid+c1r1(pbestd-xid)+c2r2(gbestd-xid)
(4)
xid=xid+βvid
(5)
式中λ为惯性权重;d=1,2,…,D为空间维度;i=1,2,…,n为群中粒子总数;vid为第i个粒子飞行速度;xid为第i个粒子的当前位置;c1和c2为学习因子。
为了提高SVM的预测精度并减少计算量, 本文采用Boruta算法先对实验数据集进行特征选择,再通过PSO算法优化SVM的惩罚参数C和核函数参数g得到SVM误差最小的一组参数,提高SVM的分类准确率。
基于特征选择和PSO-SVM模型(Boruta-PSO-SVM)的股票交易信号预测算法步骤为:
1)根据k线图的N种不同技术指标构建样本集并对其进行特征选择,降低SVM输入维度到D维,即D 2)D维空间中,初始化m个粒子的随机位置和速度; 3)确定SVM参数,输入特征选择后的数据训练模型; 4)计算评价粒子适应度值,并与其经过的最优pbest,gbest比较,如果较好,则将其作为当前最优pbest,gbest值; 5)判断是否满足迭代终止条件,若不满足,根据式(4)、式(5)更新粒子速度和位置,转步骤(3); 6)若满足收敛条件,则得到使SVM误差最小的惩罚参数C和核函数参数g的最优值,然后使用最优参数重新训练SVM,作为最终的分类器进行股票收益率的识别分类。 选择股票日数据的收盘价(Close,C)、最高价(High,H)及最低价(Low,L)构建交易信号Yi={y1,y2,…,yi},其中,i=1,2,…,n为样本编号。交易信号的具体构建步骤如下: (6) 2)计算未来k,(k=1,2,…,10)天的算数收益Vi (7) 3)计算算数收益的动态累加变量Ti为 (8) 4)构建交易信号Yi (9) 样本数据集分别为平安银行2013年8月16日到2015年11月27日的500个交易日的股票数据和沪深300指数,2012年6月1日到2016年1月3日的824个交易日数据。对每组样本序列i,选择13个特征参数(ADX,Aroon,ATR,BB,CCI,CLV,CV,EMV,KST,MACD,MFI,ROC,SAR),构成一组特征向量Xj={xi1,xi2,…,xij},采用Boruta算法进行特征选择(选择ADX,Aroon,ATR,BB,CCI,CV,KST,MACD,MFI,SAR等10个特征)。 构造PSO-SVM分类器,实验中分类器选择了径向基核函数,C,g参数分别设置为[10-1,104],[10-1,103]。PSO算法初始参数[15]设置为:惯性权重λ=0.8,学习因子c1=c2=2.0,粒子规模为20,迭代数为100。 根据适应度值变化曲线选择最优C,g参数建立最终SVM分类模型。其中,数据集按照9∶1的比例随机抽样成训练集和测试集。训练集用于SVM分类模型训练,测试集用于测试SVM分类模型准确度。 实验中PSO算法迭终止优化过程时,准确率为84 %,输出的最优参数值Cbest=1.725 3,gbest=18.818 3。可以看出:相对于SVM分类模型C,g参数的取值范围,PSO算法可以快速准确地进行参数寻优,此为采用Boruta-PSO-SVM方法的一大优点。图1为PSO优化SVM的适应度变化曲线。 图1 粒子群适应度曲线 同时在兼顾分类器的泛化能力和识别率的前提下,将训练集和测试集分别送入未经优化的SVM分类模型(SVM), PSO-SVM和Boruta-PSO-SVM模型。 表1为2种数据集上特征选择、PSO-SVM的对比结果。可以看出:相比未经过优化的SVM分类模型,经过特征选择和PSO-SVM分类模型的预测精度在84 %左右,结果明显优于未经特征参数选择和参数优化的SVM分类模型,此为本文采用Boruta-PSO-SVM方法的另一大优点。 表1 Boruta-PSO-SVM结果 为了测试Boruta-PSO-SVM的效果,本文的对比实验选用了标准的BP神经网络反向传播神经网络(back propagation neural network,BPNN)、决策树(decision tree,DT)、极限学习机(extreme learning machine,ELM)3种算法。其中BP神经网络中神经元个数设置为10;决策树采用R语言的rpart包,参数均设置为默认值;极限学习机隐含层节点数设置为30。实验结果如表2所示。可以看出:在牺牲测试时间的前提下,本文提出Boruta-PSO-SVM的股票交易信号识别方法优势明显。 表2 不同算法对比结果 由此可见,Boruta-PSO-SVM模型参数寻优,具有精确、稳定的特点。 采用Boruta算法进行特征选择,并结合算法PSO模型的实现简单、设置参数少、计算收敛速度快等特点以及SVM小样本的学习能力、学习速度快、优化能力强等优点,得到了较优的Boruta-PSO-SVM混合模型。实验结果表明:该模型可以明显提高SVM的预测精度,并且结论可靠,在股票收益率的研究中具有一定的实用性。 [1] 徐国祥,杨振建.PCA-GA-SVM模型的构建及应用研究沪深300指数预测精度实证分析[J].数量经济技术经济研究,2011(2):135-147. [2] 彭丽芳,孟志青,姜 华,等.基于时间序列的支持向量机在股票预测中的应用[J].计算技术与自动化,2006(3):88-91. [3] 李云飞,惠晓峰.基于支持向量机的股票投资价值分类模型研究[J].中国软科学,2008(1):135-140. [4] Pai Ping-Feng,Lin Chih-Sheng.A hybrid arima and support vector machines model in stock price forecasting[J].The International Journal of Management Science,2005,12(33):497-505. [5] 李小琳,孙 玥,刘 洋.基于SVM修正的模糊时间序列模型在沪指预测中的应用[J].中国科学技术大学学报,2016,46(3):238-246. [6] 张 伟,李泓仪,兰书梅,等.GA-SVM对上证综指走势的预测研究[J].东北师大学报:自然科学版,2012(3):55-59. [7] 魏小敏,徐 彬,关佶红.基于递归特征消除法的蛋白质能量热点预测[J].山东大学学报:工学版,2014,44(2):12-20. [8] 代 琨,于宏毅,李 青.一种基于支持向量机的特征选择算法[J].模式识别与人工智能,2014,27(5):463-471. [9] 林 俊,许 露,刘 龙.基于SVM-RFE-BPSO算法的特征选择算法[J].小型微型计算机系统,2015, 36 (8):1865-1868. [10] 姜 滨,孙丽萍,曹 军,等.基于PSO优化LS-SVM的木材含水率软测量建模[J].重庆大学学报,2016,39(1):48-54. [11] 古文成,柴宝仁,滕艳平.基于粒子群优化算法的支持向量机研究[J].北京理工大学学报,2014,34(7):705-709. [12] 武 昊,席旭刚,罗志增.基于熵和PSO优化SVM的肌电信号跌倒识别[J].传感技术学报,2015,28(11):1586-1590. [13] 黄发明,殷坤龙,张桂荣,等.多变量PSO-SVM模型预测滑坡地下水位[J].浙江大学学报:工学版,2015,49(6):1193-1199. [14] 高发荣,王佳佳,席旭刚,等.基于粒子群优化—支持向量机方法的下肢肌电信号步态识别[J].电子与信息学报,2015,37(5):1154-1159. [15] 於 敏,于凤芹,陈 莹.超像素词包与SVM分类的图像标注[J].传感器与微系统,2016,35(12):63-65. [16] 李 彦,梁正桃,李立京,等.基于小波和支持向量机的光纤微振动传感器模式识别[J].传感器与微系统,2013,32(2):43-49. [17] 余幸运,孙 茜,王小艺,等.基于粒子群优化算法的水质传感器优化部署研究[J].传感器与微系统,2016,35(12):30-33.3 实验与结果分析
3.1 股票交易信号数据
3.2 股票交易信号数据分析
3.3 结果与讨论
4 结束语