• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      機器學(xué)習(xí)算法在股票走勢預(yù)測中的應(yīng)用

      2017-11-02 09:58傅航聰張偉
      軟件導(dǎo)刊 2017年10期
      關(guān)鍵詞:時間序列支持向量機

      傅航聰++張偉

      摘要:結(jié)合K近鄰算法、支持向量機算法和時間序列算法的優(yōu)點,整合其結(jié)果提出一種綜合預(yù)測算法,并將其應(yīng)用到滬深300指數(shù)的漲跌預(yù)測中。首先通過時間序列預(yù)測出股票未來一段時間內(nèi)的走勢圖,然后結(jié)合K近鄰算法判斷該走勢圖的總體漲跌趨勢,最后將漲跌趨勢量化作為一變量引入到支持向量機算法中,通過支持向量機算法預(yù)測最終的股票漲跌。該方法能夠彌補3種算法的不足,能夠更加準(zhǔn)確地預(yù)測股市的漲跌趨勢。

      關(guān)鍵詞:股票預(yù)測;K近鄰算法;支持向量機;時間序列

      DOIDOI:10.11907/rjdk.171549

      中圖分類號:TP312文獻標(biāo)識碼:A文章編號:16727800(2017)010003104

      0引言

      隨著經(jīng)濟的快速發(fā)展,股票市場受到了投資者的普遍關(guān)注,掌握股市變化規(guī)律并預(yù)測其走勢,一直是投資者和投資公司關(guān)注的熱點,對于預(yù)測股市未來收益方法的探索也從來沒有中斷過。由于涉及到金融領(lǐng)域,因此最開始僅從金融工程、數(shù)理統(tǒng)計方面進行挖掘,探索相關(guān)方法,在文獻[1][3]中提到了其中的部分金融模型與方法。然而,由于發(fā)現(xiàn)金融模型一定程度上無法滿足人們對于預(yù)測準(zhǔn)確性的要求,因此對于金融模型而言,更多地是建立在假設(shè)上。之后人們提出了機器算法模型,其實踐性更強,適用范圍更廣,模型準(zhǔn)確率更高[46]。至21世紀(jì)初期,金融市場發(fā)展迅速,同時也衍生出了更多金融產(chǎn)品。因此,單一的金融模型算法和機器學(xué)習(xí)算法已經(jīng)滿足不了市場需求,人們便將金融模型算法與機器學(xué)習(xí)算法結(jié)合起來,以達(dá)到更好的效果[78]。對于金融工程方面的股市量化預(yù)測分析,機器學(xué)習(xí)算法的優(yōu)點[9]是能夠最大程度地模擬對象的具體特征,另外在處理數(shù)據(jù)量及復(fù)雜度方面也有更大優(yōu)勢。另外一種預(yù)測手段是結(jié)合多種算法,能夠一定程度上彌補單獨算法存在的缺陷。

      本文采用的即是機器學(xué)習(xí)和金融模型算法相結(jié)合的綜合算法,其中包括K近鄰算法、支持向量機算法(SVM)、時間序列算法。K近鄰算法主要應(yīng)用于分類方面,通過近鄰算法將相似的樣本歸為一類;SVM支持向量機算法可以有效解決神經(jīng)網(wǎng)絡(luò)無法避免的局部最小化問題,而且對于小樣本容量、非線性及高維數(shù)模式,以及在克服維數(shù)過大和過度擬合學(xué)習(xí)方面具有優(yōu)勢[9];時間序列算法能夠很好地展示一定時間內(nèi)事物的發(fā)展變化趨勢與規(guī)律,從而對未來的變化進行有效預(yù)測。

      本文將通過滬深300數(shù)據(jù),結(jié)合K近鄰算法、支持向量機算法(SVM)、時間序列算法的優(yōu)點,以達(dá)到最好的股指預(yù)測效果。本文首先結(jié)合近鄰算法和時間序列算法,得到一個未來趨勢的漲跌變量,通過圖像處理將圖片轉(zhuǎn)換成二維碼數(shù)字,用近鄰算法分析識別時間序列預(yù)測的曲線圖是漲還是跌;然后將該變量輸入到支持向量機算法中,得到最終的綜合算法;最后與單一的SVM算法、時間序列算法進行比較,得到最終的準(zhǔn)確率。

      1.3時間序列

      由于股票價格隨著時間不斷發(fā)生變換,而且有著非常明顯的時間先后順序。這種按照時間序列排列起來的一系列觀測值稱為時間序列,因此可以認(rèn)為時間序列包含了某一個或某幾個統(tǒng)計指標(biāo)特征。一個時間序列里一般包含4種信息:長期趨勢、循環(huán)、季節(jié)變換、不規(guī)則變換。常用的時間序列模型主要有自回歸模型(AR)、移動平均模型(MA)、自回歸移動平均模型(ARMA)、齊次非平穩(wěn)模型(ARIMA)等。時間序列模型又分為傳統(tǒng)時間序列模型和現(xiàn)代時間序列模型。傳統(tǒng)時間序列模型把時間序列看成是長期趨勢、季節(jié)變動、循環(huán)變換、不規(guī)則變換的復(fù)合體?,F(xiàn)代時間序列模型則將時間序列看作一個隨機概率過程,ARIMA模型算法即是這類模型的代表[15]。

      下面將結(jié)合3種單獨的算法得到最終的綜合算法。

      2綜合算法預(yù)測模型

      2.1算法模型概括

      綜合算法預(yù)測模型主要分為3部分,首先在相同的數(shù)據(jù)條件下分別計算出支持向量機算法、時間序列算法與綜合算法的準(zhǔn)確率,然后對其進行比較。具體步驟為:①首先對數(shù)據(jù)進行標(biāo)準(zhǔn)化處理;②經(jīng)過歸一化處理,分別計算出在支持向量機算法、時間序列算法下的準(zhǔn)確率;③按照相同像素大小的圖片,隨機截取20個間隔為30天的滬深300歷史漲跌圖作為樣本集。將20個曲線圖分為兩類,即漲和跌,每一類的樣本數(shù)量為10;④按照支持向量機選取的變量日期,畫出時間序列未來30天的預(yù)測曲線圖, 按照相同的像素大小截取預(yù)測曲線;⑤通過近鄰算法進行比對,識別出時間序列未來30天的曲線圖是漲還是跌,并將漲定義為1,跌定義為-1;⑥將通過近鄰算法得到的結(jié)果作為其中一個支持向量機變量輸入其中,最后計算出綜合算法的預(yù)測準(zhǔn)確率;⑦比較支持向量機算法、時間序列算法和綜合算法的準(zhǔn)確率,得到最后的結(jié)論。

      2.2綜合算法原理

      本文中的綜合算法用到了圖像處理技術(shù)以及時間序列算法、近鄰算法、支持向量機算法。

      對于圖像處理技術(shù)而言,因為在股票市場某一階段并不能通過肉眼準(zhǔn)確地判斷漲跌,因此將圖像處理技術(shù)和機器學(xué)習(xí)算法相結(jié)合能夠避免肉眼帶來的局限性,同時還避免了重復(fù)工作帶來的錯誤率。通過MATLAB軟件對彩色圖片進行二值化處理,使圖片只顯示黑白兩色。通過使用MATLAB里的imread()函數(shù)讀取需要操作的圖片,然后調(diào)用MATLAB中的二值化處理函數(shù)使圖片轉(zhuǎn)換為二值化圖片,并且輸出二值化圖片的二進制數(shù)據(jù)。二值圖像也稱為黑白圖像,因為其中的每個像素都只有黑白兩色,并且沒有中間的過渡顏色,其中輸出的二進制矩陣中的0和1也代表了二值圖像的黑白值,其中黑色像素塊代表0,白色像素塊代表1。

      按照相同的像素大小截取漲跌圖片,得到滬深300漲跌圖如圖1所示。圖中隨機從樣本集中挑選了2張截取的圖片,一張代表上漲趨勢,一張代表下跌趨勢。然后將兩張圖對應(yīng)的黑色方格計為1,白色方格計為0。算法中按照相同像素大小的圖片隨機截取20個間隔為30天的滬深300歷史漲跌圖作為樣本集,將20個曲線圖分為兩類,即漲和跌,每一類的樣本數(shù)量為10。然后將這20個樣本集圖片轉(zhuǎn)化為二值圖片后,再通過程序以二進制矩陣的數(shù)據(jù)形式輸出,并且貼上“漲”、“跌”兩類標(biāo)簽分別保存。endprint

      圖1滬深300漲跌圖

      通過時間序列算法預(yù)測未來30天的股市漲跌,然后再截取相同像素的漲跌圖片,進行二值化并將其轉(zhuǎn)換為二進制數(shù)據(jù)矩陣。相對于其它算法,時間序列算法具有能反應(yīng)未來股市漲跌趨勢的功能,并且能夠最大限度地把握股市周期性。之后通過截取時間序列預(yù)測圖,將其轉(zhuǎn)化成二進制數(shù)據(jù),作為K近鄰算法的測試集。

      之后通過K近鄰算法訓(xùn)練樣本集,然后輸入測試集判斷該組二進制矩陣數(shù)據(jù)是漲還是跌。將漲的狀態(tài)定義為1,將跌的狀態(tài)定義為-1,儲存作為支持向量機的輸入量之一。通過K近鄰算法計算測試集和樣本集數(shù)組之間的距離,以此區(qū)分測試集表示的狀態(tài)是漲還是跌,然后將得到的實驗結(jié)果作為支持向量機的輸入變量。同時采用支持向量機的其它變量,即滬深300 在2015~2016年間循環(huán)每前3天的日收盤價和日交易量,預(yù)測第4天的股指漲跌比率[16],因為在這樣的條件下得到的預(yù)測結(jié)果更準(zhǔn)確,實驗效果更好。得到了所需的變量數(shù)據(jù)后,分別對其進行歸一化處理,使實驗結(jié)果更加準(zhǔn)確。

      因此對于SVM算法而言,主要有3個輸入?yún)?shù),第一個參數(shù)是通過時間序列預(yù)測的漲跌數(shù)據(jù),第二個是提前1、2、3天的日收盤價,第三個是提前1、2、3天的日交易量。將訓(xùn)練集單日的漲跌狀態(tài)定義為1或-1。然后通過算法計算測試集,通過測試集得到的結(jié)果計算該綜合算法的最終準(zhǔn)確率。

      3實驗結(jié)果及討論

      3.1圖像識別處理

      在綜合算法中,首先需要通過MATLAB軟件對圖片進行二值化處理,得到只有黑白像素的圖片,然后得到二值圖片通過二進制表示的矩陣數(shù)據(jù),其中黑色表示“1”,白色表示“0”。其最終的實驗結(jié)果如圖2所示,圖中包含了彩色圖片與二值圖片。

      3.2SVM算法仿真結(jié)果

      本文通過使用滬深300指數(shù)2015~2016年的數(shù)據(jù)輸入向量為提前1、2、3天的日收盤價和日交易量來預(yù)測第4天的股指漲跌比率[16]。其過程通過SPSS Modeler來實現(xiàn)最終的算法,并且將數(shù)據(jù)的60%作為訓(xùn)練集,剩下的40%作為測試集。將訓(xùn)練集單日的漲跌狀態(tài)定義為1或-1,其最終的預(yù)測準(zhǔn)確率如表1所示。因為只是單一的SVM算法,對核函數(shù)非常敏感而且更加適合處理二類問題,并且里面沒有整合股市的周期性規(guī)律變換。因此SVM仿真預(yù)測股票漲跌的率結(jié)果并不是非常理想,約67.5%。

      3.3時間序列仿真結(jié)果

      時間序列算法在進行運算前,首先要對原型圖進行平穩(wěn)化,并且去周期化。在SPSS Modeler里會自動建模,選擇最佳的一階差分次數(shù)和一階季節(jié)差分次數(shù)。本文通過輸入滬深300在2015年的收盤價、開盤價交易量來預(yù)測最后的股市。本文沒有考慮引進季節(jié)差分,通過軟件自動得到ARIMA(1,0,2)模型。

      圖3為按日為周期時間序列訓(xùn)練預(yù)測結(jié)果圖。由于股票交易存在周末與節(jié)假日,對于以日為周期,需要重新編排日期,因此跳過了周末,相比于按月為周期,其最終日期會提前。由圖可見,時間序列的訓(xùn)練效果較好。從表2分析結(jié)果中也能看到,其相關(guān)性為99.1%左右。

      效果較好,但預(yù)測集的效果不太令人滿意。而且這里的準(zhǔn)確率指的是漲跌概率,并沒有精確到漲跌比率。其中可能的原因是模型沒有加入季節(jié)性,而且參數(shù)的輸入可能過少,不能完全反映股市的整體現(xiàn)狀。對于時間序列算法而言,完全依據(jù)歷史數(shù)據(jù),對于未來的預(yù)測范圍將缺乏一定準(zhǔn)確性,并且其中的隨機性因素也較大。但是時間序列算法的優(yōu)勢是可以大致研判未來股市的總體周期趨勢。因此,時間序列算法還需要與其它算法相結(jié)合,才能更好地提高預(yù)測準(zhǔn)確率。

      3.4綜合算法仿真結(jié)果

      按照綜合算法原理,隨機選取20張漲跌圖,分別轉(zhuǎn)換為二進制矩陣數(shù)據(jù),并且分為兩類,分別是漲和跌。然后通過時間序列預(yù)測后面一個月的圖,最后一個月即是預(yù)測的圖像,然后不斷往后推一天,通過SPSS軟件保存預(yù)測得到的未來一個月漲跌圖。然后通過圖像處理得到二值圖像,并且輸出保存每張圖像的二進制矩陣數(shù)據(jù)。SVM算法每一組數(shù)據(jù)都對應(yīng)預(yù)測一個月未來漲跌的圖像。

      得到KNN算法所需的樣本集和測試集,便可以調(diào)用KNN算法判斷每一個測試集最終的類別是漲還是跌,然后將其保存作為SVM算法的輸入變量。最后支持向量機算法需要輸入的參數(shù)便是1、2、3日的日收盤價和日交易量,結(jié)合時間序列算法和KNN算法預(yù)測其未來一個月的漲跌趨勢,并和之前的SVM算法一樣,將其60%的數(shù)據(jù)作為訓(xùn)練集,剩下的40%作為測試集,只是在其中添加了一組變量參數(shù),總體框架并沒有改變。綜合算法的最終仿真結(jié)果如表2所示。

      從實驗結(jié)果可以看出,單獨的SVM算法和時間序列算法得到的準(zhǔn)確率并不是很高,普遍只有70%左右,而綜合算法的準(zhǔn)確率接近80%。因此,相比于單一算法,綜合算法的效果更好。因為綜合算法結(jié)合了時間序列和SVM算法的優(yōu)點,使SVM算法能夠考慮到時間序列上的時間特性比如季節(jié)性等,又結(jié)合了SVM算法的優(yōu)點,即其自身的錯誤率較低,而且計算開銷小,適合運行大批量數(shù)據(jù),得到的結(jié)果也更加直觀具體。

      4結(jié)語

      本文結(jié)合K近鄰算法、支持向量機算法和時間序列算法的優(yōu)點,提出了一種綜合預(yù)測算法,并將其應(yīng)用到滬深300指數(shù)的漲跌預(yù)測中,取得了較好效果。然而,綜合算法雖然相比于單一算法,準(zhǔn)確率有改善,但是未來提升的空間還有很大,需要通過發(fā)掘探索,不斷組合一些更高效的算法,以得到更高的準(zhǔn)確率。

      參考文獻:

      [1]何永沛.ARMA模型參數(shù)估計算法改進及在股票預(yù)測中的應(yīng)用[J].重慶工學(xué)院學(xué)報:自然科學(xué)版,2009(2):68.

      [2]于志軍,楊善林.基于誤差校正的GARCH股票價格預(yù)測模型[J].中國管理科學(xué),2013(S1):2832.

      [3]費時龍,任洪光.多重馬氏鏈模型在股市預(yù)測中的應(yīng)用[J].德州學(xué)院學(xué)報,2016(8):2835.

      [4]王領(lǐng),胡揚.基于C4.5決策樹的股票數(shù)據(jù)挖掘[J].計算機與現(xiàn)代化,2015(10):3851.

      [5]張鵬.基于 SVR 的股市預(yù)測與擇時研究[J].重慶文理學(xué)院學(xué)報,2016(3):148155.

      [6]孫海波,王麗敏.引入趨勢因子的BP模型在股市預(yù)測中應(yīng)用[J].統(tǒng)計與決策,2015(19):8789.

      [7]李雁.基于ARIMA模型和神經(jīng)網(wǎng)絡(luò)模型的股票價格預(yù)測[J].金融商務(wù),2014(4):7780.

      [8]劉海玥,白艷萍.時間序列模型和神經(jīng)網(wǎng)絡(luò)模型在股票預(yù)測中的分析[J].管理科學(xué),2011(4):2231.

      [9]金得寶.基于支持向量機的股市預(yù)測研究[D].杭州:浙江大學(xué)出版社,2010:210.

      [10]PETER HARRINGTON.機器學(xué)習(xí)實戰(zhàn)[M].北京:人民郵電出版社,2013:1520.

      [11]王波,程福云.KNN算法在股票預(yù)測中的應(yīng)用[J]. 武漢:科技創(chuàng)業(yè)月刊,2015(16):1015.

      [12]張晨希,張燕平.基于支持向量機的股票預(yù)測[J].計算機技術(shù)與發(fā)展,2006,16(6):3435.

      [13]PANG NING TAN, MICHAEL STEINBACH.數(shù)據(jù)挖掘?qū)д揫M].北京:人民郵電出版社,2011:157170.

      [14]BURGERS B C.A tutorial on support vector machines for pattern recognition[J].Data Mining and Knowledge Discovery ,1998,2(2):121167.

      [15]張文彤,董偉.SPSS統(tǒng)計分析高級教程[M].北京:高等教育出版社,2013:393395.

      [16]林利敏.基于支持向量機的股價短期預(yù)測研究[D].杭州:杭州電子科技大學(xué),2010:4550.

      責(zé)任編輯(責(zé)任編輯:黃?。〆ndprint

      猜你喜歡
      時間序列支持向量機
      基于改進支持向量機的船舶縱搖預(yù)報模型
      基于支持向量機的金融數(shù)據(jù)分析研究
      佛教| 绥德县| 大洼县| 南安市| 永济市| 拜城县| 土默特右旗| 汽车| 大丰市| 分宜县| 罗山县| 获嘉县| 天水市| 高安市| 彭泽县| 西乌珠穆沁旗| 长沙市| 江达县| 东台市| 北辰区| 浦城县| 吕梁市| 青州市| 双城市| 灵寿县| 乳山市| 海南省| 喜德县| 湟中县| 泾川县| 连云港市| 宁蒗| 巴楚县| 桦南县| 保定市| 阿鲁科尔沁旗| 雅安市| 云梦县| 舟山市| 丽江市| 祁阳县|