金融時(shí)間序列預(yù)測(cè)方法合集:CNN、LSTM、數(shù)學(xué)建??蒲羞m用

金融時(shí)間序列預(yù)測(cè)方法合集:CNN、LSTM、隨機(jī)森林、ARMA預(yù)測(cè)股票價(jià)格(適用于時(shí)序問(wèn)題)、相似度計(jì)算、各類評(píng)判指標(biāo)繪圖(數(shù)學(xué)建??蒲羞m用)
1.使用CNN模型預(yù)測(cè)未來(lái)一天的股價(jià)漲跌-CNN(卷積神經(jīng)網(wǎng)絡(luò))
使用CNN模型預(yù)測(cè)未來(lái)一天的股價(jià)漲跌
數(shù)據(jù)介紹
open 開(kāi)盤(pán)價(jià);close 收盤(pán)價(jià);high 最高價(jià)
low 最低價(jià);volume 交易量;label 漲/跌
訓(xùn)練規(guī)模
特征數(shù)量×5;天數(shù)×5 = 5 × 5
卷積過(guò)程

最大池化過(guò)程

代碼流程
獲取股票數(shù)據(jù)
數(shù)據(jù)歸一化
數(shù)據(jù)預(yù)處理(劃分成5×5)
數(shù)據(jù)集分割(訓(xùn)練集和測(cè)試集)
定義卷積神經(jīng)網(wǎng)絡(luò)
評(píng)估預(yù)測(cè)模型
模型架構(gòu)

碼源鏈接見(jiàn)文末跳轉(zhuǎn)
文末鏈接跳轉(zhuǎn)
2.基于LSTM預(yù)測(cè)股票價(jià)格(長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò))
基于LSTM預(yù)測(cè)股票價(jià)格(簡(jiǎn)易版)
數(shù)據(jù)集:
滬深300數(shù)據(jù)
數(shù)據(jù)特征:
只選用原始數(shù)據(jù)特征(開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、最高價(jià)、最低價(jià)、交易量)
時(shí)間窗口:
15天
代碼流程:
讀取數(shù)據(jù)->生成標(biāo)簽(下一天收盤(pán)價(jià))->分割數(shù)據(jù)集->LSTM模型預(yù)測(cè)->可視化->預(yù)測(cè)結(jié)果評(píng)估
LSTM網(wǎng)絡(luò)結(jié)構(gòu):

函數(shù)介紹:
1、generate_label 生成標(biāo)簽(下一天收盤(pán)價(jià))
2、generatemodeldata 分割數(shù)據(jù)集
3、evaluate 結(jié)果評(píng)估
4、lstm_model LSTM預(yù)測(cè)模型
5、main 主函數(shù)(含可視化)
可視化輸出:
訓(xùn)練集測(cè)試集擬合效果:


評(píng)估指標(biāo):
1、RMSE:55.93668241713906
2、MAE:44.51361108752264
3、MAPE:1.3418267677320612
4、AMAPE:1.3420384401412058
3.基于隨機(jī)森林預(yù)測(cè)股票未來(lái)第d+k天相比于第d天的漲/跌Random-Forest(隨機(jī)森林)
基于隨機(jī)森林預(yù)測(cè)股票未來(lái)第d+k天相比于第d天的漲/跌(簡(jiǎn)易版)
參考論文:Predicting the direction of stock market prices using random forest
論文流程:


算法流程:
獲取金融數(shù)據(jù)->指數(shù)平滑->計(jì)算技術(shù)指標(biāo)->數(shù)據(jù)歸一化->隨機(jī)森林模型預(yù)測(cè)
函數(shù)介紹:
1、getstockdata 通過(guò)Tushare獲取原始股票數(shù)據(jù)
2、exponentialsmoothing、emstock_data 股票指數(shù)平滑處理
3、calctechnicalindicators 計(jì)算常用的技術(shù)指標(biāo)
4、normalization 數(shù)據(jù)歸一化處理并分割數(shù)據(jù)集
5、randomforestmodel 隨機(jī)森林模型并返回準(zhǔn)確率和特征排名
決策樹(shù):
(1)ID3: 基于信息增益大的數(shù)據(jù)特征劃分層次
(2)C4.5: 基于信息增益比=信息增益/特征熵劃分層次
(3)CART: 基于Gini劃分層次
基于Bagging集成學(xué)習(xí)算法,有多棵決策樹(shù)組成(通常是CART決策樹(shù)),其主要特性有:
(1)樣本和特征隨機(jī)采樣
(2)適用于數(shù)據(jù)維度大的數(shù)據(jù)集
(3)對(duì)異常樣本點(diǎn)不敏感
(4)可以并行訓(xùn)練(決策樹(shù)間獨(dú)立同分布)
算法輸出:
注意:算法僅用于參考學(xué)習(xí)交流,由于是研一時(shí)期獨(dú)立編寫(xiě)(以后可能進(jìn)一步完善),所公開(kāi)的代碼并非足夠完善和嚴(yán)謹(jǐn),如以下問(wèn)題:
模型涉及參數(shù)未尋優(yōu)(可考慮網(wǎng)格搜索、隨機(jī)搜索、貝葉斯優(yōu)化)
指數(shù)平滑因子
隨機(jī)森林模型樹(shù)數(shù)量、決策樹(shù)深度、葉子節(jié)點(diǎn)最小樣本數(shù)等
未來(lái)第k天的選擇
歸一化方法
隨機(jī)森林模型其實(shí)本身不需要數(shù)據(jù)歸一化(如算法對(duì)數(shù)據(jù)集進(jìn)行歸一化也需要考慮對(duì)訓(xùn)練集、驗(yàn)證集、測(cè)試集獨(dú)立歸一化)
股票預(yù)測(cè)考慮的數(shù)據(jù)特征:
原始數(shù)據(jù)特征(open/close/high/low)
技術(shù)指標(biāo)(Technical indicator)
企業(yè)公開(kāi)公告信息
企業(yè)未來(lái)規(guī)劃
企業(yè)年度報(bào)表
社會(huì)輿論
股民情緒
國(guó)家政策
股票間影響等
4.模型輸出結(jié)果

