一、库准备
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天的数据,对应下一天的数据。