以下是我的代码,但是在运行的时候出现了一堆错误
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential
from keras.layers import LSTM,Dense
#构造PM2.5的数据
data = np.array([90,85,82,88,87,80,75,72,78,85,88,90,93,92,89,87,82,75,70,68,70,72,75,80,85])
data =np.reshape(data,(-1,1))
#np.reshape(data,new_shape)是将data塑造成为一个新的数组,(-1,1)表示的是
#新的数组的行数和列数,后面的1表示的是有几列,-1表示的是
#程序会根据已经知道的列数,自动计算出来有几行,很明显,列数是1,行数是总数除以列数
#数组的归一化处理
scaler=MinMaxScaler(feature_range=(0,1))
data=scaler.fit_transform(data)
#MinMaxScaler主要是用于归一化处理的,归一化处理就是将数据放缩到一定的范围之内
#可以是-1到1,或者是从0到1,
#MinMaxScaler通过计算特征列的最大值和最小值来进行归一化处理的
#feature_range表示的是放缩到什么大小之中
look_back=4
x=[]
y=[]
for i in range(len(data)-look_back-1):
x.append(data[i:(i+look_back),0])
y.append(data[i+look_back,0])
x=np.array(x)
y=np.array(y)
#将输入数据重塑为LSTM的输入格式
x=np.reshape(x,(x.shape[0],x.shape[1],1))
#sahpe是numpy之中的函数,作用是读取矩阵的长度,shape[0]表示的是读取第一列矩阵的长度
#构建LSTM模型
model=Sequential()
model.add(LSTM(4,input_shape=(look_back,1)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
#训练模型
model.fit(x,y,epochs=100,batch_size=1,verbose=2)
#预测佩莱的PM2.5的浓度
future_data =np.array([70,72,75,80])
future_data =np.reshape(future_data,(-1,1))
future_data=scaler.transform(future_data)
future_data=np.reshape(future_data,(1,look_back,1))
future_pm25=model.predict(future_data)
future_pm25=scaler.inverse_transform(future_pm25)
print('未来的pm2.5的浓度是',future_pm25)
报错如图,不知道如何解决,求帮助