袁順杰,程 輝,葉貞成,程培鑫
華東理工大學 信息科學與工程學院 自動化系,上海200237
隨著機器學習的發展,越來越多的算法被用于金融市場的預測。由于金融市場存在諸多復雜的因素,比如國家政策、宏觀調控、國際環境、市場情緒等,這些因素使得金融市場是一個高度復雜、不確定、非線性的時變系統[1],而投資者更關注算法的可解釋性、處理不確定性因素的能力,以及在不同市場環境下的收益能力和抗風險能力。
BP神經網絡、RNN、SVM和LR回歸[2-5]等算法是最先被用于股市預測的算法。近年來,算法的可解釋性越來越受到學者和機構的重視。具備可解釋性意味著算法能清晰地解釋數據由輸入到輸出的整個過程,在金融市場應用中具有實際意義。有學者將決策樹、隨機森林、關聯規則[6-9]等方法用于對金融市場的預測。在金融市場中,輸入特征會受到諸多因素的干擾而具有不確定性,而上述算法不能很好地描述這種不確定性因素。
為了增強算法處理不確定性因素的能力,有學者將模糊理論用于金融市場的預測中。在最近的研究中,Mehmanpazir[10]提出了DEFES(Data mining-based Evolutionary Fuzzy Expert System)算法用于預測股票未來走勢并取得了效果。Tryus[11]采用模糊神經網絡(FNN)預測短期內指數漲跌情況,并在S&P500、NASDAC 兩個指數上驗證了算法的可行性。Bernardo[12]提出了一種用于金融的建模和預測的離散2 型模糊邏輯分類器(IT2 FLS),通過數據建模生成指定數量的規則,并選擇最優的規則輸出作為模型的輸出。Antonelli[13]提出了基于多目標優化的2 型模糊邏輯分類器(IT2-PAESRCS),通過對模糊隸屬度函數參數的編碼優化,得到更優的模糊隸屬度函數。考慮到中國股市中常呈現出牛市和熊市兩種不同走勢,而現有的算法在不同行情下的性能具有明顯差異,這使得算法的性能不能進一步提高。
針對以上問題,提出基于SOM和T2 FLS的分類算法(SOM-T2 FLS),其主要創新點在于:
(1)采用無監督學習和有監督學習相結合的學習方法,利用SOM自組織特性,將原始樣本集劃分成具有空間差異性的子集,再針對每個子集分別學習T2 FLS 分類器。
(2)模糊推理規則庫由C4.5 算法生成,通過生成的決策樹提取規則,由規則庫表示數據的非線性關系,增強算法的可解釋性。
(3)使用遺傳算法對模糊隸屬度函數的參數以及規則庫進行優化,提出將規則庫長度作為正則項加入到適應度函數的計算中,提升模型的泛化性能。
自組織特征映射神經網絡(Self-Organizing feature Map,SOM)由Kohonen[14]提出,是一種無監督學習方式。在訓練階段,對網絡輸入的樣本,輸出層會有某個神經元產生最大響應而獲勝,獲勝神經元以及其優勝鄰域內的所有神經元所連接的權向量均向輸入向量的方向做不同程度的調整。其中,對優勝鄰域內所有神經元調整權值公式為:

η( t,N )為學習率,是訓練時間t 和該神經元與獲勝神經元j*之間的拓撲距離N 的函數。SOM 網絡訓練結束后,輸出層各神經元與各輸入模式的映射關系就完全確定了。利用SOM 的自組織特性,采用無監督學習的方法,將樣本集分成兩個子集,使兩個子集的樣本具有空間差異性。
2 型模糊邏輯系統(T2 FLS)[15]是傳統模糊系統的擴展,其特征是隸屬度值本身為模糊集合,增強了模型描述不確定性因素的能力。設{C1, C2,…,CK}是目標類別組成的集合,令x={ x1, x2,…,xF} 是樣本空間的一個點,Uf(f=1,2,…,F)是第f 維的向量的值域,是每一個特征的模糊子集。采用三角形隸屬度函數來定義模糊集合如圖1所示。圖中,藍色線部分是弱隸屬度函數,紅色線部分是對應的強隸屬度函數。其中,使用(a,b,c)定義一個三角隸屬度函數參數,(a,0)和(c,0)分別定義為三角形的左端點和右端點,(b,1)定義為三角形頂點。首先,通過定義強隸屬度函數然后,計算弱隸屬度函數參數。弱隸屬度函數參數計算規則如下:

