做网站平台的营业执照,怎样建房,小广告清理,物流网络节点全文链接#xff1a;https://tecdat.cn/?p37152
原文出处#xff1a;拓端数据部落公众号
Attention 机制是一种在神经网络处理序列数据时极为关键的技术#xff0c;它赋予了模型“聚焦”能力#xff0c;能够自动评估输入序列中各部分的重要性。通过为序列中的每个元素分…全文链接https://tecdat.cn/?p37152
原文出处拓端数据部落公众号
Attention 机制是一种在神经网络处理序列数据时极为关键的技术它赋予了模型“聚焦”能力能够自动评估输入序列中各部分的重要性。通过为序列中的每个元素分配不同的权重Attention 确保网络在处理过程中能够优先关注那些对任务更为关键的部分从而显著提升模型的预测精度和效果。
当Attention机制与LSTM长短时记忆网络相结合时这一组合展现出了更为强大的序列处理能力。LSTM本身设计用于捕捉序列中的长期依赖关系通过其独特的门控机制来控制信息的遗忘与保留。然而面对极长的序列LSTM可能会遭遇信息衰减或传递不畅的挑战。此时Attention机制的引入如同一剂强心针它允许模型动态地调整对序列不同片段的关注度确保关键信息得以高效捕捉而不被忽略。
因此本文帮助客户通过Attention LSTM 的结合不仅解决了LSTM在处理长序列时可能遇到的问题还通过两者优势互补极大地增强了模型对复杂序列数据的理解和分析能力既提升了性能也优化了计算效率。
股票预测模型使用注意力多层 RNN LSTM
数据准备 首先我们从CSV文件中读取股票数据并计算每对相邻交易日之间的对数收益率假设收益率服从对数正态分布。接着使用z-score标准化方法将数据映射到均值为0、方差为1的分布上以减少不同量纲对模型训练的影响。 计算两点之间的对数收益率。假设收益率呈对数正态分布。
使用 zscore 将一个 pandas 系列映射使其均值为 0方差为 1以对数据进行标准化。 处理所有股票代码以生成数据框 Final pd.DataFrame()
for f in os.listdir(datapath):filepath os.path.join(datapath,f)if filepath.endswith(.csv): 数据透视
P是每个股票所有条目的扁平化数据框每行代表一天 mi P.columns.tolist() 设置目标
为了简化问题我们将预测目标设定为股票价格的涨跌方向上涨、下跌或持平分别用1、-1和0表示。通过计算每日的收益率我们可以为每个交易日打上相应的标签。
现在我们有了输入和目标算是有了。InputsDF 包含了我们想要预测的所有输入。Targets DF 包含了每个股票每天的收益率。首先由于我们没有太多数据让我们为预测设定一个比每个股票的收益率更简单的目标。
我们将目标标记为上涨1、下跌-1或持平0。顶部图表展示了如果我们每天为每个股票投入 1 美元将会出现的情况。底部图表展示了如果在上涨1的日子做多整个股票组合在下跌-1的日子做空在0的日子忽略会产生的结果。您能够看出这是一个具有价值的预测目标。
Labeled[max_return] Labeled[class] * Labeled[return] Labeled 建立基线
为了评估后续模型的性能我们首先构建了逻辑回归和全连接神经网络作为基线模型。
逻辑回归
from sklearn import linear_model
from sklearn.metrics import classification_report,confusion_matrix logreg linear_model.LogisticRegression(C1e5)
基线全连接前馈神经网络
使用TensorFlow构建一个简单的全连接神经网络作为另一个基线。 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 (1Result[-test_size:][[return,max_return,nn_ret]]).cumprod()
Res[0] 0
Res.plot(secondary_ymax_return) print(classification_report(Result[class],Result[mod_nn_prod])) Result[Result.multi_class6][nn_pred].hist() 注意力循环神经网络与MultiRNNCell LSTMs 基于TensorFlow我们构建了一个包含注意力机制的RNN模型使用LSTM单元作为RNN的基本组件。注意力机制通过赋予不同时间步长不同的权重帮助模型更好地捕捉关键信息。
在本节中我们将创建一个能够学习考虑过去情况的 rnn 模型。此模型基于 AttentionCellWrapper这是在以下https://arxiv.org/pdf/1409.0473v7.pdf 中描述的一种新颖方法标题为“通过联合学习对齐和翻译的神经机器翻译”
rnn 网络定义 from tensorflow.contrib.layers.python.layers.initializers import xavier_initializer# Parameters
learning_rate 0.0007
display_step 1
logpath /tmp/rnn_logs/example
训练 RNN # 构建模型并将所有操作封装到作用域中使
# Tensorboard 的图形可视化更方便
with tf.Graph().as_default():model RNNModel()input_ train[0]target train[1]
# XLAconfig tf.ConfigProto() RNN 结果 Result[rnn_pred] final_preds
Result[mod_rnn_prod] list(map(lambda x: -1 if x 5 else 0 if x5 else 1,final_preds)) 通过对比基线模型和注意力RNN模型的预测结果我们发现注意力RNN模型在预测准确率、召回率和F1分数等指标上均有所提升表明注意力机制有效地帮助模型捕捉到了股票数据中的关键时序特征。
Result[Result.multi_class6][rnn_pred].hist() matplotlib.axes._subplots.AxesSubplot at 0x7f86a1938128 结论
本文提出了一种基于注意力机制的RNN模型用于股票价格预测并通过实验验证了其有效性。与基线模型相比该模型在预测性能上取得了显著提升。未来工作可以进一步探索不同注意力机制、优化模型结构以及融合更多外部数据源以进一步提升预测精度和泛化能力。 参考文献
[1]林杰,康慧琳.基于注意力机制的LSTM股价趋势预测研究[J].上海管理科学.2020,(1). [2]包振山,郭俊南,谢源,等.基于LSTM-GA的股票价格涨跌预测模型[J].计算机科学.2020,(z1).DOI:10.11896/jsjkx.190900128 . [3]文宝石,颜七笙.数据多维处理LSTM股票价格预测模型[J].江西科学.2020,(4).DOI:10.13990/j.issn1001-3679.2020.04.001 . [4]杨青,王晨蔚.基于深度学习LSTM神经网络的全球股票指数预测研究[J].统计研究.2019,(3).DOI:10.19343/j.cnki.11-1302/c.2019.03.006 . [5]乔若羽.基于神经网络的股票预测模型[J].运筹与管理.2019,(10).DOI:10.12005/orms.2019.0233 . [6]巴曙松,蒋峰.违约潮背景下的信用风险测度研究[J].湖北经济学院学报.2019,(6).DOI:10.3969/j.issn.1672-626x.2019.06.001 . [7]王理同,薛腾腾,王惠敏,等.基于循环神经网络的股指价格预测研究[J].浙江工业大学学报.2019,(2).DOI:10.3969/j.issn.1006-4303.2019.02.013 . [8]王卫红,卓鹏宇.基于PCA-FOA-SVR的股票价格预测研究[J].浙江工业大学学报.2016,(4).DOI:10.3969/j.issn.1006-4303.2016.04.010 . [9]许兴军,颜钢锋.基于BP神经网络的股价趋势分析[J].浙江金融.2011,(11).DOI:10.3969/j.issn.1005-0167.2011.11.015 . [10]韦艳华,张世英.金融市场的相关性分析--Copula-GARCH模型及其应用[J].系统工程.2004,(4).DOI:10.3969/j.issn.1001-4098.2004.04.002 .