这个是我在github上看到的,学习完进行记录
数据格式
代码部分
#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: liujie
@software: PyCharm
@file: LSTM长期预测.py
@time: 2020/11/13 15:48
"""
'''
LSTM长期预测:
使用LSTM算法对时间序列进行长期预测,标签是多维的,这里是二维,时间步长这里是12,
预测天数这里是10都可作为参数调节
'''
import warnings
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error, mean_absolute_error
from sklearn.preprocessing import StandardScaler
import tensorflow as tf
from tensorflow import keras
from keras.layers.recurrent import LSTM
from tensorflow.keras import layers, optimizers, metrics, losses, callbacks
# 读取数据并绘图
def read_data(filepath):
data_origin = pd.read_excel(filepath, header=0)
# print(data_origin.head())
# data_origin = data_origin.replace(0,np.NAN)
# data_origin.dropna(inplace=True)
# data_origin.fillna(method='pad',inplace=True)
# 画图
fig = plt.figure(figsize=(15, 5))
fig.add_subplot()
plt.plot(data_origin.iloc[:-200, 1]) # iloc通过整数位置为基础的索引来选择
plt.show(block=False)
return data_origin
#
# 归一化
def min_max_scaler(data):
# x = (x - x_min) / (x_max - x_min)
data_1 = (data - data.min()) / (data.max() - data.min())
return data_1
# 反归一化
def inverse_data(y_test_pred, data_origin