这个应该也是能跑的,不过需要改动一些数据,就是在根据自己的需要对代码进行改动,改动之后是能够运行的,之前朋友做的这个,是用温度预测负荷的,用的长短时记忆神经网络(LSTM)来做的,我这里将他进行了改动,因为代码还在改进所以发一下他的代码,希望大家一起互相交流
# 使用GPU运算,忽略AVX警告
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# 加载数据分析常用库
import pandas as pd
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.layers import Dense, LSTM
from pandas import read_csv
from pandas import DataFrame
from pandas import concat
from sklearn.preprocessing import MinMaxScaler
from math import sqrt
from numpy import concatenate
from sklearn.metrics import mean_squared_error
from sklearn.utils.validation import check_array as check_arrays
import tensorflow as tf
import numpy as np
from keras import backend as K
from keras.layers import Input,Embedding,LSTM,Dense
from keras.models import Model
from keras import backend as K
# 导入数据,包含头信息
data = read_csv('D:/lyyc/data.csv', header=0, index_col=0)
# 删掉不用的字段
# dataset = dataset.drop('jh', axis=1) # 删掉第一行
# df转array
values = data.values
#查看训练数据
feature = ['load','temp']
example = pd.read_csv('D:/lyyc/data.csv', names=feature)
example.head(8)
print(example.head(8))
# 查看数据采集区的数据
plt.figure(figsize=(24, 8)) #创建图形尺寸
for i in range(2):
plt.subplot(2, 1, i+1) #子图
plt.plot(example.values[:, i])
plt.title(feature[i], y=0.5, loc='right')
plt.show()
#将时间序列数据转化为监督学习数据
# data:观测值序列,类型为列表或者二维的Numpy数组,必选参数
# n_in:输入的滞后观测值数量(X)。值介于1..len(data)之间,可选参数,默认为1。
# n_out:输出的观测值数量(y)。值介于0..len(data)-1之间,可选参数,默认为1。
# dropnan:是否删除具有NaN值的行,类型为布尔值。可选参数,默认为True。
def series_to_supervised(data, n_in=1, n_out=1, dropnan=True):
n_vars = 1 if type(data) is