黃敏健 劉鈺萱
摘 ? 要:隨著我國(guó)經(jīng)濟(jì)制度和保障體制的不斷完善,越來(lái)越多的人投入到股票交易市場(chǎng)中,而在錯(cuò)綜復(fù)雜的股票市場(chǎng)中,根據(jù)股價(jià)趨勢(shì)選取最優(yōu)股并采取適當(dāng)?shù)慕灰撞呗?,是投資者和相關(guān)學(xué)者的討論中亟待解決的問(wèn)題,如何有效地對(duì)股票趨勢(shì)進(jìn)行預(yù)測(cè)成為研究領(lǐng)域的一個(gè)熱門(mén)。根據(jù)上市公司的股票數(shù)據(jù)和變化情況,運(yùn)用4種機(jī)器學(xué)習(xí)模型對(duì)股價(jià)進(jìn)行預(yù)測(cè),實(shí)驗(yàn)結(jié)果表明,各類(lèi)模型可以提高預(yù)測(cè)的準(zhǔn)確率,相較于K近鄰、邏輯回歸模型以及支持向量機(jī)模型,使用Tensorflow建立的模型各類(lèi)評(píng)價(jià)指標(biāo)上都表現(xiàn)出最好的預(yù)測(cè)結(jié)果。不同模型在結(jié)合金融投資特征適當(dāng)調(diào)整之后,預(yù)測(cè)準(zhǔn)確率有一定的提升。根據(jù)以上數(shù)據(jù)和分析,評(píng)價(jià)各種機(jī)器學(xué)習(xí)算法模型在股票趨勢(shì)預(yù)測(cè)方面的效用。
關(guān)鍵詞:機(jī)器學(xué)習(xí);股票預(yù)測(cè);python
隨著我國(guó)經(jīng)濟(jì)制度和保障體制的不斷完善,越來(lái)越多的人投入到股票交易的市場(chǎng)中,而在錯(cuò)綜復(fù)雜的股票市場(chǎng)中,根據(jù)股價(jià)趨勢(shì)選取最優(yōu)股并采取適當(dāng)?shù)慕灰撞呗裕峭顿Y者和相關(guān)學(xué)者的討論中亟待解決的問(wèn)題。
盡管股票市場(chǎng)是一個(gè)非線性、非平穩(wěn)的系統(tǒng),但是相對(duì)穩(wěn)定條件下的股票市場(chǎng)依然存在一定的規(guī)律性。近年來(lái),隨著數(shù)理統(tǒng)計(jì)、概率論及神經(jīng)科學(xué)的發(fā)展融合,機(jī)器學(xué)習(xí)理論的日益完善,各類(lèi)機(jī)器學(xué)習(xí)的模型在股票預(yù)測(cè)領(lǐng)域也得到了廣泛的應(yīng)用。越來(lái)越多的人通過(guò)機(jī)器學(xué)習(xí)的方法實(shí)現(xiàn)對(duì)股票趨勢(shì)的預(yù)測(cè)。本文在sklearn框架下,分析清洗過(guò)后的股票歷史數(shù)據(jù),通過(guò)訓(xùn)練來(lái)得到可以預(yù)測(cè)股價(jià)的模型,在不同評(píng)測(cè)指標(biāo)下將預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,并針對(duì)模型的不足對(duì)模型結(jié)構(gòu)和參數(shù)進(jìn)行改良,將改進(jìn)前后的數(shù)據(jù)進(jìn)行對(duì)照并作出分析。
1 ? ?相關(guān)技術(shù)和理論知識(shí)
1.1 ?機(jī)器學(xué)習(xí)的基本方法
機(jī)器學(xué)習(xí)通過(guò)研究計(jì)算機(jī)怎么模擬或?qū)崿F(xiàn)人類(lèi)的學(xué)習(xí)行為,以獲取新知識(shí)和技能,重新組織已有知識(shí)結(jié)構(gòu)使不斷改善自身性能。針對(duì)經(jīng)驗(yàn)E(Experience)和一系列任務(wù)T(Tasks)和一定表現(xiàn)的衡量P,如圖1所示,如果隨著經(jīng)驗(yàn)E的積累,針對(duì)定義好的任務(wù)T可以提高表現(xiàn)P,說(shuō)明計(jì)算機(jī)在過(guò)程中逐漸具備學(xué)習(xí)能力[1]。
1.2 ?基于Python預(yù)測(cè)股票價(jià)格的模型
1.2.1 ?K近鄰
K近鄰(K-Nearest Neighbor,K-NN)通過(guò)計(jì)算測(cè)試對(duì)象和所有訓(xùn)練對(duì)象的距離,如式(1)所示,找出最近距離的k個(gè)對(duì)象中出現(xiàn)頻率最高的對(duì)象,通過(guò)其所屬類(lèi)別確定測(cè)試對(duì)象的類(lèi)別。
1.2.2 ?邏輯回歸和支持向量機(jī)
邏輯回歸(Logistics Regression,LP)模型為了線性擬合并且約束目標(biāo)值域,使用sigmoid函數(shù)作為邏輯回歸單元來(lái)進(jìn)行約束。數(shù)學(xué)模型如式(2):
不同于使用均方誤差,為了達(dá)到盡可能使得曲線光滑以及盡可能使類(lèi)似于一元二次函數(shù)的目的,采用如式(3)代價(jià)函數(shù)進(jìn)行二分類(lèi),尋找全局最優(yōu)點(diǎn):
即轉(zhuǎn)化為優(yōu)化交叉熵函數(shù),最小化損失的求解過(guò)程,如式(4)所示;支持向量機(jī)就是將向量進(jìn)行二分類(lèi)的算法。核心思想是使分開(kāi)的兩個(gè)類(lèi)別有最大間隔,使得分割具有更高的可信度。同為二元分類(lèi)器,SVM將股票指標(biāo)這樣線性不可分的數(shù)據(jù)投影至完美線性可分或基本線性可分的空間,從而將股價(jià)價(jià)格漲跌問(wèn)題轉(zhuǎn)化為漲跌分類(lèi)問(wèn)題。損失函數(shù)則構(gòu)合頁(yè)函數(shù)加上正則化項(xiàng)如式(5):
1.2.3 ?TensorFlow與Keras
對(duì)神經(jīng)網(wǎng)絡(luò)的建立,主要使用多層感知機(jī)(Multi-Layer Perceptron,MLP),包括輸入輸出層和隱層,其中,股票價(jià)格將被輸入到模型中,并且會(huì)使用特定權(quán)重值通過(guò)隱藏層向前送入以產(chǎn)生輸出。通過(guò)損失函數(shù)(Loss Function)來(lái)進(jìn)行評(píng)價(jià)和優(yōu)化,如式(6)所示:
2 ? ?評(píng)價(jià)指標(biāo)
2.1 ?部分回歸指標(biāo)
回歸類(lèi)指標(biāo)中,y為預(yù)測(cè)的真實(shí)值,為預(yù)測(cè)值,在模擬的過(guò)程中,它們?cè)叫∧敲茨P皖A(yù)測(cè)的效果就越好,均方誤差(MSE)、均誤差(RMSE)和平均絕對(duì)誤差(MAE)如式(7)所示:
2.2 ?部分分類(lèi)評(píng)價(jià)指標(biāo)
查準(zhǔn)率(精準(zhǔn)率):Precision = TP÷(TP+FP)。
查全率(召回率):Recall = TP÷(TP+FN)。
正確率(準(zhǔn)確率):Accuracy=(TP+TN)÷(TP+FP+ TN+FN)。
其中,TP—真正例,實(shí)際為正預(yù)測(cè)為正;FP—假正例,實(shí)際為負(fù)但預(yù)測(cè)為正;FN—假反例,實(shí)際為正但預(yù)測(cè)為負(fù);TN—真反例,實(shí)負(fù)預(yù)測(cè)。
3 ? ?股票預(yù)測(cè)模型的構(gòu)建
通過(guò)網(wǎng)絡(luò)爬蟲(chóng)獲取20只國(guó)內(nèi)上市公司股票的交易指標(biāo)和S&P 500 Index,也就是標(biāo)準(zhǔn)普爾500指數(shù),記錄了美國(guó)500家上市公司的股票指數(shù),其成分股由工業(yè)、運(yùn)輸業(yè)、公用事業(yè)和金融業(yè)股票組成。采樣面廣、代表性強(qiáng)。數(shù)據(jù)預(yù)處理環(huán)節(jié)如圖2所示。
運(yùn)用理論部分監(jiān)督學(xué)習(xí)模型策略的知識(shí)對(duì)將對(duì)多支股票的交易特征分別進(jìn)行建模,預(yù)測(cè)漲跌趨勢(shì)。對(duì)于神經(jīng)網(wǎng)絡(luò)部分分別采用同步和異步預(yù)測(cè),同樣對(duì)價(jià)格趨勢(shì)進(jìn)行預(yù)測(cè)[2]。
4 ? ?預(yù)測(cè)模型的實(shí)現(xiàn)
4.1 ?傳統(tǒng)機(jī)器學(xué)習(xí)模型的實(shí)現(xiàn)
4.2 ?TensorFlow的實(shí)現(xiàn)
圖5為同步預(yù)測(cè),隨著訓(xùn)練次數(shù)增加,同步擬合的擬合率得分接近于0.98,各類(lèi)誤差指標(biāo)水平同樣較低,可以精準(zhǔn)地預(yù)測(cè)大盤(pán)價(jià)。盡管在精確度上表現(xiàn)良好,但是由于預(yù)測(cè)形式特殊,應(yīng)用于實(shí)際有一定困難。
使調(diào)用歷史若干個(gè)時(shí)刻的股票指數(shù),通過(guò)神經(jīng)網(wǎng)絡(luò)循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)實(shí)際指數(shù)預(yù)測(cè)大盤(pán)指數(shù),結(jié)果如圖6所示。
結(jié)果擬合程度較高,均方誤差為(0.10±0.05),測(cè)試集上為0.001 5。由于采用的是歷史價(jià)格,此方法更適合于用于實(shí)際預(yù)測(cè)。
5 ? ?未來(lái)發(fā)展方向
對(duì)股票交易的不同預(yù)測(cè)需求場(chǎng)景下對(duì)應(yīng)的指標(biāo)和方法選取需要有準(zhǔn)確的認(rèn)識(shí)?;貧w評(píng)價(jià)指標(biāo)和分類(lèi)評(píng)價(jià)指標(biāo)呈現(xiàn)出較大的差異性,因此,評(píng)價(jià)指標(biāo)和相應(yīng)機(jī)器學(xué)習(xí)方法的選取必須結(jié)合對(duì)股票預(yù)測(cè)的具體需求。如果策略更加偏向于準(zhǔn)確價(jià)格范圍預(yù)測(cè),由前文所述使用回歸評(píng)價(jià)指標(biāo),精度較高的可以有效地基于此比較誤差。此類(lèi)指標(biāo)的誤差均值對(duì)被評(píng)估數(shù)據(jù)的異常點(diǎn)(outliers)較敏感,如果交易指標(biāo)中有一些異常值出現(xiàn),會(huì)對(duì)以上指標(biāo)的值有較大影響,同時(shí)也對(duì)數(shù)據(jù)的清洗提出了更嚴(yán)格的要求。對(duì)于分類(lèi)評(píng)價(jià)指標(biāo),則更看重業(yè)務(wù)邏輯。對(duì)于傾向性問(wèn)題,如帶有感情色彩的策略制定,精度評(píng)價(jià)無(wú)法勝任;對(duì)于盈利虧損的接受程度,調(diào)整傾向決定了調(diào)整查全率、查準(zhǔn)率還是使用兼顧兩者的F1-Score的標(biāo)準(zhǔn),均能較好地適合期望穩(wěn)定收益的場(chǎng)景。AUC由于和概率的相對(duì)大?。ǜ怕逝判颍┯嘘P(guān),與絕對(duì)值無(wú)關(guān),不適合準(zhǔn)確價(jià)格的預(yù)測(cè)。因此更加適合非均衡(漲跌不均勻分布)時(shí)預(yù)測(cè),或基于趨勢(shì)選取交易策略的場(chǎng)景。
6 ? ?結(jié)語(yǔ)
從本文的相關(guān)研究發(fā)現(xiàn),機(jī)器學(xué)習(xí)算法可以通過(guò)一定范圍的指標(biāo)評(píng)估從而輔助交易策略。通過(guò)結(jié)合具體交易場(chǎng)景選取適當(dāng)?shù)膮?shù)和評(píng)價(jià)指標(biāo),則可以實(shí)現(xiàn)從價(jià)格趨勢(shì)的預(yù)測(cè)到實(shí)際收益提升的轉(zhuǎn)換。然而在實(shí)際環(huán)境中,模型預(yù)測(cè)的準(zhǔn)確率具有數(shù)據(jù)依賴(lài)性,無(wú)法訓(xùn)練一個(gè)模型適用于所有場(chǎng)景。一方面考慮到本文所取的股票樣本仍然不夠全面,且現(xiàn)實(shí)中的股票市場(chǎng)還有復(fù)雜的政治、經(jīng)濟(jì)因素會(huì)造成無(wú)法預(yù)估的影響,要得出具有泛化能力的模型,還需要對(duì)股票所屬產(chǎn)業(yè)和具體交易場(chǎng)景作進(jìn)一步的分類(lèi)和深入的調(diào)查,更加全面的數(shù)據(jù)分析和模型調(diào)整,將機(jī)器學(xué)習(xí)算法的思想和現(xiàn)實(shí)應(yīng)用更好地結(jié)合。
[參考文獻(xiàn)]
[1]傅航聰,張 ?偉.機(jī)器學(xué)習(xí)算法在股票走勢(shì)預(yù)測(cè)中的應(yīng)用[J].軟件導(dǎo)刊,2017,16(10):31-34,46.
[2]文 ?成.基于機(jī)器學(xué)習(xí)方法的股票數(shù)據(jù)研究[D].重慶:重慶理工大學(xué),2011.