LSTM时间序列预测(单维,多步预测一步)
文章目录
前言
正在自学LSTM,记录一下学习过程,顺便请大佬们指点一二。
本文代码是来自于github:https://github.com/yangwohenmai/LSTM,数据集是自己的,不过都差不多。
使用步骤
1.引入库
import numpy
import matplotlib.pyplot as plt
from pandas import read_csv
import math
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
import pandas as pd
2.设置一下,画图时可以显示汉字
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
3.设置监督学习格式
意思就是1-100个数据去预测101个,2-101个数据去预测102个,以此类推。
我也试过200个一组,不太明白这个数据是否是自己根据预测效果定义。
# 将数据截取成100个一组的监督学习格式
def create_dataset(dataset, look_back):
dataX, dataY = [], []
for i in range(len(dataset) - look_back - 1): # 可以建多少个监督学习组
a = dataset[i:(i + look_back),0]
dataX.append(a)
dataY.append(dataset[i + look_back,0]) # 第101个数据
return numpy.array(dataX),numpy.array(dataY)
3.读取数据
# 定义随机种子,以便重现结果
numpy.random.seed(7)
# 加载数据
dataframe