錢琦淼,張 朵,王映艨,劉 睿,蔡飛君
(無錫太湖學(xué)院 會計學(xué)院,江蘇 無錫 214064)
近年來,機器學(xué)習(xí)在股票價格預(yù)測的應(yīng)用中越來越廣泛,量化投資的形式也迅速占據(jù)著金融市場。徐浩然等人(2020)針對股票預(yù)測研究的CNN和LSTM兩種深度學(xué)習(xí)算法做了優(yōu)缺點的闡述分析。CNN的特征選擇具有更好的表現(xiàn),而LSTM則更加關(guān)注時間序列的相關(guān)性,并且提出將兩種模型融合,各自發(fā)揮優(yōu)勢,得到最優(yōu)的預(yù)測效果。由于股票的復(fù)雜以及不確定性,所以到現(xiàn)在為止國內(nèi)針對單只股票的走勢預(yù)測研究較少,大多基于海外市場,而另一部分集中于對算法進行優(yōu)化。文章學(xué)習(xí)前人對個股的研究思路,嘗試并選用隨機森林和GBDT兩種機器學(xué)習(xí)的算法對寧德時代的收益率進行預(yù)測,通過不斷的對參數(shù)調(diào)整,使得模型預(yù)測效果達到最優(yōu)。探索兩種機器學(xué)習(xí)的算法在預(yù)測未來股票的收益情況上的優(yōu)劣比較和優(yōu)化,這是文章研究的目的。
機器學(xué)習(xí)現(xiàn)有的主要研究是在對數(shù)據(jù)的初步了解和學(xué)習(xí)目的分析的基礎(chǔ)上,選擇合適的學(xué)習(xí)算法進行訓(xùn)練,最后利用訓(xùn)練后的模型對數(shù)據(jù)進行分析和預(yù)測。文章中運用到的機器學(xué)習(xí)算法有隨機森林和GBDT。
何裕(2014)通過決策樹、Logistic回歸模型、神經(jīng)網(wǎng)絡(luò)模型挖掘研究公司財務(wù)比率指標的變化和股價變化趨勢的內(nèi)在聯(lián)系,最后組合模型構(gòu)建,證實了技術(shù)對于股價預(yù)測的可行性與合理性。隨機森林是對決策樹算法的一種改進,將多個決策樹組合,每棵樹都通過獨立提取的樣本建立,采用自上而下的遞歸方法,對未知數(shù)據(jù)進行分類,按照決策樹上生成時所采用的分割性逐層往下,直到一個葉子節(jié)點,到葉子節(jié)點處的熵值為零。在股市的應(yīng)用中,首先需要找到合適的分類器來闡述各因子與下期收益的關(guān)系,要利用歷史數(shù)據(jù),訓(xùn)練分類器。獲得參數(shù)后,再代入各股因子數(shù)據(jù)并分類,從而選取優(yōu)秀股。
胡謙(2016)結(jié)合機器學(xué)習(xí)、技術(shù)分析研究量化選股策略,首次將GBDT和GB Rank用于量化選股領(lǐng)域,自動學(xué)習(xí)出能對股票未來表現(xiàn)進行排序的模型,證明使用GBDT算法的兩個策略有較強盈利性。GBDT(Gradient Boosting + Dicision Tree)算法是Boosting迭代融合算法,在傳統(tǒng)機器學(xué)習(xí)算法中GBDT是最適合真實分布擬合的幾種算法之一。使用當前模型中損失函數(shù)負梯度方向的值作為殘差的近似值,擬合CART回歸樹。GBDT將累積所有回歸樹的結(jié)果,并不斷減小訓(xùn)練過程中產(chǎn)生的殘差,以實現(xiàn)將數(shù)據(jù)分類或回歸的算法。
文章在建模分析部分采用 Python語言,本次實驗選取的數(shù)據(jù)分析環(huán)境是Anaconda,采用Web應(yīng)用程序Jupyter Notebook進行建模。
由于Tushare返回的絕大部分數(shù)據(jù)格式都是pandas DataFrame類型,非常便于數(shù)據(jù)分析和可視化,減輕工作量,所以本次實驗選取的數(shù)據(jù)來源于Tushare。
寧德時代(300750.SZ)作為新能源板塊中表現(xiàn)比較突出的股票,文章截取了其2016年1月1日到2021年2月4日的交易數(shù)據(jù),分別是交易日期、開盤價、最高價、最低價、收盤價、昨收價、漲跌額、漲跌幅、成交量和成交額,一共649期。
圖1 部分數(shù)據(jù)集描述
文章還對數(shù)據(jù)寧德時代的收盤價計算了100天的移動平均值,并取每個滑窗的移動平均值。從圖2中,可以看出2019年11月開始,寧德時代股票價格呈現(xiàn)明顯上升趨勢。
圖2 移動平滑價格線
由于非平穩(wěn)型的趨勢線,實驗決定預(yù)測寧德時代的收益情況。由于時間序列存在滯后性,于是在實驗中設(shè)計了一些股票的滯后項——return-1,return-2,return-3。
文章收集數(shù)據(jù)的周期為2016年1月1日到2021年2月4日,選擇了開盤價、最高價、最低價等11個影響收益率的因子。文章將2016年1月1日到2020年10月1日之前的數(shù)據(jù)作為訓(xùn)練集,一共561期數(shù)據(jù)。2020年10月1日到2021年2月4日之間的數(shù)據(jù)作為測試集,一共83期數(shù)據(jù)。
實驗過程中,文章首先引入決策樹,在隨機狀態(tài)為10,最大迭代次數(shù)為100,葉子節(jié)點最少樣本數(shù)為70的條件下建立模型,在擬合數(shù)據(jù)后進行預(yù)測,訓(xùn)練集的平均絕對誤差是0.00748,測試集則是0.00752。從隨機森林這一模型中,它的隨機性難以對模型進行解釋,因此猜測模型容易在噪聲過多的分類和回歸問題中過擬合。為了驗證猜想,實驗嘗試通過調(diào)參來提高模型的泛化能力。
在整個隨機森林調(diào)參過程中,要選擇一個適中的最大迭代次數(shù),故得到了實驗中最佳的弱學(xué)習(xí)器迭代次數(shù)為5。在此基礎(chǔ)上,得到?jīng)Q策樹最大深度范圍為5,內(nèi)部節(jié)點再劃分所需最小樣本數(shù)為100。由于內(nèi)部節(jié)點再劃分所需最小樣本數(shù)還和決策樹其他的參數(shù)存在關(guān)聯(lián),實驗還需要對內(nèi)部節(jié)點再劃分所需最小樣本數(shù)和葉子節(jié)點最少樣本數(shù)一起調(diào)參,得到葉子節(jié)點最少樣本數(shù)30,內(nèi)部節(jié)點再劃分所需最小樣本數(shù)50。
圖3 部分數(shù)據(jù)集描述
基于上述結(jié)果,再對最大特征數(shù)做調(diào)參,搜索得到最大特征數(shù)為5。經(jīng)過一系列調(diào)參,用搜索到的最佳參數(shù),得到最終的模型擬合訓(xùn)練集的平均絕對誤差值為0.005543,測試集是0.00920,結(jié)果發(fā)現(xiàn)無顯著變化。
GBDT和傳統(tǒng)的Adaboost有很大的不同,傳統(tǒng)的Adaboost會使用上一次迭代弱學(xué)習(xí)器的錯誤率來更新訓(xùn)練集的權(quán)重,使迭代繼續(xù)進行,而GBDT算法的弱學(xué)習(xí)器(基模型)是CART,故擬合出一棵CART回歸樹,對實驗過程中構(gòu)成一個強學(xué)習(xí)器來說至關(guān)重要。在整體的迭代思維上,GBDT的迭代通常使用前向分布算法,損失函數(shù)的負梯度在當前模型的值作為回歸提升樹殘差的近似值,在持續(xù)擬合的過程中,擬合值和目標值之間的殘差會越來越小,每一棵樹的預(yù)測值加起來就是模型最終的預(yù)測結(jié)果。所以在本次實驗中一共建立了學(xué)習(xí)器644個,步長為0.1。最大的弱學(xué)習(xí)器的個數(shù)為默認值100。
最終得到訓(xùn)練集的絕對誤差為0.000153,測試集為0.0137。預(yù)測收益率的標準差為0.03217,絕對誤差值過小,模型過擬合。筆者認為應(yīng)當通過調(diào)參來優(yōu)化模型的泛化能力。為了驗證猜想,筆者開始進行調(diào)參。首先調(diào)參需要選擇一個較小的步長來網(wǎng)格搜索最好的迭代次數(shù),得到最佳弱學(xué)習(xí)器的個數(shù)為80,樹的最大深度為9,最小樣本劃分樹為5,葉子節(jié)點最少樣本數(shù)為10,最大特征數(shù)目為5,而隨機狀態(tài)為10。修改成最優(yōu)參數(shù)后,得到測試集的絕對誤差為0.004412,訓(xùn)練集為0.001657。
從本次實驗來看,能觀察到隨機森林這一模型訓(xùn)練速度更快,因為特征子集是隨機選取的,就不用做特征選擇。由于待選特征也是隨機選取,所以對特征缺失不敏感,調(diào)參后發(fā)現(xiàn)結(jié)果無顯著變化甚至比原來誤差更大,猜測存在過擬合現(xiàn)象,從而發(fā)現(xiàn)了隨機森林的缺點,容易在噪聲過多的分類和回歸問題中過擬合;與單個決策樹相比,它的隨機性讓模型難以進行解釋。
相較于隨機森林模型,GBDT具有以下兩個優(yōu)點:其一,適用面廣,離散的或是連續(xù)的數(shù)據(jù)都可以處理;其二,GBDT模型的調(diào)參過程比較簡單,在相對小的調(diào)參過程下,GBDT的預(yù)測結(jié)果更為準確。GBDT就最終的輸出結(jié)果而言,提升樹即是整個迭代過程生成的回歸樹的累加或加權(quán)累加,是基于權(quán)值的弱分類器集成,通過減少模型偏差提高性能。此外該模型對異常值也比隨機森林更敏感。
因此,從本次實驗中發(fā)現(xiàn)GBDT精度略高于隨機森林模型,且在一些調(diào)整后,GBDT模型獲得了較好的預(yù)測效果。
圖4 訓(xùn)練集比較
圖5 測試集比較