圖1 2型模糊隸屬度函數

基于(2)、(3)、(4),可以得到:

因此,當Tf=3 時,只需確定這3 個參數,即可確定整個2型模糊隸屬度函數。由于只需要確定,即可確定整個2型模糊隸屬度函數。
設規則庫有M 條規則,其中第m 條規則可描述為:

其中,Y 是分類器的輸出,Cjm是第m 條規則的輸出類別標簽,jm,f是條件部分特征的模糊值,RWm用來描述規則對于當前輸入模式的確信度。

圖2 分類器訓練以及測試流程圖

利用SOM 網絡的自組織特性,將樣本集分為兩個不同子集,子集之間的樣本具有一定空間差異性,利用這種差異性提升算法在不同行情背景下的預測精度。子集劃分完成,即對子集分別學習分類器,采用改進的T2 FLS算法對子集內樣本進行分類。提出將規則庫長度作為正則項加入到遺傳算法適應度函數中,通過進化算法得到泛化能力強,收益高,抗風險能力強的模型。圖2展示了本文算法工作的流程圖。從圖中可以看出,提出的SOM-T2 FLS算法將分類分成了兩步,首先利用SOM 網絡進行模式判斷,再根據模式選擇對應子分類器進行細粒度分類。
2.3.1 歸一化
為了防止不同變量之間因數量級差異產生“信息淹沒”,本文使用線性歸一化的方法,將變量范圍線性歸一化到[0,1],變換公式如下:

2.3.2 生成初始規則庫
在生成規則庫之前,進行無監督學習,分析SOM網絡聚類結果并將樣本分成兩個子集,在各子集下,分別建立規則庫。通過模糊C 均值(FCM)算法[17]將特征模糊化,C4.5算法用于提取規則庫。決策樹上的一個根節點到葉節點整條路徑為一條規則,這條路徑經過的所有屬性及其屬性值是規則的條件部分(IF部分),葉節點上的輸出標簽是規則的輸出(THEN 部分)。取覆蓋樣本量多的規則并設置規則庫上限。圖3 是由C4.5 算法生成的一棵決策樹,其中,輸入特征Xf,f=1,2,3,4,每個變量分為3個模糊子集,輸出是( C1, C2)。根據圖3的決策樹,可以提取到的規則庫如圖4所示,一共生成7條規則。

圖3 C4.5決策樹實例

圖4 規則庫實例
2.3.3 編碼
模型編碼一共分兩個部分,第一部分是參數編碼,即2 型模糊隸屬度函數的參數編碼,染色體記為CDB;第二部分是規則編碼,染色體記為CRB。根據第2.2節,模糊隸屬度函數參數的個數是由設置的模糊子集個數以及輸入樣本特征數決定,所以CDB采用實數編碼。CRB部分編碼規則如下,對于規則庫中的每一條規則由整數向量υm=[υm,1,…,υm,F,υm,F+1] 表示。其中,υm,f(f=1,2,…,F)是條件部分每一個特征的模糊子集,υm,f=0,1,2,3。υm,F+1=0,1 是輸出類別標簽(本文討論二分類問題),則每條染色體的長度為( F+1)×Mmax,其中Mmax是規則數。
2.3.4 遺傳操作
在子代迭代過程中,交叉和變異算子根據編碼方式的不同,對CRB和CDB部分分別采用不同的算子。對CRB部分,采用單點交叉算子,對CDB部分,采用BLX-α 交叉算子(α=0.7),即兩個個體的線性組合產生兩個新的個體,則新個體計算如下:

