任民宏, 肖海蓉
(陜西理工學(xué)院 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院, 陜西 漢中 723000)
基于樸素貝葉斯分類算法的股指預(yù)測(cè)研究
任民宏, 肖海蓉
(陜西理工學(xué)院 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院, 陜西 漢中 723000)
預(yù)測(cè)大盤(pán)指數(shù)的漲跌幅度在股票投資中具有重要的意義。大盤(pán)指數(shù)的漲跌既與國(guó)家的宏觀經(jīng)濟(jì)政策有關(guān),也與大盤(pán)指數(shù)自身運(yùn)行狀態(tài)有關(guān)。結(jié)合樸素貝葉斯分類算法和股票大盤(pán)指數(shù)漲跌的影響因素建立了大盤(pán)指數(shù)分類預(yù)測(cè)模型,以上證指數(shù)為例進(jìn)行了實(shí)驗(yàn),結(jié)果表明分類預(yù)測(cè)模型有效,準(zhǔn)確性較高。
樸素貝葉斯分類算法; 大盤(pán)指數(shù); 預(yù)測(cè)模型
股市是一個(gè)高風(fēng)險(xiǎn)高收益的投資場(chǎng)所,如何能正確預(yù)測(cè)大盤(pán)指數(shù)的漲跌幅度,幫助投資者減少風(fēng)險(xiǎn)、提高收益,這個(gè)問(wèn)題一直以來(lái)倍受人們的關(guān)注。
大盤(pán)指數(shù)是對(duì)股票價(jià)格的反映,影響股票價(jià)格的因素既與整個(gè)社會(huì)經(jīng)濟(jì)環(huán)境和國(guó)家的宏觀經(jīng)濟(jì)政策有關(guān),也與自身運(yùn)行狀態(tài)有關(guān),甚至投資者的心理因素也影響股市,而且這些因素以非常復(fù)雜的方式相互影響。因而預(yù)測(cè)大盤(pán)指數(shù)的漲跌幅度通常是比較困難的。近年來(lái),隨著人工智能尤其是專家系統(tǒng)的發(fā)展,人工神經(jīng)網(wǎng)絡(luò)被用來(lái)預(yù)測(cè)大盤(pán)指數(shù)和股票價(jià)格,這能有效解決股市預(yù)測(cè)的困難,但是人工神經(jīng)網(wǎng)絡(luò)容易受到網(wǎng)絡(luò)的權(quán)重初始化不合理而影響預(yù)測(cè)的速度和準(zhǔn)確性,不能考慮社會(huì)經(jīng)濟(jì)環(huán)境和國(guó)家的宏觀經(jīng)濟(jì)政策對(duì)股市的影響。
本文綜合考慮影響股票價(jià)格的主要因素,建立了基于樸素貝葉斯分類算法的大盤(pán)指數(shù)分類預(yù)測(cè)模型。
樸素貝葉斯分類算法基于貝葉斯定理,以計(jì)算類別所屬的概率達(dá)到分類預(yù)測(cè)的目的,它是一種統(tǒng)計(jì)分類方法。對(duì)分類算法的比較研究可以發(fā)現(xiàn),樸素貝葉斯分類算法的分類性能可以與決策樹(shù)和人工神經(jīng)網(wǎng)絡(luò)分類算法相媲美。
樸素貝葉斯分類算法的基本原理如下[1]:
(1)每個(gè)數(shù)據(jù)樣本用一個(gè)n維向量X={x1,x2,…,xn}表示,分別描述對(duì)n個(gè)屬性A1,A2,…,An樣本的n個(gè)度量。
(2)假定有m個(gè)類別C1,C2,…,Cm,給定一個(gè)未知類別的數(shù)據(jù)樣本X,分類器在已知X的情況下,預(yù)測(cè)X屬于具有最大后驗(yàn)概率的那個(gè)類別。即樣本X歸屬到類別Ci當(dāng)且僅當(dāng)
P(Ci|X)>P(Cj|X), 1≤j≤m,i≠j,
其中P(Ci|X)最大的類別Ci稱為最大后驗(yàn)假設(shè)。根據(jù)貝葉斯定理有:
(1)
(3)P(X)的計(jì)算公式為:
(2)
P(X)對(duì)所有的類別都為常數(shù),因而只需要P(X|Ci)P(Ci)最大即可。P(Ci)稱為類別的先驗(yàn)概率,可通過(guò)P(Ci)=Si/S公式計(jì)算,其中Si為訓(xùn)練樣本集中類別Ci的樣本數(shù),S為訓(xùn)練樣本集中樣本數(shù)。
(4)若給定包含多個(gè)屬性的數(shù)據(jù)集,直接計(jì)算P(X|Ci)的開(kāi)銷可能非常大。為降低計(jì)算的開(kāi)銷,樸素貝葉斯分類算法通常假設(shè)所有屬性所起的作用都是獨(dú)立的,于是對(duì)于特定的類別,有:
(3)
可以根據(jù)訓(xùn)練樣本估算P(xk|Ci)的值,具體的處理方法如下:
①如果屬性Ak是符號(hào)量,就有P(xk|Ci)=Sik/Si,其中Sik為訓(xùn)練樣本集中類別為Ci且屬性Ak取值為vk的樣本數(shù),Si為訓(xùn)練樣本集中類別為Ci的樣本數(shù)。
②如果屬性Ak是連續(xù)量,那么假定屬性具有高斯分布,因此就有:
(4)
其中μCi和σCi為訓(xùn)練樣本集中類別為Ci的屬性Ak的均值和方差。
(5)為預(yù)測(cè)一個(gè)未知樣本X的類別,可對(duì)每個(gè)類別Ci估算相應(yīng)的P(X|Ci)P(Ci)。樣本X歸屬類別Ci當(dāng)且僅當(dāng)P(Ci|X)>P(Cj|X)(1≤j≤m,i≠j)。
2.1 訓(xùn)練樣本的確定
大盤(pán)指數(shù)分類預(yù)測(cè)就是根據(jù)大盤(pán)指數(shù)的歷史數(shù)據(jù),運(yùn)用分類算法進(jìn)行數(shù)據(jù)分析,得出大盤(pán)指數(shù)的漲跌幅度[2-3]。
筆者選取上證指數(shù)從2008年4月22日至2009年2月13日的數(shù)據(jù)為訓(xùn)練樣本。確定樣本屬性時(shí),既考慮了股票的短線指標(biāo),又結(jié)合了國(guó)家經(jīng)濟(jì)政策消息對(duì)股指的影響,最終確定的訓(xùn)練樣本如表1所示,由于篇幅所限,這里只列出部分?jǐn)?shù)據(jù)。
表1 訓(xùn)練樣本數(shù)據(jù)
樣本屬性“BIAS指標(biāo)”、“KDJ指標(biāo)”和“BOLL指標(biāo)”是股票的短線技術(shù)指標(biāo),其中“BIAS指標(biāo)”和“KDJ指標(biāo)”從股票行情軟件中取值,“KDJ指標(biāo)”取J的值[4-5]。“BOLL指標(biāo)”在股票行情軟件中表現(xiàn)為股價(jià)K線與上軌線、中軌線和下軌線的位置關(guān)系,因而“BOLL指標(biāo)”的取值為“已達(dá)下軌線”、“接近下軌線”、“在下軌線和上軌線之間”、“接近上軌線”和“已達(dá)上軌線”。
樣本屬性“距上一低點(diǎn)或高點(diǎn)漲跌幅”反映股指在短期內(nèi)的漲跌幅度,其計(jì)算公式為:
(5)
樣本屬性“下一個(gè)交易日消息”反映當(dāng)前國(guó)家經(jīng)濟(jì)政策消息面是利多還是利空,其取值為“重大利多”、“一般利多”、“一般”、“一般利空”和“重大利空”。
樣本屬性“上方壓力與下方支持力之差”反映多空雙方的力量強(qiáng)弱,如果收盤(pán)價(jià)大于開(kāi)盤(pán)價(jià),其計(jì)算公式為:
(6)
否則,其其計(jì)算公式為:
(7)
樣本屬性“下一個(gè)交易日漲跌”是分類屬性,其取值為“漲幅≥5%”、“1%≤漲幅<5%”、“漲幅<1%”、“跌幅<1%”、“1%≤跌幅<5%”和“跌幅≥5%”。
2.2 預(yù)測(cè)算法
由于樣本屬性“BIAS指標(biāo)”、“KDJ指標(biāo)”、“距上一低點(diǎn)或高點(diǎn)漲跌幅”和“上方壓力與下方支持力之差”的取值都是實(shí)數(shù),為了分類方便,需要將這些屬性分為幾個(gè)區(qū)間[6-7]。根據(jù)股指在峰值點(diǎn)和谷底點(diǎn)的平均值,“BIAS指標(biāo)”取值分為3個(gè)區(qū)間:(-∞,-2.749],(-2.749,3.099],(3.099,+∞)。由于股指經(jīng)常在“KDJ指標(biāo)”的0和100兩處附近的走向發(fā)生變化,因而“KDJ指標(biāo)”取值分為3個(gè)區(qū)間:(-∞,0],(0,100],(100,+∞)。根據(jù)股指走向變化時(shí)漲跌幅度大小的平均值,“距上一低點(diǎn)或高點(diǎn)漲跌幅”取值分為6個(gè)區(qū)間:(-∞,-0.211],(-0.211,-0.095],(-0.095,0],(0,0.084],(0.084,0.198],(0.198,+∞)。根據(jù)股指走向變化時(shí)“上方壓力與下方支持力之差”的平均值,“上方壓力與下方支持力之差”取值分為6個(gè)區(qū)間:(-∞,-0.016],(-0.016,-0.003],(-0.003,0],(0,0.003],(0.003,0.015],(0.015,+∞)。算法描述如下:
1)輸入待分類元組t的“BIAS指標(biāo)”、“KDJ指標(biāo)”、“BOLL指標(biāo)”、“距上一低點(diǎn)或高點(diǎn)漲跌幅”、“下一個(gè)交易日消息”和“上方壓力與下方支持力之差”各屬性分量值。
2)統(tǒng)計(jì)訓(xùn)練樣本數(shù),記為S。
3)計(jì)算每個(gè)分類值的先驗(yàn)概率,記為P(Cj)(j=1,2,…,6),其計(jì)算公式為:
(8)
其中,SCj為訓(xùn)練樣本中分類屬性為第j個(gè)分類值的樣本數(shù)。
4)計(jì)算“BIAS指標(biāo)”屬性值在區(qū)間 (-∞,-2.749],(-2.749,3.099]和(3.099,+∞)上的分類概率,記為PBij(i=1,2,3;j=1,2,…,6),其計(jì)算公式為:
(9)
其中,SBij為訓(xùn)練樣本中“BIAS指標(biāo)”屬性值在第i個(gè)區(qū)間上且分類屬性為第j個(gè)分類值的樣本數(shù),SCj為訓(xùn)練樣本中分類屬性為第j個(gè)分類值的樣本數(shù)。
5)計(jì)算“KDJ指標(biāo)”屬性值在區(qū)間 (-∞,0],(0,100]和(100,+∞)上的分類概率,記為PKij(i=1,2,3;j=1,2,…,6),其計(jì)算公式為:
(10)
其中,SKij為訓(xùn)練樣本中“KDJ指標(biāo)”屬性值在第i個(gè)區(qū)間上且分類屬性為第j個(gè)分類值的樣本數(shù),SCj為訓(xùn)練樣本中分類屬性為第j個(gè)分類值的樣本數(shù)。
6)計(jì)算“BOLL指標(biāo)”屬性取值的分類概率,記為POij(i=1,2,…,5;j=1,2,…,6),其計(jì)算公式為:
(11)
其中,SOij為訓(xùn)練樣本中“BOLL指標(biāo)”屬性值為第i個(gè)值且分類屬性為第j個(gè)分類值的樣本數(shù),SCj為訓(xùn)練樣本中分類屬性為第j個(gè)分類值的樣本數(shù)。
7)計(jì)算“距上一低點(diǎn)或高點(diǎn)漲跌幅”屬性值的分類概率在區(qū)間(-∞, -0.211]、(-0.211, -0.095]、(-0.095,0]、(0, 0.084]、(0.084, 0.198]和(0.198, +∞) 上的分類概率,記為PRij(i=1,2,…,6;j=1,2,…,6),其計(jì)算公式為:
(12)
其中,SRij為訓(xùn)練樣本中“距上一低點(diǎn)或高點(diǎn)漲跌幅”屬性值在第i個(gè)區(qū)間上且分類屬性為第j個(gè)分類值的樣本數(shù),SCj為訓(xùn)練樣本中分類屬性為第j個(gè)分類值的樣本數(shù)。
8)計(jì)算“下一個(gè)交易日消息”屬性取值的分類概率,記為PMij(i=1,2,…,5;j=1,2,…,6),其計(jì)算公式為:
(13)
其中,SMij為訓(xùn)練樣本中“下一個(gè)交易日消息”屬性值為第i個(gè)值且分類屬性為第j個(gè)分類值的樣本數(shù),SCj為訓(xùn)練樣本中分類屬性為第j個(gè)分類值的樣本數(shù)。
9)計(jì)算“上方壓力與下方支持力之差”屬性值在區(qū)間(-∞, -0.016]、(-0.016,-0.003]、(-0.003,0]、(0, 0.003]、(0.003, 0.015]和( 0.015, +∞)上的分類概率,記為PSij(i=1,2,…,6;j=1,2,…,6),其計(jì)算公式為:
(14)
其中,SSij為訓(xùn)練樣本中“上方壓力與下方支持力之差”屬性值在第i個(gè)區(qū)間上且分類屬性為第j個(gè)分類值的樣本數(shù),SCj為訓(xùn)練樣本中分類屬性為第j個(gè)分類值的樣本數(shù)。
10)對(duì)于待分類元組t,計(jì)算對(duì)應(yīng)于各屬性取值的分類條件概率,記為P(t|Cj)(j=1,2,…,6),其計(jì)算公式為:
P(t|Cj)=PBit j×PKit j×POit j×PRit j×PMit j×PSit j,j=1,2,…,6,
(15)
其中,PBit j為待分類元組t的“BIAS指標(biāo)”屬性取值對(duì)應(yīng)的分類屬性為第j個(gè)分類值的分類概率;PKit j為待分類元組t的“KDJ指標(biāo)”屬性取值對(duì)應(yīng)的分類屬性為第j個(gè)分類值的分類概率;POit j為待分類元組t的“BOLL指標(biāo)”屬性取值對(duì)應(yīng)的分類屬性為第j個(gè)分類值的分類概率;PRit j為待分類元組t的“距上一低點(diǎn)或高點(diǎn)漲跌幅”屬性取值對(duì)應(yīng)的分類屬性為第j個(gè)分類值的分類概率;PMit j為待分類元組t的“下一個(gè)交易日消息”屬性取值對(duì)應(yīng)的分類屬性為第j個(gè)分類值的分類概率;PSit j為待分類元組t的“上方壓力與下方支持力之差”屬性取值對(duì)應(yīng)的分類屬性為第j個(gè)分類值的分類概率。
11)計(jì)算待分類元組t歸類到每個(gè)分類的后驗(yàn)概率,記為P(Cj|t),其計(jì)算公式為:
(16)
12)將待分類元組t歸類到類別Ci,當(dāng)且僅當(dāng)P(Ci|t)>P(Cj|t) (1≤j≤6,i≠j)。
2.3 實(shí)驗(yàn)結(jié)果及分析
采用上面提出的預(yù)測(cè)模型,筆者對(duì)2009年2月16日至2009年3月27日共30天交易日上證指數(shù)進(jìn)行預(yù)測(cè),實(shí)驗(yàn)采用VB6.0編程實(shí)現(xiàn),結(jié)果如表2所示,其中有26個(gè)交易日指數(shù)漲跌幅預(yù)測(cè)正確。
實(shí)驗(yàn)結(jié)果表明,采用本文中提出的預(yù)測(cè)模型可以有效地預(yù)測(cè)大盤(pán)指數(shù)當(dāng)天的漲跌幅,預(yù)測(cè)正確率為86.67%。
本文提出的大盤(pán)指數(shù)分類預(yù)測(cè)模型以樸素貝葉斯分類算法作為分類器,能有效預(yù)測(cè)股指當(dāng)天的漲跌幅度。在模型中既考慮了股票的短線指標(biāo),又結(jié)合了國(guó)家經(jīng)濟(jì)政策消息面對(duì)股指的影響,從實(shí)驗(yàn)結(jié)果來(lái)看,當(dāng)國(guó)家經(jīng)濟(jì)政策消息面比較明朗的情況下該分類預(yù)測(cè)模型準(zhǔn)確性較高。
表2 實(shí)驗(yàn)結(jié)果
[1] MARGARET H Dunham.數(shù)據(jù)挖掘教程[M].郭春慧,天鳳占,靳曉明,譯.北京:清華大學(xué)出版社,2005:74-75.
[2] 呂昊,林君,曾曉獻(xiàn).改進(jìn)樸素貝葉斯分類算法的研究與應(yīng)用[J].湖南大學(xué)學(xué)報(bào):自然科學(xué)版,2012,32(12):56-61.
[3] 左輝,樓新遠(yuǎn).基于貝葉斯分類的選股方法[J].電腦知識(shí)與技術(shù),2008(10):173-176.
[4] 劉紅巖.商務(wù)智能方法與應(yīng)用[M].北京:清華大學(xué)出版社,2013:40-42.
[5] 余芳,姜云飛.一種基于樸素貝葉斯分類的特征選擇方法[J].中山大學(xué)學(xué)報(bào):自然科學(xué)版,2004,43(5):118-120.
[6] 馮現(xiàn)坤,劉羽,蔣細(xì)芳.樸素貝葉斯分類算法在數(shù)據(jù)預(yù)測(cè)中的應(yīng)用[J].軟件導(dǎo)刊,2011,10(5):65-66.
[7] 田志偉.貝葉斯神經(jīng)網(wǎng)絡(luò)在股票預(yù)測(cè)中的應(yīng)用[D].無(wú)錫:江南大學(xué),2011:10-12.
[責(zé)任編輯:李 莉]
Abstract: Margin prediction for the broader market index is of great significance in stock investment. Broader market index is not only related to national macroeconomic policies, but also related to the broader index operation itself. Based on native Bayes classification algorithm and influence factors of stock market index, a classification prediction model is established about market index, and followed by an experiment of Shanghai stock index as a case study. The experiment results prove that the classification prediction model is effective with higher accuracy.
Keywords: native Bayes classification algorithm; market index; prediction model
On stock index prediction based on native Bayes classification algorithm
REN Min-hong, XIAO Hai-rong
(School of Mathematics and Computer Science, Shaanxi University of Technology, Hanzhong 723000, China)
1673-2944(2014)03-0068-06
2013-11-18
任民宏(1970—),男,陜西省洋縣人,陜西理工學(xué)院副教授,碩士,主要研究方向?yàn)橛?jì)算機(jī)圖形圖像處理、數(shù)據(jù)挖掘;肖海蓉(1976—),女,陜西省涇陽(yáng)縣人,陜西理工學(xué)院講師,碩士,主要研究方向?yàn)閿?shù)據(jù)庫(kù)技術(shù)、計(jì)算機(jī)圖形圖像處理。
F830.91; TP181
A
陜西理工大學(xué)學(xué)報(bào)(自然科學(xué)版)2014年3期