做網(wǎng)站怎么融資2345網(wǎng)址導(dǎo)航大全
全文鏈接:https://tecdat.cn/?p=37152
原文出處:拓端數(shù)據(jù)部落公眾號?
Attention 機(jī)制是一種在神經(jīng)網(wǎng)絡(luò)處理序列數(shù)據(jù)時極為關(guān)鍵的技術(shù),它賦予了模型“聚焦”能力,能夠自動評估輸入序列中各部分的重要性。通過為序列中的每個元素分配不同的權(quán)重,Attention 確保網(wǎng)絡(luò)在處理過程中能夠優(yōu)先關(guān)注那些對任務(wù)更為關(guān)鍵的部分,從而顯著提升模型的預(yù)測精度和效果。
當(dāng)Attention機(jī)制與LSTM(長短時記憶網(wǎng)絡(luò))相結(jié)合時,這一組合展現(xiàn)出了更為強(qiáng)大的序列處理能力。LSTM本身設(shè)計用于捕捉序列中的長期依賴關(guān)系,通過其獨特的門控機(jī)制來控制信息的遺忘與保留。然而,面對極長的序列,LSTM可能會遭遇信息衰減或傳遞不暢的挑戰(zhàn)。此時,Attention機(jī)制的引入如同一劑強(qiáng)心針,它允許模型動態(tài)地調(diào)整對序列不同片段的關(guān)注度,確保關(guān)鍵信息得以高效捕捉而不被忽略。
因此,本文幫助客戶通過Attention + LSTM 的結(jié)合不僅解決了LSTM在處理長序列時可能遇到的問題,還通過兩者優(yōu)勢互補,極大地增強(qiáng)了模型對復(fù)雜序列數(shù)據(jù)的理解和分析能力,既提升了性能,也優(yōu)化了計算效率。
股票預(yù)測模型使用注意力多層 RNN LSTM
數(shù)據(jù)準(zhǔn)備
首先,我們從CSV文件中讀取股票數(shù)據(jù),并計算每對相鄰交易日之間的對數(shù)收益率,假設(shè)收益率服從對數(shù)正態(tài)分布。接著,使用z-score標(biāo)準(zhǔn)化方法將數(shù)據(jù)映射到均值為0、方差為1的分布上,以減少不同量綱對模型訓(xùn)練的影響。
計算兩點之間的對數(shù)收益率。假設(shè)收益率呈對數(shù)正態(tài)分布。
使用 zscore 將一個 pandas 系列映射,使其均值為 0,方差為 1,以對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。
處理所有股票代碼以生成數(shù)據(jù)框
Final = pd.DataFrame()
for f in os.listdir(datapath):filepath = os.path.join(datapath,f)if filepath.endswith('.csv'):
數(shù)據(jù)透視
P是每個股票所有條目的扁平化數(shù)據(jù)框,每行代表一天
mi = P.columns.tolist()
設(shè)置目標(biāo)
為了簡化問題,我們將預(yù)測目標(biāo)設(shè)定為股票價格的漲跌方向(上漲、下跌或持平),分別用1、-1和0表示。通過計算每日的收益率,我們可以為每個交易日打上相應(yīng)的標(biāo)簽。
現(xiàn)在我們有了輸入和目標(biāo),算是有了。InputsDF
?包含了我們想要預(yù)測的所有輸入。Targets DF
?包含了每個股票每天的收益率。首先,由于我們沒有太多數(shù)據(jù),讓我們?yōu)轭A(yù)測設(shè)定一個比每個股票的收益率更簡單的目標(biāo)。
我們將目標(biāo)標(biāo)記為上漲(1)、下跌(-1)或持平(0)。頂部圖表展示了如果我們每天為每個股票投入 1 美元將會出現(xiàn)的情況。底部圖表展示了如果在上漲(1)的日子做多整個股票組合,在下跌(-1)的日子做空,在(0)的日子忽略會產(chǎn)生的結(jié)果。您能夠看出這是一個具有價值的預(yù)測目標(biāo)。
Labeled['max_return'] = Labeled['class'] * Labeled['return']
Labeled
建立基線
為了評估后續(xù)模型的性能,我們首先構(gòu)建了邏輯回歸和全連接神經(jīng)網(wǎng)絡(luò)作為基線模型。
邏輯回歸
from sklearn import linear_model
from sklearn.metrics import classification_report,confusion_matrix
logreg = linear_model.LogisticRegression(C=1e5)
基線全連接前饋神經(jīng)網(wǎng)絡(luò)
使用TensorFlow構(gòu)建一個簡單的全連接神經(jīng)網(wǎng)絡(luò)作為另一個基線。
with tf.Graph().as_default():model = Model()input_ = train[0]target = train[1]config = tf.ConfigProto()jit_level = tf.OptimizerOptions.ON_1config.graph_options.optimizer_options.global_jit_level = jit_level
Res = (1+Result[-test_size:][['return','max_return','nn_ret']]).cumprod()
Res[0] =0
Res.plot(secondary_y='max_return')
print(classification_report(Result['class'],Result['mod_nn_prod']))
Result[Result.multi_class==6]['nn_pred'].hist()
?
注意力循環(huán)神經(jīng)網(wǎng)絡(luò)與MultiRNNCell LSTMs
基于TensorFlow,我們構(gòu)建了一個包含注意力機(jī)制的RNN模型,使用LSTM單元作為RNN的基本組件。注意力機(jī)制通過賦予不同時間步長不同的權(quán)重,幫助模型更好地捕捉關(guān)鍵信息。
在本節(jié)中,我們將創(chuàng)建一個能夠?qū)W習(xí)考慮過去情況的 rnn 模型。此模型基于?AttentionCellWrapper
,這是在以下https://arxiv.org/pdf/1409.0473v7.pdf?中描述的一種新穎方法,標(biāo)題為“通過聯(lián)合學(xué)習(xí)對齊和翻譯的神經(jīng)機(jī)器翻譯”
rnn 網(wǎng)絡(luò)定義
from tensorflow.contrib.layers.python.layers.initializers import xavier_initializer# Parameters
learning_rate = 0.0007
display_step = 1
logpath = '/tmp/rnn_logs/example'
訓(xùn)練 RNN
# 構(gòu)建模型并將所有操作封裝到作用域中,使
# Tensorboard 的圖形可視化更方便
with tf.Graph().as_default():model = RNNModel()input_ = train[0]target = train[1]
# XLAconfig = tf.ConfigProto()
RNN 結(jié)果
Result['rnn_pred'] = final_preds
Result['mod_rnn_prod'] = list(map(lambda x: -1 if x <5 else 0 if x==5 else 1,final_preds))
通過對比基線模型和注意力RNN模型的預(yù)測結(jié)果,我們發(fā)現(xiàn)注意力RNN模型在預(yù)測準(zhǔn)確率、召回率和F1分?jǐn)?shù)等指標(biāo)上均有所提升,表明注意力機(jī)制有效地幫助模型捕捉到了股票數(shù)據(jù)中的關(guān)鍵時序特征。
Result[Result.multi_class==6]['rnn_pred'].hist()
<matplotlib.axes._subplots.AxesSubplot at 0x7f86a1938128>
結(jié)論
本文提出了一種基于注意力機(jī)制的RNN模型用于股票價格預(yù)測,并通過實驗驗證了其有效性。與基線模型相比,該模型在預(yù)測性能上取得了顯著提升。未來工作可以進(jìn)一步探索不同注意力機(jī)制、優(yōu)化模型結(jié)構(gòu)以及融合更多外部數(shù)據(jù)源,以進(jìn)一步提升預(yù)測精度和泛化能力。
參考文獻(xiàn)
[1]林杰,康慧琳.基于注意力機(jī)制的LSTM股價趨勢預(yù)測研究[J].上海管理科學(xué).2020,(1).
[2]包振山,郭俊南,謝源,等.基于LSTM-GA的股票價格漲跌預(yù)測模型[J].計算機(jī)科學(xué).2020,(z1).DOI:10.11896/jsjkx.190900128 .
[3]文寶石,顏七笙.數(shù)據(jù)多維處理LSTM股票價格預(yù)測模型[J].江西科學(xué).2020,(4).DOI:10.13990/j.issn1001-3679.2020.04.001 .
[4]楊青,王晨蔚.基于深度學(xué)習(xí)LSTM神經(jīng)網(wǎng)絡(luò)的全球股票指數(shù)預(yù)測研究[J].統(tǒng)計研究.2019,(3).DOI:10.19343/j.cnki.11-1302/c.2019.03.006 .
[5]喬若羽.基于神經(jīng)網(wǎng)絡(luò)的股票預(yù)測模型[J].運籌與管理.2019,(10).DOI:10.12005/orms.2019.0233 .
[6]巴曙松,蔣峰."違約潮"背景下的信用風(fēng)險測度研究[J].湖北經(jīng)濟(jì)學(xué)院學(xué)報.2019,(6).DOI:10.3969/j.issn.1672-626x.2019.06.001 .
[7]王理同,薛騰騰,王惠敏,等.基于循環(huán)神經(jīng)網(wǎng)絡(luò)的股指價格預(yù)測研究[J].浙江工業(yè)大學(xué)學(xué)報.2019,(2).DOI:10.3969/j.issn.1006-4303.2019.02.013 .
[8]王衛(wèi)紅,卓鵬宇.基于PCA-FOA-SVR的股票價格預(yù)測研究[J].浙江工業(yè)大學(xué)學(xué)報.2016,(4).DOI:10.3969/j.issn.1006-4303.2016.04.010 .
[9]許興軍,顏鋼鋒.基于BP神經(jīng)網(wǎng)絡(luò)的股價趨勢分析[J].浙江金融.2011,(11).DOI:10.3969/j.issn.1005-0167.2011.11.015 .
[10]韋艷華,張世英.金融市場的相關(guān)性分析--Copula-GARCH模型及其應(yīng)用[J].系統(tǒng)工程.2004,(4).DOI:10.3969/j.issn.1001-4098.2004.04.002 .