1.整体描述
LSTM模型是循环神经网络RNN的改进,解决了RNN模型的梯度消失和梯度爆炸问题。关于LSTM模型的理论讲解部分可以参考这篇文章http://t.csdnimg.cn/L0t7s
本文基于pytorch利用LSTM模型,对股票的收盘价格进行预测(当然这样做在现实的股票预测中没有太大意义)。
2.获取数据
利用python自带的tushare库可以读取相关的金融数据,具体使用教程可以看这篇文章http://t.csdnimg.cn/dvltG
可以按照训练集和测试集来分别读取数据,本文将2020.01.01至2024.01.01的收盘价数据作为训练集,2024.01.01至2024.04.30的数据作为测试集。
在读取完数据后最好进行一个标准化,利于模型的收敛。
#获取数据
import tushare as ts
import datetime
from sklearn.preprocessing import MinMaxScaler
pro = ts.pro_api('cb790633326fc52c74c71ab1b0771dc98859fba4317fae78591672a9')
scaler = MinMaxScaler(feature_range=(-1,1)) #标准化方式设定
start = datetime.date(2020, 1, 1).strftime('%Y%m%d')
end = datetime.date(2024, 1, 1).strftime('%Y%m%d')
df = pro.daily(ts_code='300750.SZ', start_date=start, end_date=end)
price_close = df.loc[:,'close']
price_close = price_close.values
price_close = scaler.fit_transform(price_close.reshape(-1,1)) #进行标准化
#获得的数据类型为ndarray(970,1)
start_test = datetime.date(2024,1,2).strftime('%Y%m%d')