適應度函數計算如下:

其中,ACC 是模型的準確率,ωi是各項指標的權值,precision 是模型預測查準率,查準率是金融預測的重要指標之一,代表預測為漲有多少實際也是漲,可以用交易的勝率來理解查準率,是描述模型穩健性的重要指標;return_ratio 是模型在訓練區間內年化平均收益,獲得更高的年化收益是最終的目標;rule_length 是規則庫總長度,nr 是規則數,nf 是樣本特征數,因此第四項的的范圍是[0,1],與前三項數量級保持一致。為了增強模型泛化能力,規則庫總長度應該盡量的小,使模型更加簡單,所以此項為模型正則項用于控制模型復雜度。
本章使用中國A 股市場的歷史數據對SOM-T2 FLS算法進行驗證分析。首先介紹數據集、交易策略以及交易成本和滑點設置。作為對比實驗,將SOM-T2 FLS 算法與DEFES、FNN、IT2 FLS、IT2-PAES-RCS 算法以及量化交易策略買入并持有策略(BH)、均線策略(MA)、經典技術指標策略(TA)[18-20]相比較,證明提出的SOM-T2 FLS有更好的預測效果和抗風險能力。
采用的歷史數據來源于2011年1月1日到2018年8月1 日之間中國A 股市場。SOM-T2 FLS 算法用于預測漲停股票能否繼續上漲,篩選出每個交易日(T)收盤價達到漲停的股票,在T+1交易日開盤十分鐘記錄當前價格為買入價,再在T+2個交易日收盤時再記錄當前價格為賣出價,計算收益率(若收益為正及標注為“漲”,若收益為負則標記為“跌”)。在這期間,A 股市場單日收盤漲停一共29 987 次,考慮到買單應該能夠及時成交,去除掉T+1交易日開盤漲停(買不進)的樣本,一共余下26 507個樣本。其中,取前70%(2011年11月1日—2017年2 月2 日)的樣本作為訓練集,后30%(2017 年2 月12日—2018年8月1日)的數據作為測試集。此外,本文一共選取22 個與價格走勢相關的指標作為樣本特征,如表1所示。
在實際交易中,必然要考慮交易成本,中國股票交易手續費就是指投資者在委托買賣證券時應支付的各種稅收和費用的總和,由印花稅、傭金、過戶費等組成。本文引入滑點的設置,該設置將在一定程度上使最后的成交價“惡化”,也就是買得更貴,賣得更便宜。本文使用成交額的0.3%作為每單交易的滑點損失。實證過程假設如下:
(1)每次掛單交易均可順利成交;
(2)初始投入資金100 萬元,每次買入資金不超過總資產的30%,每只個股的買入金額不超過10萬元;
(3)每個交易日對需要買入建倉的股票的資金分配是均勻分配。
3.3.1 算法的準確率和復雜度分析
表2 展示了經拓撲結構為2×2 的SOM 網絡將樣本集分成兩個子集的統計信息。表中,兩個子集的樣本數量相差不大,集合1的正負樣本比例要略高于集合2,表明集合1 中正樣本占比更大,而集合1 的平均收益是集合2 的平均收益率的13 倍,表明SOM 網絡將原始樣本集劃分成兩個具有差異性的子集。由平均收益率和正負樣本比率可以看出,集合1中的樣本具有更高的平均收益率,有更高的概率為“漲”,反之,集合2中的樣本有更高的概率為“跌”。表3列出在相同的數據集下,SOMT2 FLS 預測算法與DEFES、FNN、IT2 FLS、IT2-PAESRCS 預測結果的比較,表3 中9 項指標分別是訓練集精度ACCTr、查準率precisionTr、召回率recallTr和測試集精度ACCTs、查準率precisionTs、召回率recallTs和算法的F1分數以及模型訓練時間TT(Training Time)和計算復雜度O(t)。由表中數據不難看出,提出的SOM-T2 FLS算法在測試集的精度和查準率高于其他算法,分別為63.57%和68.99%,模型的召回率低于IT2-PAES-RCS算法,F1 分數也為最高的0.649 7,體現出更好的分類性能。數據表明模型可以將勝率提高,卻降低了召回率。主要原因在于,求解模型時,并沒有僅僅考慮精度,而是將查準率、模型收益、規則長度都加入到適應度函數的計算中,查準率的在股市預測中的含義是預測的勝率,更高勝率意味著更小的風險。因此,在股市預測中SOM-T2 FLS 算法有更好的抗風險能力。而SOM-T2 FLS 算法的預測性能與適應度函數中各指標的權重分配相關,將在3.3.3小節中討論。從訓練時間可以看出,提出的SOM-T2FLS 算法的訓練時間達到了5.8 h,略好于IT2-PAES-RCS 算法,較其他算法沒有體現出訓練時間上的優勢。O(t)代表對單個樣本預測的計算復雜度,其中,R 指規則數,M 指模糊集合的個數,F 指樣本特征個數,從表中可以看出,本文提出的SOM-T2 FLS 算法的O(t)要略大于其他算法。值得一提的是,本文的交易策略以日線為單位進行預測,對于算法的實時性要求不高,額外的計算開銷可以忽略不計。因此,從計算復雜度來分析,雖然SOM-T2 FLS模型的訓練需要大量的時間和計算資源,但是不影響實際的應用效率。

