闞子良,蔡志丹
(長(zhǎng)春理工大學(xué) 理學(xué)院,長(zhǎng)春 130022)
股票預(yù)測(cè)涉及到投資者的經(jīng)濟(jì)利益,如何能提供較準(zhǔn)確的股票預(yù)測(cè)一直是人們關(guān)注的熱點(diǎn)問題。根據(jù)國(guó)內(nèi)外專家學(xué)者的研究,當(dāng)代金融數(shù)據(jù)越來(lái)越呈現(xiàn)出非線性的特征,傳統(tǒng)時(shí)間序列的預(yù)測(cè)方法,比如AR、MA和ARMA等基于線性數(shù)據(jù)的模型,早已經(jīng)不能適應(yīng)需要。而神經(jīng)網(wǎng)絡(luò)[1]方法雖能提供較精確的結(jié)果,但是有網(wǎng)絡(luò)模型和結(jié)構(gòu)選擇困難的缺點(diǎn),容易陷入局部最小,訓(xùn)練速度慢,泛化能力差等現(xiàn)象。近年來(lái)支持向量機(jī)技術(shù)是神經(jīng)網(wǎng)絡(luò)之后出現(xiàn)的一種解決非線性問題的有效方法,屬于機(jī)器學(xué)習(xí)[2-3]范疇,可以克服傳統(tǒng)統(tǒng)計(jì)方法[4]和神經(jīng)網(wǎng)絡(luò)的很多缺點(diǎn)。
具體實(shí)驗(yàn)時(shí),先運(yùn)用最小二乘法改進(jìn)運(yùn)算效率和預(yù)測(cè)精度,考慮到支持向量機(jī)技術(shù)對(duì)參數(shù)的敏感性,又采用遺傳算法優(yōu)化支持向量機(jī)[5-10]的兩個(gè)參數(shù)Gamma和γ。將某公司的107天的股票價(jià)格數(shù)據(jù)進(jìn)行預(yù)測(cè)(含今日開盤價(jià),收盤價(jià),最高價(jià),最低價(jià),交易量,10日移動(dòng)平均線,30日移動(dòng)平均線和RSI)。將次日的收盤價(jià)為輸出,利用主成分分析法提取20個(gè)變量中累積貢獻(xiàn)率大于95%的變量為輸入,訓(xùn)練模型并得出測(cè)試數(shù)據(jù)的預(yù)測(cè)值,對(duì)比模型參數(shù)優(yōu)化前后的預(yù)測(cè)效果,從而對(duì)該改進(jìn)算法進(jìn)行分析。
支持向量機(jī)是針對(duì)解決兩種類別的分類問題而提出的。第一種是線性可分問題。設(shè)訓(xùn)練數(shù)據(jù):x1,x2,...,xn,x∈Rn。
分類超平面最常見的表達(dá)式如下:
將訓(xùn)練數(shù)據(jù)和標(biāo)簽集轉(zhuǎn)換為這樣的形式:(x1,y1),...,(xn,yn),x∈Rn,y∈{+1,-1} 。于是激活(傳遞)函數(shù)可定義為:
sgn表示符號(hào)函數(shù),對(duì)應(yīng)分類標(biāo)簽,函數(shù)只有兩個(gè)輸出值-1和+1。wTx+b=0是要尋找的最大間隔超平面。
訓(xùn)練樣本為線性不可分時(shí),加入正松弛變量ξi,i=1,2,...,n和懲罰因子C,原始問題為:
經(jīng)過同樣的推導(dǎo)過程,對(duì)偶優(yōu)化問題為:
由于采集得到的股票數(shù)據(jù)的維數(shù)有20個(gè),維數(shù)過大,故采取基于PCA去噪的參數(shù)尋優(yōu)最小二乘支持向量機(jī),主成分分析(PCA方法)是1901年由皮爾遜引入,1933年霍特林發(fā)展了該理論。主成分分析的就是將具有一定相關(guān)性的多個(gè)變量,組合成為一組相互無(wú)關(guān)的綜合變量,進(jìn)而代替原變量。具體預(yù)測(cè)步驟如下:
(1)下載樣本數(shù)據(jù)集,歸一化處理初始數(shù)據(jù)集。
(2)應(yīng)用主成分分析法,提取累積貢獻(xiàn)率達(dá)到90%以上的主成分作為輸入變量。
(3)選取訓(xùn)練樣本和測(cè)試樣本。
(4)不通過參數(shù)的尋優(yōu)對(duì)樣本進(jìn)行訓(xùn)練。再通過GA優(yōu)化訓(xùn)練樣本的參數(shù),并進(jìn)行回歸訓(xùn)練。
(5)將測(cè)試樣本輸入訓(xùn)練好的LS-SVM和SVM回歸模型中,輸出預(yù)測(cè)結(jié)果,計(jì)算預(yù)測(cè)精度和擬合優(yōu)度,比較優(yōu)化前后的預(yù)測(cè)效果。
由于最小二乘支持向量機(jī)的訓(xùn)練需要樣本量足夠大才能保證預(yù)測(cè)精度達(dá)到一定水平,在統(tǒng)計(jì)軟件上提取了某公司的107天的股票價(jià)格,行變量為日期,列變量為今日的開盤價(jià),收盤價(jià),最高價(jià),最低價(jià),交易量,10日移動(dòng)平均線,30日移動(dòng)平均線和RSI。每列歸一化后,將第二日的收盤價(jià)作為輸出,用主成分分析法提取20個(gè)變量,累積貢獻(xiàn)率95%以上的變量作為輸入變量??紤]到訓(xùn)練樣本應(yīng)多于測(cè)試樣本,前100天的數(shù)據(jù)應(yīng)為訓(xùn)練樣本,剩下的7天為測(cè)試樣本。
為了清晰地展現(xiàn)出優(yōu)化前后的模型的效果差異,通過分析模型在計(jì)算機(jī)運(yùn)行的時(shí)間長(zhǎng)短,模型的均方誤差,相關(guān)系數(shù),畫出期望輸出和預(yù)測(cè)輸出圖,以及誤差圖,驗(yàn)證遺傳算法優(yōu)化最小二乘支持向量機(jī)參數(shù)可以極大提高模型的預(yù)測(cè)精度。
利用所建立的模型對(duì)股票數(shù)據(jù)預(yù)測(cè)后,為了解預(yù)測(cè)效果的好壞,即對(duì)預(yù)測(cè)的結(jié)果進(jìn)行檢驗(yàn)?,F(xiàn)采用計(jì)算實(shí)際值與預(yù)測(cè)值的均方誤差MSE來(lái)評(píng)價(jià)模型的好壞。MSE越小,說(shuō)明預(yù)測(cè)精度越高,模型越好,反之,則越差。比較幾種模型對(duì)相空間重構(gòu)后的兩組數(shù)據(jù)預(yù)測(cè)的MSE,分析對(duì)比出模型間的差異,以及優(yōu)化的效果。
其中,e為實(shí)際值與預(yù)測(cè)值的差。
表1 各模型的參數(shù)與預(yù)測(cè)效果
(1)預(yù)處理從同花順股票軟件下載的數(shù)據(jù)后,建立4個(gè)模型預(yù)測(cè)股票價(jià)格的開盤價(jià),分別是原始的PCA-LS-SVM和基于GA算法、PCA的LS-SVM以及基于PCA的原始SVM和基于PCA-GA的SVM。從這四個(gè)模型看遺傳算法是否能提高LS-SVM和SVM的預(yù)測(cè)效果。
(2)在Matlab中采用PCA提取累積貢獻(xiàn)率大于95%的變量,利用計(jì)算機(jī)對(duì)變量進(jìn)行主成分分析之后,得到最好的5個(gè)主成分,第一個(gè)主成分的貢獻(xiàn)率約為65.93%,而這5個(gè)主成分的累積貢獻(xiàn)率為99.14%。其次,建立原始的PCA最小二乘支持向量機(jī)模型。然后,通過實(shí)驗(yàn)實(shí)現(xiàn)基于GA算法、PCA的最小二乘支持向量機(jī)的預(yù)測(cè)過程,根據(jù)第1步的結(jié)果,利用遺傳算法訓(xùn)練具有5個(gè)變量的新訓(xùn)練樣本,得出其優(yōu)化的參數(shù)g和γ。接著,將這兩個(gè)參數(shù)代入到樣本的訓(xùn)練之中,利用訓(xùn)練好的模型進(jìn)行預(yù)測(cè)。SVM模型按同樣的步驟進(jìn)行。
(3)比較這兩個(gè)模型的預(yù)測(cè)效果。運(yùn)用MSE指標(biāo)判斷預(yù)測(cè)好壞,依據(jù)實(shí)驗(yàn)過程,總結(jié)出表1。
可以從表1看出,經(jīng)過遺傳算法的參數(shù)優(yōu)化后,無(wú)論原始的支持向量機(jī),還是最小二乘支持向量機(jī),其預(yù)測(cè)的均方誤差都極大降低了,這證明了遺傳算法的有效性和適用性;另外,4個(gè)模型中,均方誤差最小的是基于PCA-GA的LS-SVM模型,其次是基于PCA-GA的SVM模型,說(shuō)明了LS-SVM比SVM效果更好;鑒于高斯核比其他核函數(shù)具有更大的優(yōu)勢(shì),實(shí)驗(yàn)均采用高斯核作為核函數(shù)。
現(xiàn)利用軟件得出基于PCA-GA的最小二乘支持向量機(jī)模型在測(cè)試樣本中的預(yù)測(cè)結(jié)果,如圖1所示;預(yù)測(cè)結(jié)果圖有上下兩條線,上面的線是實(shí)際值,下面的線是預(yù)測(cè)值??梢钥闯?,這兩條線的走勢(shì)基本一致,誤差大小在2.5以內(nèi)。
圖1 基于PCA-GA的LS-SVM預(yù)測(cè)圖
通過利用多種模型對(duì)股票的收盤價(jià)進(jìn)行預(yù)測(cè)實(shí)驗(yàn),從實(shí)驗(yàn)的解決問題的過程和預(yù)測(cè)結(jié)果中,總結(jié)出如下的結(jié)論:
支持向量機(jī)模型可以僅僅利用很少的數(shù)據(jù)就能得出比較精準(zhǔn)的預(yù)測(cè)結(jié)果。而且訓(xùn)練樣本最好取距離測(cè)試樣本較近的數(shù)據(jù)。
訓(xùn)練樣本取太多,會(huì)導(dǎo)致模型泛化能力差,在訓(xùn)練樣本內(nèi)誤差小,但在測(cè)試樣本內(nèi)會(huì)誤差較大。
遺傳算法對(duì)最小二乘支持向量機(jī)的參數(shù)的優(yōu)化能極大提高建模的速率,還能使預(yù)測(cè)精度大大提升。這說(shuō)明組合預(yù)測(cè)方法較單一的預(yù)測(cè)更有效。
機(jī)器學(xué)習(xí)作為股票等金融數(shù)據(jù)預(yù)測(cè)的有效方法,一方面大幅度地提升了分析處理這類數(shù)據(jù)的能力,另一方面還降低了成本。這種方法同樣適用于其他復(fù)雜類型數(shù)據(jù)的預(yù)測(cè)。
[1]宋玉強(qiáng).人工神經(jīng)網(wǎng)絡(luò)在時(shí)間序列預(yù)測(cè)中的應(yīng)用研究[D].西安:西安建筑科技大學(xué),2005.
[2]孫翔侃,白寶興.基于機(jī)器學(xué)習(xí)的NAO機(jī)器人檢測(cè)跟蹤[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2016,39(2):116-119.
[3]朱成璋.基于機(jī)器學(xué)習(xí)的時(shí)間序列預(yù)測(cè)關(guān)鍵技術(shù)研究[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2014.
[4]Xiao QK,Xing L,Song G.Time series prediction using optimal theorem and dynamic Bayesian network[J].Optik-International Journal for Light and Electron Optics,2016,127(23):11063-11069.
[5]梅倩.LS-SVM在時(shí)間序列預(yù)測(cè)中的理論與應(yīng)用研究[D].重慶:重慶大學(xué),2013.
[6]王鵬,高鋮,楊華民.基于邊分類的SVM模型在社區(qū)發(fā)現(xiàn)中的研究[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2015,38(5):127-130.
[7]梁禮明,鐘震,陳召陽(yáng).支持向量機(jī)核函數(shù)選擇研究與仿真[J].計(jì)算機(jī)工程與科學(xué),2015,37(6):1135-1141.
[8]郭小溪,李剛,閆偉杰.基于遺傳算法整定PID的自主潛器深度控制[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2010,33(3):37-39.
[9]陳偉根,滕黎,劉軍,等.基于遺傳優(yōu)化支持向量機(jī)的變壓器繞組熱點(diǎn)溫度預(yù)測(cè)模型[J].電工技術(shù)學(xué)報(bào),2014,29(1):44-51.
[10]韓敏,許美玲,穆大蕓.無(wú)核相關(guān)向量機(jī)在時(shí)間序列預(yù)測(cè)中的應(yīng)用[J].計(jì)算機(jī)學(xué)報(bào),2014,37(12):2427-2432.
[11]邵小健.支持向量機(jī)中若干優(yōu)化算法研究[D].青島:山東科技大學(xué),2005.
[12]畢建新,張志春,李小波.基于遺傳算法的航空裝備預(yù)防性維修優(yōu)化研究[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2011,34(03):62-65.
長(zhǎng)春理工大學(xué)學(xué)報(bào)(自然科學(xué)版)2018年1期