作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试根据某个序列预测值(我有 5 个值,例如 1、2、3、4、5,并希望预测下一个 - 6)。为此,我正在使用 LSTM keras。
创建训练数据:
import numpy as np
from keras.models import Sequential
from keras.layers import LSTM,Dense
a = [float(i) for i in range(1,100)]
a = np.array(a)
data_train = a[:int(len(a)*0.9)]
data_test = a[int(len(a)*0.9):]
x = 5
y = 1
z = 0
train_x = []
train_y = []
for i in data_train:
t = data_train[z:x]
r = data_train[x:x+y]
if len(r) == 0:
break
else:
train_x.append(t)
train_y.append(r)
z = z + 1
x = x+1
train_x = np.array(train_x)
train_y = np.array(train_y)
x = 5
y = 1
z = 0
test_x = []
test_y = []
for i in data_test:
t = data_test[z:x]
r = data_test[x:x+y]
if len(r) == 0:
break
else:
test_x.append(t)
test_y.append(r)
z = z + 1
x = x+1
test_x = np.array(test_x)
test_y = np.array(test_y)
print(train_x.shape,train_y.shape)
print(test_x.shape,test_y.shape)
将其随意变换成LSTM形状:
train_x_1 = train_x.reshape(train_x.shape[0],len(train_x[0]),1)
train_y_1 = train_y.reshape(train_y.shape[0],1)
test_x_1 = test_x.reshape(test_x.shape[0],len(test_x[0]),1)
test_y_1 = test_y.reshape(test_y.shape[0],1)
print(train_x_1.shape, train_y_1.shape)
print(test_x_1.shape, test_y_1.shape)
构建和训练模型:
model = Sequential()
model.add(LSTM(32,return_sequences = False,input_shape=(trein_x_1.shape[1],1)))
model.add(Dense(1))
model.compile(loss='mse', optimizer='adam', metrics=['accuracy'])
history = model.fit(train_x_1,
train_y_1,
epochs=20,
shuffle=False,
batch_size=1,
verbose=2,
validation_data=(test_x_1,test_y_1))
但是我得到了一个非常糟糕的结果,有人可以解释一下我做错了什么吗。
pred = model.predict(test_x_1)
for i,a in enumerate(pred):
print(pred[i],test_y_1[i])
[89.71895] [95.]
[89.87877] [96.]
[90.03465] [97.]
[90.18714] [98.]
[90.337006] [99.]
谢谢。
最佳答案
您希望网络根据您用于训练的数据进行推断。神经网络 are not good at this .您可以尝试规范化您的数据,以便您不再通过例如使用相对值而不是绝对值进行推断。这当然会使这个例子变得非常微不足道。
关于python - keras LSTM 预测不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53047848/
我是一名优秀的程序员,十分优秀!