Pytorch下基于lstm的股价预测

本文通过Pytorch实现了一个基于LSTM的股价预测模型,详细介绍了从数据准备到模型训练的过程。实验结果显示,LSTM在单特征预测上的效果有限,存在数据泄露问题,且幅度预测不准确。作者提出可能的改进方向,如预测涨跌或波动率。
摘要由CSDN通过智能技术生成

一、库准备

import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
import numpy as np
import akshare as ak
import torch
from torch import nn

二、构造

1.把茅台2017年到今天的股价画出来

share_prices=ak.stock_zh_a_hist(symbol='600519',start_date='20170101',end_date='20220410',adjust='qfq')['收盘'].values

share_prices = share_prices.astype('float32')  # 转换数据类型: obj ->float
plt.plot(share_prices)

2.数据normalization

# 将数据集标准化到 [-1,1] 区间
scaler = MinMaxScaler(feature_range=(-1, 1))  # train data normalized
share_prices = scaler.fit_transform(share_prices.reshape(-1, 1))

 

 3.构造一个数据切分函数

def create_dataset(data, days_for_train=5) -> (np.array, np.array):
    """
        根据给定的序列data,生成数据集。
        数据集分为输入和输出,每一个输入的长度为days_for_train,每一个输出的长度为1。
        也就是说用days_for_train天的数据,对应下一天的数据。
       
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值