表1 數據集樣本的特征

表2 SOM聚類結果統計
3.3.2 績效指標評價結果
從算法的收益能力和抗風險能力角度來分析,本文將SOM-T2 FLS 分類算法與DEFES、FNN、IT2 FLS、IT2-PAES-RCS算法以及量化交易策略BH(買入并持有策略)、MA(均線策略)、TA策略(經典技術指標策略)進行比較,圖5展示了各個算法在測試區間內的資金走勢圖。由圖5可以看出,基于SOM-T2 FLS算法的交易策略能獲得最大的累計收益。圖中BH曲線由滬深300指數計算,滬深300 指數是反映中國A 股市場全貌的指數??梢钥闯觯跍y試區間分別經歷了牛市和熊市兩種行情。值得注意的是,基于SOM-T2 FLS算法的交易策略在牛市中可以跟蹤趨勢獲取超額收益,而在熊市中可以最大程度減小指數下行的風險。根據資金走勢可以分別計算出年化平均收益ANR(Annual revenue Rate)、交易次數Transaction、勝率Win、最大回撤MD(Max-Drawdown)、夏普比率(Shape Ratio)以及索提諾比率(Sortino Ratio)指標見表4。不難看出,基于SOM-T2 FLS 算法的交易策略的ANR 最大,說明模型收益能力優于其他模型。同時,從交易次數和勝率可以看出,基于SOM-T2 FLS 算法的交易策略具有更少的交易次數和更高的勝率,較其他策略具有更強的抵抗風險能力。最大回撤方面,基于SOM-T2 FLS 算法的交易策略可達到8.53%好于其他策略,體現出了更好的算法穩健性和抗風險能力。在夏普比率和索提諾比率方面,基于SOM-T2 FLS 算法的交易策略分別達到2.217 4 和0.015 4。夏普比率說明在相同風險情況下,基于SOMT2 FLS算法的交易策略有更高的期望收益。索提諾比率表明在相同下行風險情況下,基于SOM-T2 FLS算法的交易策略有更高的回報率。綜上所述,基于SOMT2 FLS 算法的交易策略不僅有良好的收益能力,還具有更好的抗風險能力。

圖5 模型收益比較

表3 分類算法預測結果對比

