張瀟 韋增欣
[摘 要] 對于股票投資過程中的趨勢預測問題,采用隨機森林算法建立基于歷史價量信息的股票模型。文章首先介紹了股票技術(shù)指標,然后利用隨機森林算法實現(xiàn)了對滬深股票的趨勢預測。通過對算法分類精度和股票回測結(jié)果進行分析,證實集成學習算法在股票趨勢預測中具有一定的作用。
[關(guān)鍵詞] 集成學習算法;隨機森林;股票預測
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 03. 048
[中圖分類號] F832.48 [文獻標識碼] A [文章編號] 1673 - 0194(2018)03- 0120- 04
1 引 言
股票市場的快速發(fā)展,使得其逐漸成為國民經(jīng)濟的重要支撐。股票市場可以帶來高收益率,如何準確預測股票價格走勢,如何規(guī)避股票投資風險,如何獲得最大投資收益是繞不開的問題。股票價格作為非線性時變系統(tǒng),預測難度較大。本文為了保證穩(wěn)定的投資收益,降低投資風險,采用股市中常用的技術(shù)指標作為分析基礎(chǔ),利用隨機森林(RF)作為算法,旨在實現(xiàn)對股票漲跌的預測。
算法交易降低了投資者情緒的作用,減少了長期經(jīng)驗的積累,被廣泛應(yīng)用于股票市場。例如:張健等[1]研究了人工神經(jīng)網(wǎng)絡(luò)在股票分析預測中的應(yīng)用,并試圖設(shè)計新的網(wǎng)絡(luò);張晨希等[2]使用支持向量機預測上市公司股票走勢,并證明優(yōu)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò);鄒阿金等[3]構(gòu)建了新型的Legender神經(jīng)網(wǎng)絡(luò),并證明可以很好地逼近非線性系統(tǒng);張燕平等[4]改進原有的覆蓋算法,給出新的覆蓋學習算法SLA,并將其應(yīng)用于股票預測;何芳等[5]研究了基于擴展Kalman濾波的神經(jīng)網(wǎng)絡(luò)學習算法,并證明在股票預測中具有可行性。
本文基于集成學習算法,旨在幫助初入股市的人判斷股票的未來漲跌趨勢。具體研究內(nèi)容如下:第一,本文首先從常用的技術(shù)指標出發(fā),闡明了技術(shù)指標在股票預測中的作用。第二,介紹RF算法,并與技術(shù)指標結(jié)合進行建模。第三,在實證中發(fā)現(xiàn)RF在預測股票漲跌上還是有一定的幫助的。實驗的同時也驗證了本文提出的方法對股票交易具有一定意義的預測指導作用。
2 技術(shù)指標
1896年Charles H.Dow提出股價平均指數(shù),這是第一個股票技術(shù)指標。隨后技術(shù)指標就開始在股票預測中占有一席之地。技術(shù)指標具有三個方面的優(yōu)勢:第一,直觀性,即使專業(yè)知識缺乏,仍可通過技術(shù)指標對股票趨勢進行判斷;第二,多樣性,技術(shù)指標幾乎涵蓋了每一種策略;第三,統(tǒng)一性,所有的股票可以放同一框架比較。
2.1 本文選取的技術(shù)指標
本文的技術(shù)指標主要是在分析、歸納、總結(jié)大量文獻和證券報告后,結(jié)合價值成長投資策略(GARP)[6,7]選取的。GARP結(jié)合了價值型策略和成長性策略,目的是找到價值可能被低估,實際卻在持續(xù)增長的股票。
本文選取的股票技術(shù)指標見表1。
上述16個股票技術(shù)指標涵蓋了評價上市企業(yè)盈利、償債、成長、運營等能力的技術(shù)指標,符合GARP。技術(shù)指標不止16種,以上16種是投資者最普遍使用的。雖然只選用16個指標具有后驗性、片面性、欺騙性,但集成學習算法較好的彌補了這些缺點和不足。
3 隨機森林算法
隨機森林(Random Forest,RF)[8],是基于Bagging算法的一種集成學習算法。訓練集通過自助重抽樣得到,分裂規(guī)則為CART算法,特征選擇采用隨機的方法。RF包含了Bagging、CART、隨機特征選擇等幾個算法,噪聲容忍能力強,分類效果突出。
3.1 Bagging算法
Bagging算法[9]的原理是:設(shè)原始的樣本集為S,有放回的抽樣得到的訓練集為T-set,其中T-set和S的元素個數(shù)相同。
若選用的抽樣方法為Bootstrap,則S中沒被抽取到的樣本概率是(1-)N,其中N為S的樣本總數(shù)。已知(1-)N≈0.368,所以S中的樣本大約有37%不會被抽到。沒抽到的數(shù)據(jù)成為袋外數(shù)據(jù);袋外數(shù)據(jù)一般用來估算模型的性能,即OOB估計[10]。使用OOB能夠得到泛化誤差的大小和單個特征的重要程度。設(shè)T輪訓練之后,分類器序列為{f1,f2,…,fT},該序列構(gòu)成了多分類器的模型,分類結(jié)果的獲取對于分類模型來說可以采用簡單多數(shù)投票法或平均法。
Bagging處理多分類問題的預測準確率是由元學習算法的穩(wěn)定性決定的,見圖1。
已知Bagging方法適用于對于不穩(wěn)定的元學習算法,因為Bagging通過降低方差減小泛化誤差,處理不穩(wěn)定的元學習算法,預測函數(shù)的偏差偏小,方差偏大。CART作為元學習算法是不穩(wěn)定,故RF算法通過自助重抽樣法得到不同訓練集的方法,不僅降低了方差,還降低了的泛化誤差。
3.2 隨機森林
RF由{h(x,θk),k=1,…}組成,其中元分類器h(x,θk)表示CART。首先通過隨機有放回的方式得到每棵單棵樹的訓練集,然后利用隨機特征選擇進行分裂;最后針對每棵樹的輸出結(jié)果來確定最終RF的輸出結(jié)果。確定最終輸出結(jié)果的方式有兩種,一種是用于分類的簡單多數(shù)表決法,一種是用于回歸的簡單平均法。
在RF模型條件下的單棵樹構(gòu)造過程:(1)使用Bagging的方法產(chǎn)生訓練數(shù)據(jù)集。(2)內(nèi)部節(jié)點的分裂采用隨機選擇特征的方法。(3)每棵樹在生長過程中不實行剪枝操作。
3.2.1 隨機森林的泛化誤差
沒有通過自助重抽樣成為訓練集的樣本常估計模型的泛化誤差。泛化誤差以大數(shù)定律作為基礎(chǔ),通過定義間隔函數(shù)得到。RF中泛化誤差與每棵樹的分類情況及樹之間的相關(guān)度密切相關(guān),隨著樹的數(shù)目增多,泛化誤差會增大并收斂于一個有限的上界。
定理[11] 樹的個數(shù)在達到一定程度后,在所有序列集θ1…上,PE*會處處收斂于:
其中,θ表示每棵樹對應(yīng)的隨機向量,h(x,θ)表示x和θ的分類器輸出。隨著森林中樹的數(shù)目增多,森林不會出現(xiàn)過擬合現(xiàn)象,而是趨向于一個有界的泛化誤差值。
證明 對于分類器{h1(x),h2(x),…,hN(x)},x為輸入向量,y為輸出變量,定義(x,y)的間隔函數(shù)為:
其中,I(·)為示性函數(shù),avk(·)為取平均值。函數(shù)間的差值越大,分類器在分類過程中效果越好。分類器的泛化誤差為:PE*=pX,Y(mg(x,y)<0),X,Y表明概率由X,Y空間得出。
3.2.2 隨機森林的優(yōu)缺點
RF擁有組合分類器的性能,使用Bagging隨機抽取訓練樣本且隨機選擇特征。RF的優(yōu)點:(1)OOB估計可以很好的估計模型的泛化誤差和每個特征重要度。(2)能夠處理所有屬性取值的情況。(3)對數(shù)據(jù)噪聲有很好的容忍能力。(4)RF在處理規(guī)模較大的數(shù)據(jù)時有較高的預測準確率且可以解決過度擬合。RF的缺點在于對部分特征確實不敏感。
4 預測模型
4.1 數(shù)據(jù)的預處理
股票數(shù)據(jù)是有噪聲而且有缺失的,不能夠直接進行數(shù)據(jù)分析,需要將原始數(shù)據(jù)進行標準化,清除、糾正有問題的數(shù)據(jù)。
對于股票中的噪聲,利用數(shù)據(jù)平滑法進行處理。由于隨機森林善于處理離散值,所以需要對數(shù)據(jù)進行規(guī)范化,本文將所有數(shù)值映射到[-1,1]。以MACD為例,為了使得算法能夠識別拐點,設(shè)定當快速線(DIF)向上突破慢速線(DEA)為1,當快速線(DIF)向下突破慢速線(DEA)為-1,其他為0。
圖2 展示了2015年1月1日至2015年3月21日滬深300的MACD,處理后數(shù)據(jù)更容易被算法所識別,所有指標數(shù)據(jù)都會做類似處理,此處不再贅述。
4.2 隨機森林算法預測準確率
將上文中的16個技術(shù)指標作為訓練因子,獲取2015年1月1日-2017年1月1日的技術(shù)指標數(shù)據(jù)和股票收益。以5天為一個周期進行計算。
通過測試得到,每個周期隨機森林對股票漲跌的預測精度如圖3所示。
取預測精度的平均值0.41,方差0.07,可以看出股票的預測精度較高,能夠很好的預測股票的漲跌情況。
4.3 股票回測
本文選取2015年1月1日至2017年1月1日對滬深300股票進行回測。選擇滬深300是因為(1)它包含了300只A股,是我國A股市場的核心指數(shù),具有較高的代表性;(2)反映了股票價格變動的主要趨勢,包含13個行業(yè),占股票市場70%左右的市值,具有很好地投資性。
回測結(jié)果如圖4所示。
從圖4中可以看出,該策略的年化收益率高于基準年化收益率35.3%,夏普比率為1,貝塔為0.65,表示策略風險回報較高。最大回撤為21.5%,反映了組合與最高點的虧損率較低。收益波動率為28.6%,資產(chǎn)收益的不確定性較弱。阿爾法為33%,實際回報比預期回報存在較大差異??偟膩碚f該策略具有不錯的超額收益。
5 結(jié) 語
本文通過價值成長投資策略選取股票技術(shù)指標,然后利用隨機森林預測股票的漲跌趨勢,最后進行回測。結(jié)果表明隨機森林在股票漲跌預測中具有一定的作用,策略回測具有不錯的收益。隨機森林作為集成學習算法,能夠處理規(guī)模較大的數(shù)據(jù),預測準確度高,噪聲容忍度強,非常適合股票數(shù)據(jù)處理。
主要參考文獻
[1]張健, 陳勇. 人工神經(jīng)網(wǎng)絡(luò)之股票預測[J]. 計算機工程, 1997(2):52-55.
[2]張晨希, 張燕平, 張迎春,等. 基于支持向量機的股票預測[J]. 計算機技術(shù)與發(fā)展, 2006, 16(6):35-37.
[3]鄒阿金, 羅移祥. Legender神經(jīng)網(wǎng)絡(luò)建模及股票預測[J]. 計算機仿真, 2005,22(11):241-242.
[4]張燕平, 張鈴, 吳濤,等. 基于覆蓋的構(gòu)造性學習算法SLA及在股票預測中的應(yīng)用[J]. 計算機研究與發(fā)展, 2004, 41(6):979-984.
[5]何芳, 陳收. 基于擴展Kalman濾波的神經(jīng)網(wǎng)絡(luò)學習算法在股票預測中的應(yīng)用[J]. 系統(tǒng)工程,2003,21(6):75-79.
[6]陳光興, 張一明. 淺談價值成長投資策略在中國股市的適用性[J]. 經(jīng)營管理者, 2010(24):8-8.
[7]王麗. 我國A股市場價值成長投資策略及其有效性實證研究[D].無錫:江南大學, 2016.
[8]Breiman L. Random Forests[J]. Machine Learning, 2001,45(1):5-32.
[9]Breiman L, Last M, Rice J. Random Forests: Finding Quasars[M]// Statistical Challenges in Astronomy.NewYork,NY:Springer,2003:243-254.
[10]李毓, 張春霞. 基于out-of-bag樣本的隨機森林算法的超參數(shù)估計[J]. 系統(tǒng)工程學報, 2011, 26(4):566-572.
[11]康雅文. 基于隨機森林的醫(yī)療行業(yè)供應(yīng)商的等級評估模型[D].合肥:安徽大學, 2017.