5.隨機(jī)森林參數(shù)優(yōu)化參考表

4.基于ARMA預(yù)測(cè)股票價(jià)格-ARMA(自回歸滑動(dòng)平均模型)
基于ARMA預(yù)測(cè)股票價(jià)格(5分鐘數(shù)據(jù))
1.檢測(cè)數(shù)據(jù)平穩(wěn)化
2.差分/對(duì)數(shù)等數(shù)據(jù)處理
3.使用ARMA模型預(yù)測(cè)
備注:部分代碼參考網(wǎng)絡(luò)資源
5.金融時(shí)間序列相似度計(jì)算
5.1.皮爾遜相關(guān)系數(shù)( pearsoncorrelationcoefficient)
1.1 由于不同股票價(jià)格范圍差距過(guò)大,在進(jìn)行股票時(shí)間序列相似度匹配過(guò)程中通??紤]對(duì)數(shù)差處理,其公式如下所示:

1.2經(jīng)過(guò)對(duì)數(shù)差處理后的金融時(shí)間序列可表示:

1.3皮爾遜相關(guān)系數(shù)計(jì)算公式:

1.4結(jié)果
1.4.1相關(guān)性較強(qiáng)

1.4.2相關(guān)性較弱

5.2.動(dòng)態(tài)時(shí)間規(guī)整(dynamictimewrapping)
2.1 計(jì)算兩個(gè)金融時(shí)間序列的時(shí)間點(diǎn)對(duì)應(yīng)數(shù)據(jù)的歐氏距離

2.2 更新時(shí)間點(diǎn)對(duì)應(yīng)數(shù)據(jù)的距離

2.3 動(dòng)態(tài)時(shí)間規(guī)整距離

2.4 偽代碼

2.5 動(dòng)態(tài)時(shí)間規(guī)整距離輸出圖舉例

2.6 動(dòng)態(tài)時(shí)間規(guī)整最優(yōu)匹配對(duì)齊
2.7結(jié)果
2.7.1動(dòng)態(tài)時(shí)間規(guī)整距離較短
2.7.1動(dòng)態(tài)時(shí)間規(guī)整距離較長(zhǎng)
5.3.余弦相似度(cosine similarity)
6.金融時(shí)間序列(其他)
6.1.計(jì)算特征方差(calc_variance.py)
open 161211.21669504658close 161415.73886306392high 166077.6958545937low 156622.3645795179......
6.2.繪制混淆矩陣(confuse_matrix.py)
6.3.特征間相關(guān)性(corr.py)
6.4.繪制預(yù)測(cè)模型性能——柱狀圖(result_bar.py)
6.5.繪制預(yù)測(cè)模型性能——折線圖(result_plot.py)
6.6.相似金融時(shí)間序列繪制(similaritytimeseries.py)
6.7.計(jì)算分類的評(píng)價(jià)指標(biāo)(evaluation.py)
(1)準(zhǔn)確率Accuracy
(2)精確率Precision
(3)召回率Recall
(4)特異度Specificity
(5)綜合評(píng)價(jià)指標(biāo)F-measure
(6)馬修斯相關(guān)系數(shù)MCC(Matthews Correlation Coefficient)
6.8.窗口數(shù)據(jù)歸一化(normalization.py)
(1)z-score標(biāo)準(zhǔn)化(std)
(2)最大最小歸一化(maxmin)
6.9.股票數(shù)據(jù)下載(download.py)
(1)tushare接口
(2)JQdata接口
6.10.roc曲線繪制(roc.py)
6.11.混淆矩陣?yán)L制(confusion_matrix.py)
6.12.卡爾曼濾波(kalmanfilter.py)
6.13.蠟燭圖 (candle.py)
碼源鏈接見(jiàn)文末跳轉(zhuǎn)
[文末鏈接跳轉(zhuǎn)]:https://blog.csdn.net/sinat_39620217/article/details/131608655
更多優(yōu)質(zhì)內(nèi)容請(qǐng)關(guān)注公號(hào)&知乎:汀丶人工智能;會(huì)提供一些相關(guān)的資源和優(yōu)質(zhì)文章,免費(fèi)獲取閱讀。