keras实现LSTM单变量时间序列预测——股票价格预测

本文探讨了利用LSTM深度学习算法预测股票价格的可能性。通过分析历史数据,特别是收盘价,来构建时间序列预测模型。LSTM的输入门、遗忘门和输出门使其在序列预测中表现出色。实验结果显示LSTM模型在预测股票收盘价方面具有一定的效果,但需要注意股票价格受多种不可预知因素影响,模型预测仅供参考。
摘要由CSDN通过智能技术生成

预测股市将如何变化历来是最困难的事情之一。这个预测行为中包含着如此之多的因素—包括物理或心理因素、理性或者不理性行为因素等等。所有这些因素结合在一起,使得股价波动剧烈,很难准确预测。

使用机器学习可能改变游戏规则吗?机器学习技术使用最新的组织公告、季度收益等作为特征,有潜力挖掘出我们以前没有见过的模式和见解,并可用于准确无误的预测。

在本文中,我们将研究上市公司股价的历史数据。我们将使用LSTM深度学习算法来预测这家公司的未来股价。

问题理解

我们将很快深入本文的实现部分,但首先重要的是确定我们要解决的问题。一般来说,股票市场分析分为两个部分——基本面分析和技术分析。

基本面分析是根据公司目前的经营环境和财务状况,对公司未来的盈利能力进行分析。

技术分析包括阅读图表和使用统计数字来确定股票市场的趋势。

您可能已经猜到,我们的重点将放在技术分析部分。我们将使用来自Quandl的数据集(您可以在这里找到各种股票的历史数据),这个项目中,我使用了“塔塔全球饮料”的数据。

首先让我们加载数据集,定义问题的目标变量:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# setting figure size
from matplotlib.pylab import rcParams
rcParams['figure.figsize'] = 20, 10

# for normalizing data
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1))

# read the file
df = pd.read_csv('NSE-TATAGLOBAL.csv')

# print the head
df.head()
print(df)

在这里插入图片描述
数据集中有多个变量——日期(date)、开盘价(open)、最高价(high)、最低价(low)、最后交易价(last)、收盘价(close)、总交易额(total_trade_quantity)和营业额(turnover)。

  • 开盘价和收盘价代表股票在某一天交易的起始价和最终价。
  • 最高价、最低价和最后交易价表示当天股票的最高价、最低价和最后交易价格。
  • 交易总量是指当天买卖的股票数量,而营业额(Lacs)是指某一特定公司在某一特定日期的营业额。

要注意的另一点是,市场在周末和公共假期休市。注意上表缺失了一些日期值——2/10/2018、6/10/2018、7/10/2018。其中2号是国庆节,6号和7号是周末。

损益的计算通常由股票当日的收盘价决定,因此我们将收盘价作为目标变量。让我们画出目标变量来理解它在我们的数据集中的分布:

# setting index as date
df['Date'] = pd.to_datetime(df.Date, format='%Y-%m-%d')
df.index = df['Date']

# plot
plt.figure(figsize=(16, 8
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值