表4 各交易策略收益情況對比
3.3.3 模型分析
上述實證結果表明,提出算法在學習過程中最重要的參數在于適應度函數中各項式的權值比例關系,因為其直接影響最優模型的求解方向。圖6~9 展示了在權值分配為1∶1∶1∶1、1∶2∶1∶1、1∶1∶2∶1 和1∶1∶1∶2 時,各項指標隨迭代過程的變化情況。理論上,當某一項權重增大權重的時候,模型會在該項指標上表現出一定的提高。從圖中可以看出,結果與理論情況一致。圖6是權值分配為1∶1∶1∶1時各個指標隨迭代次數的變化情況,從迭代次數變化情況圖中可以看出,在第2 500 次迭代時,各項指標收斂到最優解。
圖7展示了權值比例為1∶2∶1∶1時各指標隨迭代次數關系圖,從圖中可以看出,在2 500 次迭代時指標收斂。增加precision的權重,訓練集中precision值提高了3%,同時,ACC 和ANR 分別提高3%和1.12%,而規則長度增加到了440。在測試集中,各項指標均發生了反向的變化,首先,precision 降低了2%,與此同時,ACC和ANR都降低了2%。由此可以看出,算法在訓練集上的性能表現更好,但是在測試集上的性能表現變差,所以只增加precision 的權重情況下,模型存在過擬合的風險。
圖8展示了權值比例為1∶1∶2∶1時各指標隨迭代次數關系圖,從圖中可以看出,在2 500 次迭代時指標收斂。增加ANR 的權重,在訓練集中ANR 增加了4.5%,同時,ACC 和precision 分別降低了4%和1%,而規則長度提高到432。在測試集中,ANR提高了1%,但是ACC和precision分別下降了3%和6%。由此可以看出,增加ANR 權重可以提高模型的收益能力,但是分類算法的性能發生了一定程度的下降,與此同時,規則長度增加使模型更加復雜。在最優模型選取時,不僅要考量模型的收益能力,也要考量模型防范風險能力。在增加ANR的情況,交易模型通過增大交易次數來增加收益,而模型的勝率卻減小了,造成交易風險更大。

圖6 權值比例為1∶1∶1∶1時各指標隨迭代次數關系

圖7 權值比例為1∶2∶1∶1時各指標隨迭代次數關系

圖8 權值比例為1∶1∶2∶1時各指標隨迭代次數關系

圖9 權值比例為1∶1∶1∶2時各指標隨迭代次數關系
圖9 展示了權值比例為1∶1∶1∶2時各指標隨迭代次數關系圖,從圖中可以看出,在2 500 次迭代時指標收斂。增加規則長度權重,最優解的規則長度下降到350,模型復雜程度降低。但是,從圖中可以看出,訓練集中ACC、precision 和ANR 三項指標分別下降了4%、3%和0.1%,而在測試集中這三項指標也分別下降了5%、6%和0.15%。由此可以看出,雖然模型復雜度降低,但是性能也出現了下降,即模型存在欠擬合的風險。
通過以上的分析,可以得出結論:如果只增加其中一項指標的權重,算法將會出現過擬合或者欠擬合的風險,從而影響交易模型的勝率和抗風險能力。本文采用1∶1∶1∶1的等權值配比,相對其他模型表現出了更好的分類效果、收益能力以及抗風險能力。
本文提出了一種SOM-T2 FLS的股市預測算法,基于特定的交易策略建立樣本集,采用無監督學習和有監督學習相結合的方式建立預測模型。使用SOM網絡將樣本集分成了兩個子集,子集中樣本的統計特性呈現明顯差異,證明了無監督學習的方法對樣本進行了有效劃分。采用T2 FLS 方法對子集分別進行有監督學習,其中,利用C4.5算法生成決策樹并提取規則庫,并利用遺傳算法對規則庫和模糊隸屬度函數的參數進行了優化,在適應度函數中加入正則項提高了模型的泛化性能。通過歷史數據驗證了本文提出的SOM-T2 FLS 預測模型在牛市行情下能跟隨趨勢獲得超額收益,而在熊市行情下能最大程度地減小損失,展現出了更好的抗風險能力。此外,在本文仿真實驗過程中,遺傳算法的迭代耗費了大量的時間和計算資源,有效降低訓練時間將是未來研究的重點。