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