孟葉 于忠清 周強(qiáng)
摘 ?要: 股票價(jià)格指數(shù)是衡量整個(gè)股票市場(chǎng)當(dāng)前行情的重要指標(biāo),通常對(duì)指數(shù)內(nèi)所有個(gè)股的漲跌幅進(jìn)行加權(quán)平均得到,因此股票指數(shù)能夠及時(shí)準(zhǔn)確地反映當(dāng)前市場(chǎng)的動(dòng)向走勢(shì)。對(duì)滬深300指數(shù)的歷史行情數(shù)據(jù)進(jìn)行建模,通過(guò)挖掘大盤(pán)指數(shù)的漲跌幅與個(gè)股的漲跌比之間的關(guān)系,利用聚類算法確定對(duì)市場(chǎng)影響較大的指數(shù)漲跌幅集合[G],將其作為研究關(guān)鍵。運(yùn)用集成學(xué)習(xí)的算法思想,選取K?近鄰、梯度提升和自適應(yīng)提升這3個(gè)分類器,通過(guò)改進(jìn)的投票算法聚合成一個(gè)新的分類器模型,對(duì)指數(shù)行情數(shù)據(jù)進(jìn)行學(xué)習(xí)分類,從而對(duì)[G]的出現(xiàn)進(jìn)行預(yù)測(cè),改進(jìn)的投票算法綜合考慮了弱分類器本身的分類效果,分類效果得到提升。實(shí)驗(yàn)結(jié)果表明,與原模型相比,新聚合的模型在一定程度上提升了股指預(yù)測(cè)的準(zhǔn)確度,對(duì)于滬深300股指的預(yù)測(cè)具有指導(dǎo)作用。
關(guān)鍵詞: 股指預(yù)測(cè); 集成學(xué)習(xí); 模型聚合; 機(jī)器學(xué)習(xí); 分類器; 指數(shù)行情
中圖分類號(hào): TN911?34; C32 ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào): 1004?373X(2019)19?0115?04
Abstract: The stock index can reflect the overall development trend of the current stock market. The historical quotations of the ?CSI 300 index were modeled in this experiment. By mining the relationship between the rise and fall ratio of the market index and the rise and fall ratio of individual stock, the clustering algorithm is used to determine the set G, which has a large impact on the market and is taken as the key to study. In the course of experiment, the algorithms of KNN Classifier, Gradient Boosting Classifier and Adaboost Classifier are integrated as a more effective classifier model, and the index market data is classified to predict the appearance of G. The improved voting algorithm comprehensively considers the classifying effect of the weak classifier, so its classifying effect is improved. The experimental results show that, in comparison with the original model, the new polymerized model can improve the accuracy of the stock index forecast to a certain extent, which has a guiding effect on the short?term forecast of CSI 300 index.
Keywords: stock index prediction; integrated learning; model aggregation; machine learning; classifier; index marketing
利用機(jī)器學(xué)習(xí)進(jìn)行投資分析的研究最早起源于19世紀(jì)末的美國(guó),其研究結(jié)果也被證明切實(shí)可行。隨著研究的深入,機(jī)器學(xué)習(xí)在金融領(lǐng)域得到認(rèn)可并被大量應(yīng)用于股市交易領(lǐng)域,主要算法有支持向量機(jī)(SVM)、人工神經(jīng)網(wǎng)絡(luò)(ANN)、隨機(jī)森林(Random Forest)、隱馬爾可夫模型(HMM)等,主要用于對(duì)股票趨勢(shì)進(jìn)行預(yù)測(cè)。文獻(xiàn)[1]提出結(jié)合股票新聞事件的方法對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行準(zhǔn)確預(yù)測(cè),這是對(duì)股票進(jìn)行文本分析的嘗試。文獻(xiàn)[2]將4種機(jī)器學(xué)習(xí)算法應(yīng)用于股指預(yù)測(cè),包括人工神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)、隨機(jī)森林和樸素貝葉斯等算法,對(duì)數(shù)據(jù)預(yù)處理進(jìn)行改進(jìn),結(jié)果表明隨機(jī)森林的性能整體優(yōu)于另外三種模型。國(guó)內(nèi)利用機(jī)器學(xué)習(xí)進(jìn)行投資分析的研究在21世紀(jì)才開(kāi)始興起,相關(guān)研究較國(guó)外少,研究方法大都是根據(jù)已有模型進(jìn)行改進(jìn)并在中國(guó)股市進(jìn)行實(shí)驗(yàn)。文獻(xiàn)[3]將支持向量機(jī)和小波分析相結(jié)合,在數(shù)據(jù)去噪方面具有一定優(yōu)勢(shì)。文獻(xiàn)[4]設(shè)計(jì)了一套將機(jī)器學(xué)習(xí)和技術(shù)指標(biāo)相結(jié)合的量化投資策略,策略的年化收益均跑贏大盤(pán)指數(shù)并且各項(xiàng)風(fēng)險(xiǎn)指標(biāo)均優(yōu)于大盤(pán)指數(shù),是一個(gè)高收益低風(fēng)險(xiǎn)的穩(wěn)健策略。
本文對(duì)指數(shù)的漲跌行為進(jìn)行預(yù)測(cè),但對(duì)漲跌重新定義:當(dāng)大盤(pán)的漲跌幅達(dá)到一定程度時(shí),市場(chǎng)中的個(gè)股漲跌有了明顯的趨向性,個(gè)股有較大概率跟隨大盤(pán)走勢(shì),通常發(fā)生于股指大漲或大跌之時(shí),此時(shí)大盤(pán)指數(shù)的指導(dǎo)作用開(kāi)始顯現(xiàn),若能對(duì)其進(jìn)行預(yù)測(cè),對(duì)于投資者規(guī)避風(fēng)險(xiǎn),投資獲利有一定指導(dǎo)作用。實(shí)驗(yàn)主要分為聚類和預(yù)測(cè)兩個(gè)步驟:
1) 聚類:數(shù)據(jù)樣本為滬深300指數(shù)2015—2018年的歷史漲跌幅數(shù)據(jù)與通過(guò)統(tǒng)計(jì)得到的對(duì)應(yīng)當(dāng)日個(gè)股漲跌比數(shù)據(jù)。通過(guò)聚類算法K?means根據(jù)個(gè)股漲跌比對(duì)大盤(pán)漲跌幅進(jìn)行分類,根據(jù)聚類結(jié)果和股指漲跌幅對(duì)每日股指進(jìn)行標(biāo)記,將原本漲跌的二分類結(jié)果轉(zhuǎn)化成漲跌類別的多分類結(jié)果。
2) 預(yù)測(cè):數(shù)據(jù)樣本為上文已經(jīng)通過(guò)聚類標(biāo)記好漲跌類別的歷史交易數(shù)據(jù),并根據(jù)基本行情數(shù)據(jù)計(jì)算出近50個(gè)股票技術(shù)指標(biāo)輔助預(yù)測(cè);將3個(gè)經(jīng)典的機(jī)器學(xué)習(xí)分類器模型通過(guò)加權(quán)投票的方式聚合成為一個(gè)新的分類器,提升分類效果,預(yù)測(cè)下一個(gè)交易日的股指漲跌類別。
1.1 ?Adaboost算法
Adaboost算法是在文獻(xiàn)[5]中提出的,是boosting方法中最優(yōu)性能的代表算法。首先賦予[n]個(gè)訓(xùn)練樣本相同的權(quán)重,從而訓(xùn)練出一個(gè)基分類器,之后進(jìn)行預(yù)先設(shè)置的[T]次迭代,每次迭代將前一次分類器中分錯(cuò)的樣本加大權(quán)重,使得在下一次迭代中更加關(guān)注這些樣本,從而調(diào)整權(quán)重改善分類器,經(jīng)過(guò)[T]次迭代得到[T]個(gè)基分類器,最終將這些基分類器線性組合得到最終分類器模型。
1.2 投票算法
投票(voting)廣泛用于對(duì)離散型數(shù)據(jù)輸出分類器的集成。集成學(xué)習(xí)中的投票方法[6]主要有:多數(shù)表決、簡(jiǎn)單多數(shù)表決和帶權(quán)重的投票。多數(shù)表決即基分類器的某一預(yù)測(cè)結(jié)果出現(xiàn)的次數(shù)超過(guò)了半數(shù),則該預(yù)測(cè)結(jié)果為最終結(jié)果;若沒(méi)有超過(guò)半數(shù)的結(jié)果,則該集成分類器沒(méi)有結(jié)果輸出。簡(jiǎn)單多數(shù)表決與多數(shù)表決基本類似,即只要哪個(gè)基分類器的預(yù)測(cè)結(jié)果出現(xiàn)次數(shù)最多則為最終結(jié)果,無(wú)需過(guò)半數(shù)。帶權(quán)重的投票就是對(duì)每一個(gè)基分類器的結(jié)果分配一個(gè)權(quán)重,最終結(jié)果為預(yù)測(cè)結(jié)果與權(quán)重的乘積之和的最高者。本次實(shí)驗(yàn)采用帶權(quán)重的投票方式并對(duì)其進(jìn)行改進(jìn),將多數(shù)投票和帶權(quán)重投票結(jié)合,對(duì)弱分類器利用多數(shù)投票產(chǎn)生一列新的預(yù)測(cè)結(jié)果并將其與弱分類器得到的結(jié)果進(jìn)行加權(quán)平均,權(quán)重按照各自的預(yù)測(cè)精度成比例設(shè)置,最終結(jié)果即為預(yù)測(cè)結(jié)果與權(quán)重的乘積之和的最高者。
2.1 ?數(shù)據(jù)獲取
本次實(shí)驗(yàn)所需要的數(shù)據(jù)樣本包括:2015—2018年滬深300成分股每個(gè)交易日的漲跌幅數(shù)據(jù);滬深300指數(shù)2015年4月8日—2018年4月13日的歷史交易行情數(shù)據(jù),共640行數(shù)據(jù),數(shù)據(jù)均通過(guò)Tushare接口進(jìn)行獲取。
此次實(shí)驗(yàn)的股指預(yù)測(cè)是根據(jù)當(dāng)前交易日的行情數(shù)據(jù)對(duì)下一個(gè)交易日的漲跌類別進(jìn)行預(yù)測(cè)。通過(guò)將技術(shù)指標(biāo)數(shù)據(jù)進(jìn)行量化建模,利用分類器進(jìn)行訓(xùn)練:基于已獲取的收盤(pán)價(jià)、成交量等指標(biāo)計(jì)算出如MACD(指數(shù)平滑移動(dòng)平均值)、MASS(梅斯值)、EWMA(指數(shù)加權(quán)移動(dòng)平均值)等47個(gè)技術(shù)指標(biāo)以幫助分類器進(jìn)行訓(xùn)練,提升預(yù)測(cè)精度。
2.2 ?K?means聚類
滬深300指數(shù)的漲跌幅與滬深300成分個(gè)股漲跌比間的關(guān)聯(lián)關(guān)系若只通過(guò)觀察數(shù)據(jù)樣本則較難得到,因此先將數(shù)據(jù)進(jìn)行可視化處理,繪制散點(diǎn)圖如圖1所示。
通過(guò)散點(diǎn)圖可以發(fā)現(xiàn):指數(shù)漲跌幅與個(gè)股漲跌比存在某種線性關(guān)系,但并非簡(jiǎn)單的一元線性關(guān)系;數(shù)據(jù)點(diǎn)的分布呈現(xiàn)一定規(guī)律——散落在漲跌幅(-2%,2%)的數(shù)據(jù)點(diǎn)最為密集;個(gè)股漲跌比最高不超過(guò)10,最低卻趨近于0,指數(shù)跌漲比最高達(dá)到100,遠(yuǎn)遠(yuǎn)大于10,表明指數(shù)大跌時(shí)個(gè)股的普跌性遠(yuǎn)大于指數(shù)大漲時(shí)個(gè)股普漲性,也說(shuō)明我國(guó)股市的抗壓能力較弱,投資者面臨指數(shù)大跌時(shí)的恐慌與非理性情緒會(huì)造成市場(chǎng)的進(jìn)一步惡化。
對(duì)圖中數(shù)據(jù)點(diǎn)進(jìn)行K?Means聚類,可視化展示如圖2所示。
綜合考量輪廓系數(shù)和聚類效果圖得出聚類數(shù)目為4時(shí)聚類效果最好,符合實(shí)驗(yàn)的目的——將對(duì)市場(chǎng)影響較大的漲跌幅都聚為一類(圖中紅色與綠色部分),樣本分布也較為均勻。
2.3 ?分類與融合
本次實(shí)驗(yàn)選用的分類器模型——K?NearestNeighborClassifier,GradientBoostingClassifier,AdaBoost Classifier。由于分類器模型均是處理二分類問(wèn)題的模型,而本次實(shí)驗(yàn)中涉及到了4個(gè)類別,因此采用迭代分類的策略[7]:首先各自訓(xùn)練[C24]=6個(gè)分類器模型,每次選擇2個(gè)類別的數(shù)據(jù)樣本進(jìn)行訓(xùn)練,共進(jìn)行6次分類操作。6個(gè)分類器模型訓(xùn)練完畢后對(duì)同一測(cè)試樣本進(jìn)行預(yù)測(cè),最終預(yù)測(cè)結(jié)果以多數(shù)投票原則確定,即分類器輸出各自分類結(jié)果,輸出最多的即為最終類別,具體分類操作如圖3所示。
由于本次實(shí)驗(yàn)的目的是預(yù)測(cè)出對(duì)市場(chǎng)影響較大的指數(shù)漲跌幅集合即漲跌類別中的1,4類別,因此預(yù)測(cè)結(jié)果的評(píng)判標(biāo)準(zhǔn)為1,4類別的預(yù)測(cè)準(zhǔn)確率。
2.4 ?股指預(yù)測(cè)
本次實(shí)驗(yàn)選用3個(gè)分類器模型:K?NearestNeighborClassifier,GradientBoostingClassifier,AdaBoostClassifier,其中,GradientBoostingClassifier和AdaBoostClassifier是基于boosting算法的分類器,分類效果較為理想,通過(guò)for?loop對(duì)模型中的參數(shù)進(jìn)行調(diào)參,得到預(yù)測(cè)精度最高的參數(shù)。對(duì)分類器都做調(diào)參優(yōu)化,得到的預(yù)測(cè)結(jié)果如表1所示,3個(gè)分類器的準(zhǔn)確度都大于0.5,所以原則上都是有效的分類器,可以作為集成學(xué)習(xí)的第一層分類器。
對(duì)分類器進(jìn)行集成學(xué)習(xí),這里使用VotingClassifier(投票分類器)對(duì)3個(gè)分類器進(jìn)行第一次集成,由于本次實(shí)驗(yàn)只有3個(gè)基分類器,因此不會(huì)產(chǎn)生投票數(shù)相同的情況。直接使用多數(shù)投票方法,使用投票分類器的預(yù)測(cè)結(jié)果為0.775,整個(gè)模型的預(yù)測(cè)精度得到提升。再將多數(shù)投票分類器與前3個(gè)基分類器按預(yù)測(cè)精度分配權(quán)重,并對(duì)4個(gè)分類器的結(jié)果取加權(quán)平均。
2.5 ?結(jié)果分析
最終經(jīng)過(guò)加權(quán)投票分類后的預(yù)測(cè)精度為0.793,與4個(gè)基分類器的預(yù)測(cè)精度結(jié)果如表2所示。
由表2可以看出,集成后的分類器預(yù)測(cè)效果大大提升,相比弱分類器中準(zhǔn)確度最高的AdaboostClassifier提升了4.7%,最終分類準(zhǔn)確度為0.793。對(duì)于股市預(yù)測(cè)而言,一般在0.56以上的預(yù)測(cè)結(jié)果即被認(rèn)為是很好的分類結(jié)果[8],對(duì)于股市投資具有一定指導(dǎo)意義。實(shí)驗(yàn)通過(guò)挖掘大盤(pán)指數(shù)漲跌幅與個(gè)股漲跌比間的聯(lián)系確定了對(duì)市場(chǎng)影響較大的漲跌幅集合,通過(guò)構(gòu)建分類器模型對(duì)指數(shù)大漲和大跌進(jìn)行預(yù)測(cè),對(duì)于投資者而言,利用預(yù)測(cè)結(jié)果進(jìn)行輔助決策,不僅避免投資過(guò)程中非理性因素的干擾,而且對(duì)于降低投資風(fēng)險(xiǎn),提高投資收益都具有一定意義。
本文的創(chuàng)新點(diǎn)在于:
1) 通過(guò)K?means聚類算法挖掘出指數(shù)漲跌幅與個(gè)股漲跌比間的內(nèi)在聯(lián)系,依據(jù)個(gè)股漲跌比將大盤(pán)漲跌幅進(jìn)行聚類,得到多個(gè)漲跌類別,并選擇對(duì)市場(chǎng)影響較大的漲跌類別作為預(yù)測(cè)重點(diǎn)。
2) 將集成學(xué)習(xí)的算法思想運(yùn)用于股指預(yù)測(cè)當(dāng)中,對(duì)股指預(yù)測(cè)不只局限于漲跌這兩種情況——將漲跌行為定義為多類別問(wèn)題,對(duì)股指“大漲”和“大跌”進(jìn)行預(yù)測(cè),與單純漲跌預(yù)測(cè)相比,預(yù)測(cè)精度得到提升。
3) 通過(guò)將傳統(tǒng)的股票技術(shù)分析進(jìn)行程序量化,基于原數(shù)據(jù)基本行情指標(biāo)計(jì)算出近50個(gè)技術(shù)指標(biāo)輔助決策,使得學(xué)習(xí)器有更佳的學(xué)習(xí)性能,預(yù)測(cè)精度得到提升。
實(shí)驗(yàn)結(jié)果較為理想,與文獻(xiàn)[9]在利用支持向量機(jī)對(duì)滬深300股指的漲跌進(jìn)行預(yù)測(cè)的實(shí)驗(yàn)結(jié)果0.595相比,有了較高的提升,基于集成學(xué)習(xí)預(yù)測(cè)股市行情總體而言是有效的。由于中國(guó)股市本身就是一個(gè)弱式有效市場(chǎng),政策性、突發(fā)性的事件會(huì)對(duì)股市行情產(chǎn)生很大影響,因此預(yù)測(cè)模型還存在一定的局限性,下一步的工作就是完善模型,提升現(xiàn)有效果。
參考文獻(xiàn)
[1] YOO P D, KIM M H, JAN T. Machine learning techniques and use of event information for stock market prediction: a survey and evaluation [C]// International Conference on Computational Intelligence for Modelling, Control and Automation and International Conference on Intelligent Agents, Web Technologies and Internet Commerce Vol. IEEE Computer Society: IEEE, 2005: 835?841.
[2] PATEL J, SHAH S, THAKKAR P, et al. Predicting stock and stock price index movement using trend deterministic data preparation and machine learning techniques [J]. Expert systems with applications, 2015, 42(1): 259?268.
[3] 李元誠(chéng).股市預(yù)測(cè)中的小波支持向量機(jī)方法研究[J].計(jì)算機(jī)科學(xué),2003,30(10):215?217.
LI Yuancheng. Research on wavelet support vector machine in stock market prediction [J]. Computer science, 2003, 30(10): 215?217.
[4] 李斌,林彥,唐聞軒.ML?TEA:一套基于機(jī)器學(xué)習(xí)和技術(shù)分析的量化投資算法[J].系統(tǒng)工程理論與實(shí)踐,2017,37(5):1089?1100.
LI Bin, LIN Yan, TANG Wenxuan. ML?TEA: a set of quantitative investment algorithms based on machine learning and technical analysis [J]. Systems engineering—theory & practice, 2017, 37(5): 1089?1100.
[5] FREUND Y, SCHAPIRE R E. A decision?theoretic generalization of ?on?line learning and an application to boosting [J]. Journal of computer and system sciences, 1997, 55(1): 119?139.
[6] 周星,丁立新,萬(wàn)潤(rùn)澤,等.分類器集成算法研究[J].武漢大學(xué)學(xué)報(bào)(理學(xué)版),2015,61(6):503?508.
ZHOU Xing, DING Lixin, WAN Runze, et al. Research on classifier ensemble algorithms [J]. Journal of Wuhan University (Natural science edition), 2015, 61(6): 503?508.
[7] 楊新武,馬壯,袁順.基于弱分類器調(diào)整的多分類Adaboost算法[J].電子與信息學(xué)報(bào),2016,38(2):373?380.
YANG Xinwu, MA Zhuang, YUAN Shun. Multi?class adaboost algorithm based on the adjusted weak classifier [J]. Journal of electronics & information technology, 2016, 38(2): 373?380.
[8] GEORGE Tsibouris, MATTHEW Zeidenberg. Testing the efficient markets hypothesis with gradient descent algorithms [M]. [S. l.]: Johnwiley & Sons, 1995.
[9] 任東海.基于支持向量機(jī)的股指變動(dòng)方向預(yù)測(cè)[D].濟(jì)南:山東大學(xué),2016.
REN Donghai. Predicting direction of stock price index movement based on support vector machines [D]. Jinan: Shandong University, 2016.