全文下载链接:http://tecdat.cn/?p=26562

自 2000 年 1 月以来的股票价格数据。我们使用的是 Microsoft 股票。

该项目包括:

  • 将时间序列数据转换为分类问题。

  • 使用 TensorFlow 的 LSTM 模型

  • 由 MSE 衡量的预测准确性

相关视频

GPU 设置(如果可用)

gpus = tf.config.experimental.li

读取数据集

有几种方法可以获取股市数据。以下数据集是使用 R BatchGetSymbols 生成的。

#加载数据集
# ref.date是数组的第一列 
datang = read_csv('stopriceo.csv', header=0)

c1a80995b7cb0a2479f0e0dd78164902.png

pd.pivot_table(datong)

1b3b55b0fa62f6f1f42b232ab0a6060f.png

我们的股票时间序列

我们为这个项目选择了微软(股票代码 MSFT)。

plt.rrms\['fgre.dpi'\] = 300

plt.plot(dfte\['MSFT'\])

3edc1e93761354f118839e7d4a41e5f9.png

时间序列显然不是平稳的,这是大多数预测模型所假设的属性。我们可以对时间序列应用变换,直到它达到平稳状态。Dickey-Fuller 检验使我们能够确定我们的时间序列是否具有季节性。

在这里,我们将应用对数转换来解决股票市场的指数行为。

其他有助于预测模型的转换:

  • 移动平均线

  • 差分化

df1 = datt\['MSFT'\]

# 我们对数据集进行了对数转换
df1 = np.log(df1)

a7524edb2f63e33544b3467c40426c3a.png

# 替代方案:我们可以对时间序列进行差分,从而去除季节性和平均值的变化。
# 创建一个差分序列

#dfdiff = diffe(df1,1)

预处理

在这里,我们对时间序列数据应用标准预处理。

在时间序列中,我们没有标签,但我们有时间序列的未来值,因此输出可以是 x(t),给定 x(t-1) 作为输入。这是将数据集构建为监督问题的一种实用(且直观)的方法。

scaer = ixSer(fatue_ange = (0,1))
scer.i_rrm(np.array(df1).rehape(-1,1))

1953c36d84ad144a23f94b4e3a588cf2.png

e8f72250f971d5ecd61a4b500b893c2b.png

LSTM 模型

我们在这里实现了一个堆叠的 LSTM 模型。

LSTM 网络是一种递归神经网络,能够学习序列预测问题中的序列依赖性。LSTM 模型主要用于语音识别、自然语言处理的上下文中。最近,它们也被应用于时间序列数据的分析。

from tensorflow.keras.models import Sequential 

model.add(LSTM(50, retsueces = True
#LSTM
model.add(Dropout(0.1))

7144bbd1db0673df2a649aad2f3a0e91.png

history

c497a46537e93478c04f96d14d93b249.png

plt.plot(history.history

0eb82a6469af5b5fb19c42dc3680c214.png


点击标题查阅往期内容

5fc2f4feedc598b6cfe3bdb53fc1c4e6.png

Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据

outside_default.png

左右滑动查看更多

outside_default.png

01

7ef35bdec29ab5c8250d654692435674.png

02

328e9c1f937a09e86740ee4dfbbecdd8.png

03

9beddec4c79d7db52e8f065db591dae5.png

04

58410a7eae89c3a5c8138f996e549de2.png

表现

import math 
from sklearn.metrics import mean\_squared\_error

bf3079efd67e4fdb9018df00321d6a38.png

plt.rcParams\['figure.dpi'\] = 300
plt.rcParams\['savefig.dpi'\] = 300
#移位预测
lokback = ie_step
trinPrectPot = numpy.empty_like(df1)
traireditPlot\[:,:\] = np.nan

in_y = scaler.nesetsfrm(df1)
plt.plot

7d8dbc7330c50b760fa70b73e520abd5.jpeg

plt.plot(iv_y)

61305bb7d4a380d98827b0b23980a18f.jpeg

未来 30 天的预测

我们现在可以递归地应用该模型,通过估计第二天的 (t+1) 价格,然后再次将其作为输入来推断 t+2 天的价格,依此类推。这个预测当然会有更大的误差,因为每个预测的日子都会带来很大的不确定性。然而,这个预测确实会告诉我们模型是否从过去的数据中学到了任何东西。

# 预测未来30天的情况 
len(tesdata) # 1211
# 我认为在test_data中,最后一天是5月22日,例如
# 对于5月23日,我需要100个前一天的数据 

x\_input = test\_data\[(len

a704ee485c084b73476a7a6b43f12d29.png

while(i<ftue_teps):
    if(len(tep\_put)>ie\_sep):
        x_input = np.array(tepinut\[1:\])
        x\_input = x\_input.reshap

c3da16239c44f3cbeff2d08fd27cce22.png

27f404eaf703b868ffc6ce280fd19c60.png

plt.plot(dy\_ew, scaler.inverse\_transf

183365eb19e1d5fc690dc5106aef231c.png

plt.plot(df3\[1000:\])

6ec4500c01e07794b16023c9ae94cbd9.png


a1e46f95868aeee3c81a79c341150b89.png

点击文末“阅读原文”

获取全文完整资料。

本文选自《Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性》。

013773c033b8b44aefb1c86b56cf470b.jpeg

本文中的股票数据分享到会员群,扫描下面二维码即可加群!

0b9c6b4665fc9d3671b8437bc5bd71eb.png

点击标题查阅往期内容

数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子

Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析

Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类

RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测

结合新冠疫情COVID-19股票价格预测:ARIMA,KNN和神经网络时间序列分析

深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据

用PyTorch机器学习神经网络分类预测银行客户流失模型

PYTHON用LSTM长短期记忆神经网络的参数优化方法预测时间序列洗发水销售数据

Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化

Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告

R语言深度学习:用keras神经网络回归模型预测时间序列数据

Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类

R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)

MATLAB中用BP神经网络预测人体脂肪百分比数据

Python中用PyTorch机器学习神经网络分类预测银行客户流失模型

R语言实现CNN(卷积神经网络)模型进行回归数据分析

SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型

【视频】R语言实现CNN(卷积神经网络)模型进行回归数据分析

Python使用神经网络进行简单文本分类

R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析

R语言基于递归神经网络RNN的温度时间序列预测

R语言神经网络模型预测车辆数量时间序列

R语言中的BP神经网络模型分析学生成绩

matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类

R语言实现拟合神经网络预测和结果可视化

用R语言实现神经网络预测股票实例

使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测

python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译

用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

89914e8dab48634af366671de54c9a7c.png

4472272756eb86f46b97ad346a5db23f.jpeg

36261f61e67730459cb954b6a30a100f.png

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