• 
    

    
    

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

      基于Pytorch的LSTM模型對股價的分析與預(yù)測

      2021-01-19 02:26:50張康林葉春明李釗慧王錦文
      計算機技術(shù)與發(fā)展 2021年1期
      關(guān)鍵詞:中心點股價股票

      張康林,葉春明,李釗慧,王錦文

      (1.上海理工大學 管理學院,上海 200093;2.南昌大學 公共管理學院,江西 南昌 330000)

      0 引 言

      股票市場發(fā)展至今已有400多年歷史,股票投資者隨著金融市場發(fā)展的越來越成熟也變得越來越多,而股價的預(yù)測一直都是股票投資者關(guān)注的問題。文獻[1]說明了由于股票價格具有高噪聲、動態(tài)、非線性和非參數(shù)等特性,想要準確預(yù)測股價仍具有很大的挑戰(zhàn)。但隨著大數(shù)據(jù)時代的到來和人工智能技術(shù)的發(fā)展,準確預(yù)測股票價格已經(jīng)慢慢變?yōu)榱丝赡堋?/p>

      目前,越來越多的學者采用人工智能技術(shù)來實現(xiàn)股價的預(yù)測,從傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)模型到深度學習模型,再到現(xiàn)在的多種模型相互結(jié)合進行預(yù)測,這些技術(shù)一直都在被改進并且被廣泛使用。許興軍[2]使用反向傳播神經(jīng)網(wǎng)絡(luò)(backward-propagation network,BPN)模型對浦發(fā)銀行近一年交易日的股票數(shù)據(jù)進行了預(yù)測;韓山杰等人[3]采用多層感知機(multi-layer perceptron,MLP)模型預(yù)測了蘋果公司每日的股票收盤價;Ticknor等人[4]將日市場價格和財務(wù)指標作為輸入,利用前饋神經(jīng)網(wǎng)絡(luò)模型對微軟公司和高盛集團未來一天的收盤價進行了預(yù)測。但是由于人工神經(jīng)網(wǎng)絡(luò)在對股價進行預(yù)測時,存在很多問題,比如:模型優(yōu)化過程中,存在梯度消失和梯度爆炸問題,導致模型無法優(yōu)化;容易出現(xiàn)局部極值問題;過擬合現(xiàn)象的發(fā)生導致模型在對測試集進行預(yù)測時,其預(yù)測精度變小。為了解決上述問題,針對深度學習的研究也是越來越多。Graves等人[5]說明了LSTM模型可以解決梯度消失和梯度爆炸問題,Polson等人[6]探討了深度學習技術(shù)在金融市場研究中不僅可以解決過擬合問題,還能提高樣本的擬合程度。同時,國內(nèi)外學者也利用深度學習技術(shù)對股價預(yù)測進行研究。Hoseinzade等人[7]提出了一個基于CNN的框架,并對標普500指數(shù)、納斯達克指數(shù)、道瓊斯指數(shù)、紐約證交所指數(shù)和羅素指數(shù)次日的走勢進行了預(yù)測,結(jié)果表明,預(yù)測性能比基線算法更高;Zahra等人[8]通過遞歸神經(jīng)網(wǎng)絡(luò)(RNN)對卡薩布蘭卡證券交易所29天的maroc股票價格進行預(yù)測;宋剛等人[9]使用基于自適應(yīng)粒子群優(yōu)化的LSTM模型分別對滬市、深市、港股股票數(shù)據(jù)進行了股價預(yù)測,具有更高適用性。

      通過上述分析,少有研究將聚類算法和深度學習技術(shù)進行結(jié)合來應(yīng)用于金融預(yù)測,相關(guān)研究如文獻[10],并且大多數(shù)研究使用的是Tensorflow深度學習框架進行建模分析。因此,該文使用SOM算法對187只不同業(yè)績的股票進行聚類和基于Pytorch的LSTM模型對三類中的共9只股票進行股價預(yù)測,主要貢獻有:(1)使用Pytorch深度學習框架進行深度學習模型的構(gòu)建,相對于被廣泛使用的Tensorflow,Pytorch更加簡潔直觀;(2)使用了同一LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對9只股票進行股價預(yù)測,證明了LSTM神經(jīng)網(wǎng)絡(luò)在股價預(yù)測上有著很好的泛化能力;(3)針對不同業(yè)績的股票進行分類預(yù)測,證明了LSTM模型對業(yè)績優(yōu)良的股票預(yù)測精度更高。

      1 SOM神經(jīng)網(wǎng)絡(luò)原理及改進

      1.1 SOM神經(jīng)網(wǎng)絡(luò)原理

      1981年,自組織映射(self-organizing map,SOM)神經(jīng)網(wǎng)絡(luò)由芬蘭學者Kohonen[11]提出,該聚類算法由于可以實現(xiàn)自學習,網(wǎng)絡(luò)具有自穩(wěn)定性,無須外界給出評價函數(shù),能夠識別向量空間中最有意義的特征,抗噪音能力強等優(yōu)點。文獻[12-14]證明了SOM算法在各個領(lǐng)域應(yīng)用廣泛。

      1.2 SOM算法的具體過程

      (1)初始化輸入數(shù)據(jù)Xi,j,i=1,2,…,n,j=1,2,…,m。

      (2)初始化參數(shù)。模型需要初始化學習率η(0<η<1),最小學習率ηmin,輸入神經(jīng)元數(shù)m,輸出神經(jīng)元數(shù)P=Pr*Pc,鄰域值R,鄰域值的縮小率a(a<1),學習率的縮小率λ(λ<1),最初迭代次數(shù)Iteration=0,最大迭代次數(shù)Max_iteration,時間k=0。

      (3)初始化權(quán)重Wp,q,j(中心點Cp,q),隨機生成[0,1)之間的數(shù),p=1,2,…,Pr,q=1,2,…,Pc,j=1,2,…,m。

      (4)最初迭代次數(shù)加1,并且設(shè)置目前的數(shù)據(jù)位置a=0。

      (5)將數(shù)據(jù)下標o加1,數(shù)據(jù)位置a加1:

      o=o+1

      (1)

      a=a+1

      (2)

      (6)設(shè)置當前來自于Xi,j數(shù)據(jù)Xo,Xo=[xa,1,xa,2,…,xa,m]。

      (7)計算當前數(shù)據(jù)Xo與每個中心點的距離:

      (3)

      (8)通過步驟(7)的最小距離來確定獲勝中心點(WC);

      (9)依次修改所有權(quán)重坐標(即中心點坐標):

      (a)在拓撲圖(見圖1)中計算當前中心點與獲勝中心點的距離:

      disCC,WC=dic(Cp,q,WC)=

      (4)

      (b)修改權(quán)重坐標:

      (5)

      (c)重復(fù)步驟(a)與(b),直到所有中心點坐標被修改。

      圖1 拓撲圖

      (10)判斷中心是否被所有數(shù)據(jù)修改:

      (a)如果a=n,則跳到第(11)步;

      (b)如果a≠n,則返回第(5)步。

      (11)修改鄰域值和學習率:

      R=R*a

      (6)

      η=η*λ

      (7)

      (12)判斷學習率:若η<ηmin,則令η=ηmin。

      (13)停止標準:

      (a)如果Iteration=Max_iteration,則跳到第(14)步;

      (b)如果Iteration≠Max_iteration,則返回第(4)步。

      (14)將數(shù)據(jù)分配到距離最小的中心點,再計算每個中心點的數(shù)據(jù)數(shù)。

      (15)根據(jù)拓撲圖矩陣確定每一類中包含數(shù)據(jù)的數(shù)量。

      1.3 SOM算法的改進

      為了進一步探討不同類別的股票在對其收盤價格進行預(yù)測時,其預(yù)測精度是否也會有所不同,在計算出分布矩陣和最佳中心點的坐標后,再一一計算每一個點和中心點的歐氏距離,見式(8)。通過分布矩陣,找出距離中心點最近的n個點,即可找到每一類中所含的股票代碼。

      (8)

      2 改進的SOM實驗及其結(jié)果分析

      2.1 數(shù)據(jù)下載

      該文所做的SOM分析所需要的數(shù)據(jù)均來自于證券寶平臺,該平臺可以通過python API獲取股票年報數(shù)據(jù)。分析中選取了滬市股票(600000-600100)、深市股票(000001-000100)與創(chuàng)業(yè)板股票(300001-300100)總共187家上市公司2018年的銷售凈利潤率、凈資產(chǎn)收益率、銷售毛利率、凈利潤和每股收益5項能充分反映上市公司綜合盈利能力的指標作為主要研究對象。

      為了避免指標單位對結(jié)果的影響,需先將原始數(shù)據(jù)進行歸一化處理,歸一化公式如下:

      (9)

      2.2 實驗結(jié)果分析

      該文在系統(tǒng)WIN10、1TB+128G(SSD)的硬盤、INTEL酷睿I7-6700Q的CPU和內(nèi)存4 GB的PC機上使用python3.7實現(xiàn)SOM算法,輸入神經(jīng)元數(shù)為5。由于該文將187只股票分為了虧損股、盈利股和小幅虧損或小幅盈利股三類,所以輸出神經(jīng)元數(shù)P=Pr*Pc=1*3,鄰域值為4,學習率為0.1,最小學習率為0.001,鄰域值的縮小率為0.99,學習率的縮小率為0.99。迭代次數(shù)經(jīng)過多次調(diào)整發(fā)現(xiàn),當Max_itreation大于等于200時,最終的聚類結(jié)果不變,所以將Max_itreation設(shè)為200,減少程序運行時間。

      經(jīng)過多次對程序的運行,可以求出其中有71只股票以點[0.916 956 54 0.955 327 9 0.623 186 590.077 145 72 0.540 198 69]為中心聚為第一類,有96只股票以點[0.906 286 24 0.948 758 48 0.390 331 97 0.047 142 88 0.520 635 68]為中心聚為第二類,有20只股票以點[0.499 768 73 0.800 670 52 0.380 143 94 0.023 035 95 0.243 620 15]為中心聚為第三類,通過SOM算法的改進原理,進一步優(yōu)化python實現(xiàn)的SOM代碼,將每一個類別中所含的股票一一求出。

      為了比較每一類的股票盈利能力大小,表1將三類中部分股票的盈利能力指標列出。

      表1 每一類部分股票的盈利能力

      其中,code代表股票代碼,roeavg代表凈資產(chǎn)收益率(平均)(%),npMargin代表銷售凈利率(%),gpMargin代表銷售毛利率(%),netProfit代表凈利潤(元),epsTTM代表每股收益。

      該文選取的五項指標是衡量公司獲利能力和成長性最好的指標,即能通過這五項指標說明該類上市公司在技術(shù)水平、經(jīng)營規(guī)模、經(jīng)營實力等方面具有很大優(yōu)勢,經(jīng)營業(yè)績優(yōu)良,競爭能力比較強,綜合財務(wù)狀況較佳,頗具發(fā)展?jié)摿烷L期投資價值,即通過這五項指標的大小可以判斷該公司的綜合盈利能力大小。所以結(jié)合表1可以看出,綜合盈利能力的大小排序:第一類>第二類>第三類。計算出不同類別所包含的股票后,將進一步對不同類別的股票使用LSTM模型進行預(yù)測。

      3 Pytorch深度學習框架

      3.1 簡 介

      Pytorch是Facebook在2017年開源的一款深度學習框架,它是源于torch更新后的一種新產(chǎn)品,同時也是一個原生的python包,它與python是無縫集成的,而且還特意使用了命令式編碼風格。Pytorch由于具有動態(tài)計算圖表、精簡的后端與高度可擴展等優(yōu)勢,目前得到了廣泛的應(yīng)用。Pytorch在已經(jīng)在聊天機器人、機器翻譯、文本搜索、文本到語音轉(zhuǎn)換和圖像與視頻分類等項目中取得了巨大成功。

      3.2 開發(fā)環(huán)境

      該文是在系統(tǒng)WIN10、1TB+128G(SSD)的硬盤、INTEL酷睿I7-6700Q的CPU和內(nèi)存4 GB的PC機上通過python3.7版本和anaconda5.3.1版本來使用Pytorch構(gòu)造LSTM深度學習模型。Anaconda是一個開源的python包管理器,包含了python、conda等180多個科學包及其依賴項。它支持Windows、Linux和Mac三種系統(tǒng),由于它提供了包管理與環(huán)境管理的功能,所以能很方便地解決多版本python切換、并存以及下載安裝各種第三方包等問題。然后打開其中的jupyter notebooks應(yīng)用程序,直接在谷歌網(wǎng)頁頁面中編寫、運行和調(diào)試代碼。

      4 LSTM神經(jīng)網(wǎng)絡(luò)的原理

      長短期記憶神經(jīng)網(wǎng)絡(luò)(long-short term memory,LSTM)在1997年由Hochreiter等人[15]提出。它是循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的一種變體,能夠更好地解決傳統(tǒng)RNN在處理大型時間序列時存在的梯度消失和梯度爆炸等問題。由于深度學習框架發(fā)展得越來越成熟,再加上LSTM能夠更好地處理序列化數(shù)據(jù),所以LSTM神經(jīng)網(wǎng)絡(luò)目前得到了廣泛的應(yīng)用,相關(guān)研究如文獻[16-17]說明了LSTM算法在時間序列預(yù)測、視覺識別、分類等都取得了重大成功。

      LSTM的網(wǎng)絡(luò)結(jié)構(gòu)由三個門控和一個記憶細胞組成。記憶細胞能將歷史記憶信息進行保留。下面是三個門控的計算原理。

      第一步,遺忘門能決定從單元信息狀態(tài)中去丟棄哪些信息,采用sigmoid作為激活函數(shù),它能為單元狀態(tài)中的每個元素輸出0到1之間的數(shù)值,公式表示如下:

      ft=σ(Wf*[ht-1,Xt]+bf)

      (10)

      第二步,確定要添加到單元狀態(tài)的信息。這里包括兩個部分:一個是采用sigmoid作為激活函數(shù)的輸入門,它決定要更新的值;另一個是tanh層,它創(chuàng)建要添加到單元狀態(tài)的新值。公式表示如下:

      it=σ(Wi*[ht-1,Xi]+bi)

      (11)

      Ct=tanh(WC′*[ht-1,Xt]+bC′)

      (12)

      (13)

      第四步,決定輸出門的值,公式表示如下:

      Ot=σ(Wo*[ht-1,Xt]+bo)

      (14)

      (15)

      式(10)~式(15)中,σ表示sigmoid激活函數(shù),Wf表示遺忘門的權(quán)重矩陣,Wi表示輸入門的權(quán)重矩陣,Wc表示更新門的權(quán)重矩陣,Wo表示輸出門的權(quán)重矩陣,bf表示遺忘門的偏置,bi表示輸入門的偏置,bc表示更新門的偏置,bo表示輸出門的偏置,ht表示t時刻的輸出,Ct表示t時刻更新的細胞狀態(tài)。

      5 LSTM神經(jīng)網(wǎng)絡(luò)設(shè)計與實現(xiàn)

      5.1 實驗設(shè)計

      預(yù)測流程包括:下載數(shù)據(jù)、數(shù)據(jù)處理、數(shù)據(jù)歸一化、LSTM模型的訓練、微調(diào)參數(shù)和收盤價格預(yù)測。

      下載數(shù)據(jù):每一類中隨機挑選3只股票,下載每一只實驗股票2018年的收盤價格,通過證券寶平臺的python API接口,編寫python程序進行下載和儲存。

      數(shù)據(jù)處理:將存儲的原始數(shù)據(jù)打開,刪除股票代碼一列,并且刪除缺失值的每一行,進一步構(gòu)建完整有效的數(shù)據(jù)集,便于數(shù)據(jù)分析。

      數(shù)據(jù)歸一化:為了使模型更加容易正確的收斂,將收盤價格進行了歸一化處理。

      LSTM模型的訓練:上文已將187只股票分成了3類,并且也已知每一類別中所含的股票代碼,所以接下來將使用LSTM模型對每一個類別中的股票隨機進行預(yù)測,觀察每一類別的預(yù)測精度。該文想通過前面2天的股價來預(yù)測當天的收盤價,所以將前兩天的股價當作輸入,當天的股價當作輸出,最后再基于Looney[18]的研究,將每只實驗股票收集到的65%數(shù)據(jù)作為訓練數(shù)據(jù)集,35%數(shù)據(jù)作為測試數(shù)據(jù)集。

      微調(diào)參數(shù):在模型的訓練過程中,需要不斷調(diào)整學習率、LSTM層數(shù)和隱藏層神經(jīng)元數(shù),直到模型的預(yù)測效果最佳。

      價格預(yù)測:將測試數(shù)據(jù)集導入訓練好的模型進行價格預(yù)測。

      實驗流程如圖2所示。

      圖2 股價預(yù)測實驗流程

      5.2 模型評價標準

      選取均方誤差(MSE)和決定系數(shù)(R2)作為評價指標對模型預(yù)測結(jié)果進行定量評價。其中MSE數(shù)值越小,模型預(yù)測結(jié)果與真實值偏差越小,結(jié)果也就越準確;決定系數(shù)R2越接近數(shù)值1,說明擬合優(yōu)度越大,模型預(yù)測效果也就越好。具體公式如下:

      (16)

      (17)

      其中,N代表數(shù)據(jù)集中數(shù)據(jù)的個數(shù),yp代表模型預(yù)測值,yn代表實際值,yave代表實際值的平均值。

      5.3 LSTM模型參數(shù)設(shè)置

      LSTM模型結(jié)構(gòu)由輸入層、輸出層、兩層LSTM層組成,其中輸入層單元數(shù)為2,在權(quán)衡了模型的預(yù)測準確度后,將1-3類的隱藏層單元數(shù)都設(shè)置為4,輸出層單元數(shù)為1,迭代次數(shù)為1 000,學習率為0.01,損失函數(shù)采用均方誤差MSE,模型訓練過程采用的優(yōu)化算法為Adam算法,模型的搭建在Pytorch深度學習框架下實現(xiàn)。

      5.4 結(jié)果分析

      每一類中隨機抽取3只股票的預(yù)測結(jié)果,如圖3~圖5所示,每一張圖的縱坐標代表股價做歸一化處理后的值,橫坐標代表時間第x天。兩條曲線分別代表LSTM模型預(yù)測值和股價真實值,可以看出LSTM模型的預(yù)測曲線都很接近于股價的真實曲線。

      圖3 第一類中的sz.300059、sz.300003、sh.600033股票預(yù)測結(jié)果

      圖4 第二類中的sz.300044、sh.600082、sz.300014股票預(yù)測結(jié)果

      圖5 第三類中的sz.300083、sz.300063、sz.300069股票預(yù)測結(jié)果

      為進一步驗證模型預(yù)測不同盈利能力的股票的預(yù)測性能,表2給出了三類中各3只股票的評價標準計算結(jié)果。第一類的平均均方誤差為0.003 40,第二類的平均均方誤差為0.006 21,第三類的平均均方誤差為0.008 71,所以第一類預(yù)測誤差小于第二類,第二類的預(yù)測誤差小于第三類,說明相同的LSTM模型預(yù)測第一類股票的股價結(jié)果最準確。同時,在決定系數(shù)R2評價標準中,第一類的R2平均值為0.931 18,第二類的R2平均值為0.899 17,第三類R2平均值為0.860 01,所以同樣的LSTM模型在預(yù)測不同類的股票價格時,第一類的決定系數(shù)更接近1,其次是第二類,說明LSTM模型在對第一類進行預(yù)測時,模型擬合優(yōu)度最大,預(yù)測效果最好,其次是第二類。綜合以上分析,可以得出:使用相同的LSTM模型預(yù)測不同盈利能力的股票價格時,盈利能力越強的股票,模型對其股票價格預(yù)測結(jié)果越準確。

      表2 評價標準結(jié)果

      6 結(jié)束語

      股票價格的預(yù)測是一個非常復(fù)雜的過程,因為股票市場的預(yù)測過程基本上是動態(tài)的、非線性的、復(fù)雜的。因此,通過證券寶平臺下載187只股票數(shù)據(jù),提出一種基于自組織特征映射(SOM)神經(jīng)網(wǎng)絡(luò)和長短期記憶網(wǎng)絡(luò)(LSTM)相結(jié)合的股價預(yù)測方法。首先使用python實現(xiàn)Kohonen提出的SOM算法,然后通過加入計算每一只股票與最終中心點的距離的改進,將187只股票聚成3類,并且得出三類中每一類所含股票,再基于Pytorch深度學習框架構(gòu)建LSTM模型,分別對三類中隨機選取的3只股票進行股價預(yù)測。實驗結(jié)果表明:在使用相同網(wǎng)絡(luò)結(jié)構(gòu)的LSTM模型對不同盈利能力的股票價格進行預(yù)測時,模型對盈利能力較大的股票價格預(yù)測有更高的預(yù)測精度。

      該文對股價的預(yù)測方法,能通過聚類幫助股票投資者篩選出擁有更大盈利能力的股票,從而進一步提高預(yù)測精度。此方法在未來金融時間序列研究中擁有廣泛的應(yīng)用前景,不僅能為投資者提供一定的參考信息,也能為后續(xù)的研究者提供相應(yīng)的參考。

      猜你喜歡
      中心點股價股票
      ?十不該(股市)
      理財周刊(2023年11期)2023-11-08 00:37:19
      Scratch 3.9更新了什么?
      電腦報(2020年12期)2020-06-30 19:56:42
      盤中股價升跌引起持股者情緒變化
      如何設(shè)置造型中心點?
      電腦報(2019年4期)2019-09-10 07:22:44
      本周創(chuàng)出今年以來新高的股票
      本周創(chuàng)出今年以來新高的股票
      本周連續(xù)上漲3天以上的股票
      近期連續(xù)漲、跌3天以上的股票
      股價創(chuàng)股災(zāi)以來新低的股票
      漢字藝術(shù)結(jié)構(gòu)解析(二)中心點處筆畫應(yīng)緊奏
      合作市| 黔西县| 乌海市| 建瓯市| 东平县| 武城县| 徐闻县| 墨玉县| 锡林浩特市| 阿瓦提县| 麻阳| 印江| 霍州市| 德化县| 柘荣县| 赣州市| 洛宁县| 湖口县| 松溪县| 和平区| 石河子市| 泸水县| 雷州市| 焉耆| 巨野县| 玉环县| 阳原县| 筠连县| 岳西县| 临漳县| 精河县| 荣昌县| 灵宝市| 微博| 黑水县| 五台县| 瑞昌市| 泊头市| 龙山县| 平遥县| 保靖县|