• 
    

    
    

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

      ?

      基于改進(jìn)人工魚群算法與RBF神經(jīng)網(wǎng)絡(luò)的股票價(jià)格預(yù)測(cè)*

      2022-11-17 12:09:50謝俊標(biāo)杜軍威
      關(guān)鍵詞:股票價(jià)格魚群步長(zhǎng)

      謝俊標(biāo),江 峰,杜軍威,趙 軍

      (1.青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院,山東 青島 266061;2.青島科技大學(xué)化工學(xué)院,山東 青島 266042)

      1 引言

      股票價(jià)格的波動(dòng)規(guī)律是股票市場(chǎng)發(fā)展的重要影響因素。預(yù)測(cè)股票價(jià)格波動(dòng)規(guī)律,歸根結(jié)底是對(duì)股票價(jià)格進(jìn)行預(yù)測(cè)。股票價(jià)格預(yù)測(cè)會(huì)對(duì)個(gè)人、企業(yè),甚至國(guó)家的發(fā)展產(chǎn)生很大的影響。準(zhǔn)確地預(yù)測(cè)股票市場(chǎng)的波動(dòng)規(guī)律,能夠使相關(guān)股民受益,使企業(yè)和國(guó)家相關(guān)部門及時(shí)制定應(yīng)對(duì)股票市場(chǎng)變動(dòng)的政策,從而使市場(chǎng)更加穩(wěn)定、健康地發(fā)展。

      股票的相關(guān)指標(biāo)直接反映了股票市場(chǎng)價(jià)格的波動(dòng),例如,異同移動(dòng)平均線MACD(Moving Average Convergence Divergence)、成交量VOL(VOLume)等。早期研究人員主要通過構(gòu)建復(fù)雜網(wǎng)絡(luò)的方法來進(jìn)行價(jià)格預(yù)測(cè),例如可視化圖法[1]、遞歸網(wǎng)絡(luò)法[2]和相關(guān)網(wǎng)絡(luò)法[3]等。近年來,隨著機(jī)器學(xué)習(xí)技術(shù)的快速發(fā)展,與優(yōu)化算法之間的融合[4 - 7]取得了突破性進(jìn)展,并且在股票價(jià)格預(yù)測(cè)領(lǐng)域也取得了豐碩的成果。對(duì)股票價(jià)格的預(yù)測(cè)可以看作是對(duì)股票價(jià)格波動(dòng)規(guī)律的一種分類或者回歸。因此,很多研究人員對(duì)已有的機(jī)器學(xué)習(xí)分類或回歸算法進(jìn)行了改進(jìn),例如改進(jìn)的BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)[8,9]、LSTM-CNN(Long Short-Term Memory Convolutional Neural Network)模型[10]、優(yōu)化的RBF(Radial Basis Function)神經(jīng)網(wǎng)絡(luò)[11]和支持向量回歸SVR(Support Vector Regression)[12]等,并利用這些改進(jìn)算法來進(jìn)行股票價(jià)格預(yù)測(cè)。

      股票價(jià)格預(yù)測(cè)的研究任務(wù)主要分為2個(gè)方面:(1)股票價(jià)格的具體值預(yù)測(cè);(2)股票價(jià)格的走勢(shì)預(yù)測(cè)。對(duì)于第1類研究任務(wù),通常采用回歸算法來實(shí)現(xiàn);對(duì)于第2類研究任務(wù),通常采用分類算法來實(shí)現(xiàn)。相應(yīng)地,對(duì)于這2類任務(wù)完成質(zhì)量的評(píng)估方法也有所不同。對(duì)于第1類任務(wù),通常采用真實(shí)值與預(yù)測(cè)值之間的平均相對(duì)誤差或者均方根相對(duì)誤差來評(píng)價(jià)相關(guān)算法的性能。對(duì)于第2類任務(wù),通常采用正確預(yù)測(cè)的比率來評(píng)價(jià)相關(guān)算法的性能(即該算法預(yù)測(cè)股票方向走勢(shì)的正確率)。然而,要想得到一個(gè)較小的預(yù)測(cè)誤差或較高的預(yù)測(cè)正確率并不容易。Abhishek等[13]通過人工神經(jīng)網(wǎng)絡(luò)的方法來進(jìn)行股票價(jià)格預(yù)測(cè),雖然能夠成功地預(yù)測(cè)股票走勢(shì),但是對(duì)股票價(jià)格具體值的預(yù)測(cè)卻不夠精確。Yang等[14]通過集成的深度神經(jīng)網(wǎng)絡(luò)對(duì)股票價(jià)格走勢(shì)進(jìn)行預(yù)測(cè),準(zhǔn)確率只有75%左右。Zhou等[15]通過使用對(duì)抗神經(jīng)網(wǎng)絡(luò)來預(yù)測(cè)高頻股票數(shù)據(jù)的價(jià)格,雖然能夠得到較為準(zhǔn)確的預(yù)測(cè)結(jié)果,但是由于網(wǎng)絡(luò)復(fù)雜性高使得預(yù)測(cè)過程的時(shí)間復(fù)雜性過高,實(shí)用價(jià)值不高。

      綜上所述,現(xiàn)有方法還存在諸多問題,例如股票價(jià)格預(yù)測(cè)精度不高,時(shí)間復(fù)雜度偏高等。針對(duì)上述問題,本文提出了一種基于引力搜索的改進(jìn)人工魚群算法AFSA_GS(Artificial Fish Swarm Algorithm based on Gravity Search),并利用該算法優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)的相關(guān)參數(shù),進(jìn)而將RBF神經(jīng)網(wǎng)絡(luò)更好地應(yīng)用于股票價(jià)格預(yù)測(cè)。具體而言,首先,提出一種基于引力搜索的改進(jìn)人工魚群算法AFSA_GS,提高人工魚群算法在優(yōu)化過程中的自適應(yīng)能力;其次,將AFSA_GS算法與RBF神經(jīng)網(wǎng)絡(luò)算法進(jìn)行結(jié)合,即AFSA_GS+RBF;最后,使用結(jié)合后的模型在多支真實(shí)的股票數(shù)據(jù)上進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,AFSA_GS+RBF模型在股票價(jià)格預(yù)測(cè)上可以獲得更好的預(yù)測(cè)性能。

      為了驗(yàn)證AFSA_GS+RBF模型的性能,采集了深中華(A000017)、至正股份(603991)、科創(chuàng)信息(300730)和貴州茅臺(tái)(600519)這4支股票數(shù)據(jù) (2018年1月份至4月份),并在這些數(shù)據(jù)上進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,相對(duì)于傳統(tǒng)的優(yōu)化算法(如引力搜索算法和人工魚群算法),采用AFSA_GS算法所優(yōu)化的RBF神經(jīng)網(wǎng)絡(luò)(即AFSA_GS+RBF模型)可以更好地預(yù)測(cè)股票價(jià)格。

      2 引力搜索算法和人工魚群算法的基本原理

      2.1 引力搜索算法原理

      與蟻群優(yōu)化算法[16,17]、遺傳算法[18]等類似,引力搜索算法GSA(Gravitational Search Algorithm)也是一個(gè)啟發(fā)式優(yōu)化算法。該算法起源于牛頓的萬有引力定律:宇宙中的粒子由于萬有引力的作用而彼此相互吸引,如式(1)所示,引力的大小與粒子的質(zhì)量成正比,與它們之間的距離成反比[19]。慣性質(zhì)量小的粒子會(huì)在引力的作用下向慣性質(zhì)量大的粒子聚集。

      (1)

      其中,G表示引力系數(shù),R表示2個(gè)物體之間的距離,M1、M2分別表示2個(gè)物體的質(zhì)量。

      假設(shè)有N個(gè)粒子所組成的種群X={X1,X2,…,XN},第i個(gè)粒子Xi在t時(shí)刻所對(duì)應(yīng)的慣性質(zhì)量Mi(t)可以用適應(yīng)度fit(Xi)來進(jìn)行度量,如式(2)所示,可以看出粒子的適應(yīng)度越大則慣性質(zhì)量越大。

      (2)

      其中,Mi(t)和fiti(t)分別表示粒子Xi在t時(shí)刻的慣性質(zhì)量和適應(yīng)度,worst(t)和best(t)分別表示在t時(shí)刻粒子所對(duì)應(yīng)的最壞和最好的適應(yīng)度,定義如下:

      在求解最小值問題時(shí):

      在求解最大值問題時(shí):

      由于萬有引力的作用,慣性質(zhì)量小的粒子會(huì)向慣性質(zhì)量大的粒子移動(dòng)。在迭代過程中,根據(jù)粒子之間相互作用力的大小來更新粒子位置,以下以粒子Xi為例來說明粒子的位置更新過程。

      (3)

      (4)

      Rij(t)=‖Xi(t)-Xj(t)‖2

      (5)

      (6)

      其中,β為[0,1]的隨機(jī)數(shù)。

      (7)

      其中,randi是[0,1]的隨機(jī)數(shù)。

      在每次迭代過程中,所有粒子都按照上述更新方式進(jìn)行移動(dòng),在迭代一定次數(shù)之后,粒子會(huì)向質(zhì)量較大的位置收斂,最后選取該粒子收斂位置作為優(yōu)化的結(jié)果。

      2.2 人工魚群算法原理

      人工魚群算法AFSA(Artificial Fish Swarm Algorithm)[20]是根據(jù)魚群集體覓食行為仿生出來的一種啟發(fā)式優(yōu)化算法。假設(shè)欲尋優(yōu)的解空間為d維,在解空間中隨機(jī)生成n條人工魚,每條魚的狀態(tài)用一個(gè)d維空間向量表示:Xi=(x1,x2,…,xd)。每條人工魚按照一定的移動(dòng)規(guī)則向食物濃度高且不擁擠(最優(yōu)解)的方向移動(dòng),通過不斷地迭代,人工魚逐漸向最優(yōu)解靠近,當(dāng)最優(yōu)解或者迭代次數(shù)滿足終止條件(目標(biāo)閾值或者最大迭代次數(shù))時(shí),停止迭代并輸出人工魚群中的最優(yōu)解。

      人工魚群算法的主要步驟如下:

      Step1隨機(jī)生成一個(gè)人工魚群。

      Step2計(jì)算每條人工魚所在狀態(tài)的目標(biāo)函數(shù)值,并在公告板上記錄下最優(yōu)狀態(tài)和對(duì)應(yīng)的最優(yōu)解。

      Step3對(duì)每條人工魚執(zhí)行聚群和追尾行為。

      Step4選擇一個(gè)更好的狀態(tài)進(jìn)行移動(dòng)并且更新公告板上的最優(yōu)狀態(tài)和對(duì)應(yīng)的最優(yōu)解。

      Step5判斷當(dāng)前解是否是最優(yōu)解或者迭代次數(shù)是否滿足終止條件(目標(biāo)閾值或者最大迭代次數(shù))。若滿足,則終止循環(huán);否則執(zhí)行Step 3和Step 4。

      Step6輸出公告板上的最優(yōu)狀態(tài)和對(duì)應(yīng)的最優(yōu)解。

      以下5步是魚群的移動(dòng)算子,以求極大值為例。其中涉及到的符號(hào)及含義如下:Yi=f(Xi)表示當(dāng)前魚Xi的目標(biāo)函數(shù)值;visual表示人工魚的感知范圍;steps表示移動(dòng)的最大步長(zhǎng);Dij=‖Xi-Xj‖表示2條人工魚之間的距離;δ表示擁擠度因子。

      (1)覓食行為:設(shè)人工魚當(dāng)前狀態(tài)為Xi,在其感知域visual內(nèi)隨機(jī)選擇另外一個(gè)狀態(tài)Xj,若Yi

      (8)

      其中,rand()是一個(gè)產(chǎn)生隨機(jī)數(shù)的函數(shù)。

      (2)聚群行為:假設(shè)當(dāng)前人工魚的狀態(tài)為Xi,搜索其感知范圍內(nèi)的所有人工魚(即對(duì)任意人工魚Xj,使得Dij

      (9)

      (3)追尾行為:設(shè)人工魚的狀態(tài)為Xi,在其可視域(Dij

      (10)

      (4)隨機(jī)行為:如果以上行為都不滿足,那么當(dāng)前人工魚就隨機(jī)移動(dòng)一步,其移動(dòng)方式和人工魚覓食行為中的隨機(jī)移動(dòng)方式相同(為覓食行為的缺省)。

      (5)公告板:公告板用于記錄每一次迭代人工魚群中最優(yōu)狀態(tài)Xmax和其對(duì)應(yīng)的目標(biāo)函數(shù)值Ymax。人工魚每次更新移動(dòng)時(shí)都需要更新公告板上的狀態(tài)。如果比狀態(tài)Xmax更好,那么更新狀態(tài)Xmax和對(duì)應(yīng)適應(yīng)度Ymax。在滿足目標(biāo)閾值或者達(dá)到最大迭代次數(shù)時(shí)輸出公告板上的狀態(tài)Xmax和對(duì)應(yīng)的適應(yīng)度Ymax。

      3 基于引力搜索的改進(jìn)人工魚群算法AFSA_GS

      在經(jīng)典的AFSA算法中,人工魚在每次迭代時(shí)的移動(dòng)步長(zhǎng)和感知域是固定值。將感知域和移動(dòng)步長(zhǎng)固定雖然增加了搜索的隨機(jī)性和全局性,但在算法后期會(huì)降低算法收斂速度,從而降低了算法尋優(yōu)的效率。針對(duì)上述問題,文獻(xiàn)[21]提出了一種自適應(yīng)步長(zhǎng)的方法來對(duì)其進(jìn)行優(yōu)化[21]。雖然這種改進(jìn)策略對(duì)解決上述問題有一定幫助,但是并沒有從根本上解決問題。由于人工魚的移動(dòng)步長(zhǎng)只取決于當(dāng)前所在的狀態(tài)和感知范圍,并沒有考慮到全局性,導(dǎo)致人工魚在尋優(yōu)過程中出現(xiàn)了多個(gè)局部最優(yōu)解,相比之下在全局最優(yōu)解附近的人工魚數(shù)量就會(huì)減少,從而降低了人工魚的尋優(yōu)效率。

      本文提出了2種改進(jìn)策略對(duì)上述不足進(jìn)行優(yōu)化:基于引力搜索的自適應(yīng)感知范圍[22]和自適應(yīng)移動(dòng)步長(zhǎng)。通過這2種改進(jìn)策略,使得所有人工魚在加快尋優(yōu)速度的同時(shí),都朝著全局最優(yōu)結(jié)果所在的位置移動(dòng)。

      3.1 基于引力搜索的自適應(yīng)感知范圍

      在算法開始時(shí),定義初始感知域visual0=v0,根據(jù)引力搜索算法中定義的慣性質(zhì)量計(jì)算方法,對(duì)人工魚的質(zhì)量進(jìn)行計(jì)算,如式(11)所示:

      (11)

      在人工魚迭代過程中,由式(12)對(duì)人工魚的感知范圍進(jìn)行更新:

      visuali(t)=visual0×(1+F_Mi(t)×n×τ)

      (12)

      其中,visuali(t)表示第i條人工魚在第t次迭代時(shí)的視野范圍,n×τ是對(duì)魚群大小的懲罰項(xiàng)(τ∈[0,1])。

      從式(12)可知,適應(yīng)度fi(t)越大,第i條人工魚的慣性質(zhì)量F_Mi(t)也會(huì)越大,與之對(duì)應(yīng),該人工魚的視野范圍visuali(t)也越大。

      3.2 基于引力搜索的自適應(yīng)移動(dòng)步長(zhǎng)

      人工魚在每次迭代過程中的移動(dòng)步長(zhǎng)會(huì)受到周圍食物濃度的影響。設(shè)在第i條人工魚的視野范圍visuali(t)內(nèi)有nf(nf>1)條人工魚,從而根據(jù)式(13)計(jì)算出當(dāng)前人工魚的局部慣性質(zhì)量:

      (13)

      其中,fi_worst(t)和fi_best(t)分別表示在第i條人工魚視野范圍內(nèi)的nf條魚的最小和最大適應(yīng)度,F(xiàn)_Mi(t)表示第i條人工魚在狀態(tài)Xi時(shí)所對(duì)應(yīng)的局部慣性質(zhì)量。

      (14)

      (15)

      在t+1時(shí)刻第i條人工魚第k個(gè)維度上的步長(zhǎng)和位置計(jì)算如式(16)所示:

      (16)

      3.3 AFSA_GS算法

      本文將3.1節(jié)和3.2節(jié)中所提出的2種改進(jìn)策略,應(yīng)用于傳統(tǒng)的人工魚群算法,提出了一種基于引力搜索的改進(jìn)人工魚群算法AFSA_GS。

      3.2節(jié)中所描述的自適應(yīng)步長(zhǎng)算法的偽代碼如算法1所示。

      算法1自適應(yīng)步長(zhǎng)算法act_select(Xj,visual,steps)

      輸入:Xj,感知域范圍visual和移動(dòng)步長(zhǎng)steps。

      輸出:new_ind(Xj更新后的狀態(tài))和當(dāng)前的步長(zhǎng)。

      Step1fori=1tolen(X):/*X為人工魚群,即所有魚的集合*/

      Step1.1chrom_pop∪{X[i] ,ifX[i]∈visual};

      Step1.2fitness_pop∪{evaluation(X[i]), ifX[i]∈visual};

      Step1.3根據(jù)2.2節(jié)魚群行為獲得目標(biāo)人工魚cind;

      Step2chrom_pop∪cind,fitness_pop∪fitness(cind);

      Step3ifcind滿足條件:

      Step3.1由式(13)得出感知域內(nèi)人工魚的慣性質(zhì)量;

      Step3.2由式(14)和式(15)計(jì)算步長(zhǎng)加速度a;

      Step3.3steps=steps+a;

      Step3.4new_ind=Xj+stept_next*(cind-Xj)/Dij;//Dij為距離

      Step3.5進(jìn)行越界處理;

      Step4else:

      Step4.1根據(jù)式(8)計(jì)算出new_ind;

      Step5returnnew_ind,steps.

      AFSA_GS算法的偽代碼如算法2所示。

      算法2AFSA_GS算法

      輸入:迭代次數(shù)num_max,初始感知域visual0,初始移動(dòng)步長(zhǎng)steps0,擁擠度因子δ。

      輸出:最優(yōu)解所對(duì)應(yīng)的人工魚f_best。

      Step1X=initialize();//初始化

      Step2fitness=evaluation(X);//計(jì)算適應(yīng)度

      Step3f_best=max(fitness);/*f_best記錄最優(yōu)人工魚*/

      Step4whilet

      Step4.1由式(11)計(jì)算出每條人工魚的質(zhì)量F_Mi(t);

      Step4.2forj=1tolen(X):

      Step4.2.1visual[j]=visual0*(1+F_Mj(t))*len(X)*rand();

      Step4.2.2X[j],steps[j]=act_select(X[j],visual[j],steps0);/*根據(jù)算法1選擇人工魚行為的選擇*/

      Step4.3f_best=max(fitness);//更新f_best

      Step5returnf_best.

      3.4 時(shí)間復(fù)雜度分析

      從自適應(yīng)感知范圍和自適應(yīng)步長(zhǎng)2個(gè)方面對(duì)算法1和算法2的時(shí)間復(fù)雜度進(jìn)行分析。

      由算法1中的Step 3.2可知,自適應(yīng)步長(zhǎng)的改進(jìn)算法僅在人工魚群算法的聚群和追尾行為中得到應(yīng)用,在計(jì)算人工魚步長(zhǎng)加速度時(shí)增加了算法的時(shí)間復(fù)雜度O(n) (其中,n為魚群規(guī)模);算法2中,自適應(yīng)感知范圍的改進(jìn)算法只是在迭代過程中對(duì)人工魚進(jìn)行了質(zhì)量計(jì)算,增加的時(shí)間復(fù)雜度僅為O(1)。因此,本文所提出的AFSA_GS算法的時(shí)間復(fù)雜度與傳統(tǒng)的人工魚群算法非常接近。

      4 AFSA_GS+RBF網(wǎng)絡(luò)模型

      在第3節(jié)所提出的AFSA_GS算法基礎(chǔ)上,將AFSA_GS算法與RBF神經(jīng)網(wǎng)絡(luò)結(jié)合在一起,得到一種新的網(wǎng)絡(luò)模型——AFSA_GS+RBF。該模型采用AFSA_GS算法來優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)的相關(guān)參數(shù)(包括權(quán)重、基函數(shù)中心和寬度),然后利用優(yōu)化之后的RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行股票價(jià)格預(yù)測(cè)。AFSA_GS+RBF模型流程圖如圖1所示。

      Figure 1 Flow chart of AFSA_GS+RBF model圖1 AFSA_GS+RBF模型的流程圖

      具體步驟如下:

      步驟1設(shè)置網(wǎng)絡(luò)的相關(guān)參數(shù)并輸入數(shù)據(jù)集。

      步驟2利用RBF神經(jīng)網(wǎng)絡(luò)計(jì)算人工魚群算法的適應(yīng)度,并計(jì)算出每條人工魚的慣性質(zhì)量,進(jìn)而計(jì)算每條人工魚的自適應(yīng)視野。

      步驟3利用人工魚群算法中的4種移動(dòng)算子更新每條人工魚的狀態(tài)。在此過程中,根據(jù)人工魚視野范圍內(nèi)的局部慣性質(zhì)量對(duì)人工魚的移動(dòng)步長(zhǎng)進(jìn)行更新。

      步驟4利用人工魚群算法優(yōu)化后的參數(shù)初始化RBF神經(jīng)網(wǎng)絡(luò)的權(quán)重、徑向基函數(shù)中心和寬度。

      步驟5進(jìn)行網(wǎng)絡(luò)訓(xùn)練,并保存訓(xùn)練后的網(wǎng)絡(luò)參數(shù)。

      將AFSA_GS+RBF模型與傳統(tǒng)的人工魚群算法進(jìn)行對(duì)比,本文的改進(jìn)主要體現(xiàn)在2個(gè)方面。(1)在算法中根據(jù)人工魚的適應(yīng)度計(jì)算每條人工魚的慣性質(zhì)量,然后在傳統(tǒng)人工魚群算法的基礎(chǔ)上根據(jù)人工魚的質(zhì)量對(duì)其視野進(jìn)行調(diào)整。通過自適應(yīng)調(diào)整人工魚的視野具有很好的魯棒性,能夠提高人工魚的尋優(yōu)精度。(2)人工魚在行為選擇過程中,根據(jù)當(dāng)前人工魚的局部質(zhì)量對(duì)人工魚的移動(dòng)步長(zhǎng)進(jìn)行加權(quán)調(diào)整,加快了算法后期的收斂速度。

      5 實(shí)驗(yàn)和結(jié)果分析

      5.1 數(shù)據(jù)集構(gòu)建及實(shí)驗(yàn)方式的選取

      5.1.1 數(shù)據(jù)來源

      為驗(yàn)證模型的有效性,本文選取深交所上市公司深圳中華自行車(集團(tuán))股份有限公司(深中華A000017)2018年部分工作日的股票數(shù)據(jù)。收集該公司2018年1月2日~2018年4月20日所有工作日的股票數(shù)據(jù)(如表1所示),其中一個(gè)月(2018年3月22日~2018年4月20日)的股票價(jià)格指數(shù)用于測(cè)試模型的預(yù)測(cè)性能。

      為驗(yàn)證算法的穩(wěn)健性,根據(jù)不同股票類型再選取3支股票(小盤股:至正股份(603991);中盤股:科創(chuàng)信息(300730);大盤股:貴州茅臺(tái)(600519))進(jìn)行驗(yàn)證。選取了3支股票在2018年1月2日~2018年4月20日所有工作日的股票數(shù)據(jù)。將已知的股票價(jià)格作為模型的訓(xùn)練集,例如,為預(yù)測(cè)2018年3月22日當(dāng)天的股票收盤價(jià),需截取2018年1月2日~2018年3月21日的數(shù)據(jù)作為訓(xùn)練集,進(jìn)而預(yù)測(cè)出2018年3月22日的股票收盤價(jià),并與真實(shí)的股票價(jià)格進(jìn)行對(duì)比,最后獲取預(yù)測(cè)結(jié)果的平均相對(duì)誤差和平方根相對(duì)誤差。與傳統(tǒng)的優(yōu)化算法及時(shí)間序列模型進(jìn)行對(duì)比,驗(yàn)證AFSA_GS+RBF模型的有效性與穩(wěn)健性。

      Table 1 Raw stock data(A000017)

      5.1.2 實(shí)驗(yàn)方式選取

      在股票預(yù)測(cè)中常使用滾動(dòng)預(yù)測(cè)的方法。滾動(dòng)預(yù)測(cè)是通過一組歷史數(shù)據(jù)預(yù)測(cè)未來某一時(shí)刻的值,然后將其預(yù)測(cè)結(jié)果作為歷史數(shù)據(jù)繼續(xù)預(yù)測(cè)下去。滾動(dòng)預(yù)測(cè)具有“遠(yuǎn)粗近細(xì)”的特點(diǎn)。

      表2展示了周期為1個(gè)月和1天的平均相對(duì)誤差MRE(Mean Relative Error)。從表2可以看出,滾動(dòng)周期為1天的平均相對(duì)誤差相較于30天的具有更好的預(yù)測(cè)效果。因此,本文為了避免滾動(dòng)預(yù)測(cè)“遠(yuǎn)粗近細(xì)”的缺點(diǎn),設(shè)定滾動(dòng)周期為1天,即直接使用真實(shí)的歷史數(shù)據(jù)進(jìn)行預(yù)測(cè)。

      Table 2 MRE of rolling prediction in different periods

      5.1.3 數(shù)據(jù)集構(gòu)建

      為了能夠準(zhǔn)確地預(yù)測(cè)股票收盤價(jià),首先,針對(duì)5.1.1節(jié)中所選取的股票數(shù)據(jù)進(jìn)行數(shù)據(jù)集的構(gòu)建,分別構(gòu)建了20個(gè)數(shù)據(jù)集T1,T2,…,T20;其次,使用這些構(gòu)建的數(shù)據(jù)集,分別訓(xùn)練出20個(gè)模型;最后對(duì)2018年3月22日~2018年4月20日之間的20個(gè)工作日的收盤價(jià)進(jìn)行預(yù)測(cè)。下面以構(gòu)建數(shù)據(jù)集T1為例來說明上述20個(gè)數(shù)據(jù)集的構(gòu)建方式,如圖2表示。

      Figure 2 Construction of data set T1圖2 數(shù)據(jù)集T1構(gòu)建

      數(shù)據(jù)集T1的詳細(xì)構(gòu)建方式如下:

      圖2中數(shù)軸表示1月2日~3月22日的原始股票數(shù)據(jù),數(shù)軸上每格代表1個(gè)工作日的收盤價(jià)指數(shù)。其中,數(shù)據(jù)集T1包括訓(xùn)練集和測(cè)試集,訓(xùn)練集由37條數(shù)據(jù)組成,每條數(shù)據(jù)包括:條件屬性ti_j,表示連續(xù)15個(gè)工作日的收盤價(jià)(這里指第1個(gè)數(shù)據(jù)集的第j條數(shù)據(jù));決策屬性yi_j,由下一天的收盤價(jià)表示(這里指第1個(gè)數(shù)據(jù)集的第j條數(shù)據(jù)的決策屬性)。

      例如:t1_1=(close1.02,close1.03,…,close1.22),y1_1=(close1.23)。

      其中,t1_1表示1月2日~1月22日連續(xù)15天的收盤價(jià),y1_1表示下一天的收盤價(jià)(即1月23日的收盤價(jià)),close1.02表示1月2日的收盤價(jià)。

      接下來的每條數(shù)據(jù)將在前1條數(shù)據(jù)的基礎(chǔ)上順延1個(gè)工作日。最后使用test_t1作為測(cè)試集的條件屬性,對(duì)下一個(gè)工作日的收盤價(jià)(test_y1)進(jìn)行預(yù)測(cè)。

      5.2 RBF神經(jīng)網(wǎng)絡(luò)的相關(guān)參數(shù)設(shè)置

      RBF神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)主要包括輸入層、隱含層和輸出層,RBF網(wǎng)絡(luò)拓?fù)鋱D如圖3所示。

      Figure 3 Topology of RBF neural network圖3 RBF神經(jīng)網(wǎng)絡(luò)拓?fù)鋱D

      在圖3中,Xi=(x1,x2,…,xm)表示輸入向量。例如,對(duì)任意一個(gè)數(shù)據(jù)集Tk,都有Xi∈Tk,1≤i≤N(N表示每個(gè)數(shù)據(jù)集中的樣本總數(shù)量,此處N=37)。Xi=(x1,x2,…,x15)是一個(gè)15維的向量(m=15),表示股票連續(xù)15天的收盤價(jià),W=(w1,w2,…,ws)
      表示權(quán)重向量,其中s=hidden_num是隱藏層的神經(jīng)元個(gè)數(shù)。y*表示網(wǎng)絡(luò)最終的預(yù)測(cè)結(jié)果。隱藏層神經(jīng)元的激活函數(shù)為高斯核函數(shù),如式(17)所示:

      (17)

      其中,X為輸入層向量,Ci(i=1,2,…,hidden_num)表示激活函數(shù)的中心;‖*‖是歐氏范數(shù)(2-范數(shù));σi表示接受域的寬度。Ci和σi都是需要優(yōu)化的參數(shù)。輸出層的結(jié)果由隱藏層線性加權(quán)求和得到,如式(18)所示:

      (18)

      其中,對(duì)任意1≤i≤n,W=(w1,w2,…,wi,wn)表示隱藏層到輸出層的權(quán)重,wi是訓(xùn)練的主要參數(shù)之一。

      神經(jīng)網(wǎng)絡(luò)模型參數(shù)選擇相對(duì)自由,通常根據(jù)個(gè)人經(jīng)驗(yàn)或者實(shí)驗(yàn)選取合適的參數(shù)值。本文使用深中華(A000017)的股票價(jià)格數(shù)據(jù)訓(xùn)練本文模型并檢測(cè)模型的準(zhǔn)確率,以對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行選擇。首先,設(shè)置隱藏層神經(jīng)元個(gè)數(shù)取值在[20,60];然后,其他參數(shù)保持不變的情況下,改變隱藏層神經(jīng)元個(gè)數(shù),統(tǒng)計(jì)RBF網(wǎng)絡(luò)模型的準(zhǔn)確率和效率;最終,確定隱藏層的神經(jīng)元個(gè)數(shù)。同理,通過實(shí)驗(yàn)對(duì)學(xué)習(xí)率進(jìn)行擇優(yōu)選擇。在訓(xùn)練RBF神經(jīng)網(wǎng)絡(luò)的過程中,當(dāng)訓(xùn)練次數(shù)達(dá)到2 000左右時(shí),模型的代價(jià)損失變化率相對(duì)穩(wěn)定,所以選取最大迭代次數(shù)為2 000。具體參數(shù)設(shè)置如表3所示。

      Table 3 Parameter setting of RBF neural network

      5.3 實(shí)驗(yàn)結(jié)果分析

      使用深中華(A000017)驗(yàn)證AFSA_GS+RBF模型的有效性。AFSA_GS+RBF模型與傳統(tǒng)的AFSA+RBF模型在誤差收斂方面的對(duì)比結(jié)果如圖4和圖5所示。

      Figure 4 Curve of cost loss—AFSA圖4 AFSA優(yōu)化時(shí)的代價(jià)損失收斂曲線

      Figure 5 Curve of cost loss—AFSA_GS圖5 AFSA_GS優(yōu)化時(shí)的代價(jià)損失收斂曲線

      在圖4和圖5中,橫縱軸分別表示迭代次數(shù)和代價(jià)損失,實(shí)線和虛線分別表示魚群最優(yōu)解的代價(jià)損失值和平均代價(jià)損失值。從圖4和圖5可以看出,使用AFSA_GS算法優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)的損失減小得更快。

      在實(shí)驗(yàn)中,使用5.2節(jié)中的網(wǎng)絡(luò)參數(shù)分別對(duì)RBF、GSA+RBF、AFSA+RBF和AFSA_GS+RBF這4種模型進(jìn)行訓(xùn)練,其中,RBF表示傳統(tǒng)的神經(jīng)網(wǎng)絡(luò);GSA+RBF表示使用引力搜索算法優(yōu)化的RBF;AFSA+RBF表示使用人工魚群算法優(yōu)化的RBF。上述4種模型在迭代2 000次之后的代價(jià)損失情況如表4所示。

      Table 4 Cost loss of four models after 2 000 iterations

      表4反映了4種模型在迭代2 000次時(shí)的擬合情況。其中,RBF模型的代價(jià)為1.018 0,損失最大;使用AFSA_GS算法優(yōu)化之后的神經(jīng)網(wǎng)絡(luò)的代價(jià)為0.325 5,在4種模型中最小;而GSA+RBF和AFSA+RBF的代價(jià)損失介于AFSA_GS+RBF和RBF之間。由此可以看出,使用AFSA_GS算法優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)具有更好的擬合度,表明本文提出的優(yōu)化算法有助于提升RBF的性能。

      為了充分驗(yàn)證模型的優(yōu)越性,本文在以上4種模型的基礎(chǔ)上增加2個(gè)預(yù)測(cè)模型:時(shí)間序列模型ARIMA(AutoRegressive Integrated Moving Average)和長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)LSTM(Long Short-Term Memory)。表5為6種模型在單支股票(深中華A000017)上的預(yù)測(cè)結(jié)果和誤差,包括平均相對(duì)誤差MRE、平方根誤差RMSE(Root Mean Square Error)。其定義如式(19)和式(20)所示:

      (19)

      (20)

      從表5可以得出,AFSA_GS+RBF模型誤差最小,MRE=0.586%,RMSE=0.068;ARIMA模型誤差最大,MRE=1.054%,RMSE=0.086;AFSA+RBF模型和GSA+RBF模型的誤差介于RBF和AFSA_GS+RBF模型之間。上述結(jié)果表明,相對(duì)于傳統(tǒng)的優(yōu)化算法而言,使用AFSA_GS算法優(yōu)化的RBF神經(jīng)網(wǎng)絡(luò)具有更好的預(yù)測(cè)性能,從而驗(yàn)證了本文模型的先進(jìn)性。

      Table 5 Predicted results of six models(A000017)

      為了驗(yàn)證本文所提模型的穩(wěn)健性和普適性,基于上述6種模型分別選取不同類型的股票數(shù)據(jù)進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表6所示。

      Table 6 MRE and RMSE of six models on four stocks

      以貴州茅臺(tái)(600519)股票為例進(jìn)行分析:AFSA_GS+RBF模型的RMSE和MRE比RBF神經(jīng)網(wǎng)絡(luò)的分別減少了33.2%和38.82%,相比于經(jīng)典股票預(yù)測(cè)模型LSTM的減少了17.04%和34.18%。本文模型在另外3支股票(深中華、科創(chuàng)信息和至正股份)上具有相同優(yōu)秀的性能。這表明了本文所提模型的普適性和穩(wěn)健性。

      為了能夠更加直觀地看出本文算法的優(yōu)勢(shì)以及AFSA_GS+RBF模型的普適性,將表6中的2個(gè)指標(biāo)通過柱狀圖進(jìn)行了展示,如圖6和圖7所示。

      從圖6和圖7可以明顯看出,不管是平均相對(duì)誤差還是平方根相對(duì)誤差,AFSA_GA+RBF模型的性能都要優(yōu)于其他5種模型的,從而驗(yàn)證了AFSA_GA+RBF模型的普適性。

      6 結(jié)束語(yǔ)

      本文利用引力搜索算法對(duì)傳統(tǒng)人工魚群算法的視野和步長(zhǎng)進(jìn)行改進(jìn),提出了一種改進(jìn)的人工魚群算法AFSA_GS。AFSA_GS使用引力搜索中計(jì)算質(zhì)量的方法對(duì)魚群算法的視野進(jìn)行自適應(yīng)加權(quán),并且使用引力搜索中計(jì)算加速度的方式對(duì)魚群算法的步長(zhǎng)進(jìn)行更新,從而解決了傳統(tǒng)人工魚群算法在優(yōu)化過程中后期收斂速度過慢的問題。為了更好地進(jìn)行股票價(jià)格預(yù)測(cè),本文進(jìn)一步將AFSA_GS算法與RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行結(jié)合,從而得到了AFSA_GS+RBF網(wǎng)絡(luò)模型。實(shí)驗(yàn)結(jié)果表明,相對(duì)于其它預(yù)測(cè)模型,AFSA_GS+RBF模型可以獲得更好的股票價(jià)格預(yù)測(cè)性能。

      Figure 6 Comparison of MRE of six models圖6 6個(gè)模型的平均相對(duì)誤差對(duì)比

      Figure 7 Comparison of RMSE of six models圖7 6個(gè)模型的平方根相對(duì)誤差對(duì)比

      在下一步的工作中,計(jì)劃將AFSA_GS算法與粗糙集理論進(jìn)行結(jié)合來解決屬性約減中的NP難題以及將算法應(yīng)用到更廣泛的領(lǐng)域,根據(jù)特定領(lǐng)域的相關(guān)技術(shù)構(gòu)建出更加有效的尋優(yōu)機(jī)制。

      猜你喜歡
      股票價(jià)格魚群步長(zhǎng)
      基于Armijo搜索步長(zhǎng)的BFGS與DFP擬牛頓法的比較研究
      基于GARCH族模型的重慶啤酒股票價(jià)格波動(dòng)研究
      魚群漩渦
      中外文摘(2017年19期)2017-10-10 08:28:41
      基于改進(jìn)魚群優(yōu)化支持向量機(jī)的短期風(fēng)電功率預(yù)測(cè)
      基于人工魚群算法的光伏陣列多峰MPPT控制策略
      論股票價(jià)格準(zhǔn)確性的社會(huì)效益
      基于逐維改進(jìn)的自適應(yīng)步長(zhǎng)布谷鳥搜索算法
      我國(guó)股票價(jià)格指數(shù)與“克強(qiáng)指數(shù)”的關(guān)系研究
      多子群并行人工魚群算法的改進(jìn)研究
      一種新型光伏系統(tǒng)MPPT變步長(zhǎng)滯環(huán)比較P&O法
      余江县| 法库县| 牙克石市| 灵丘县| 凉山| 东阳市| 河源市| 清远市| 望江县| 法库县| 芜湖县| 天水市| 黔江区| 鄱阳县| 东阿县| 集安市| 肃北| 衡南县| 航空| 莒南县| 武威市| 西吉县| 孟州市| 新竹县| 仲巴县| 瑞昌市| 兴海县| 南阳市| 汕头市| 武乡县| 即墨市| 博野县| 乌拉特中旗| 新余市| 乌鲁木齐县| 内江市| 女性| 灌南县| 越西县| 满洲里市| 汕尾市|