gru进行时间序列预测代码
时间: 2023-05-19 10:05:45 浏览: 153
时间预测代码
5星 · 资源好评率100%
以下是一个使用 Gated Recurrent Unit (GRU) 进行时间序列预测的 Python 代码示例:
```python
import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import GRU, Dense
from tensorflow.keras.models import Sequential
# 生成时间序列数据
def generate_data(n):
x = np.arange(n)
y = np.sin(x/10)
return y.reshape(-1, 1)
# 构建 GRU 模型
def build_model():
model = Sequential()
model.add(GRU(32, input_shape=(None, 1)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
return model
# 训练模型
def train_model(model, x_train, y_train, epochs):
model.fit(x_train, y_train, epochs=epochs, verbose=0)
# 预测未来的时间序列
def predict_future(model, x_test, n):
y_pred = []
for i in range(n):
y = model.predict(x_test.reshape(1, -1, 1))
y_pred.append(y[0, 0])
x_test = np.concatenate([x_test[1:], y], axis=0)
return np.array(y_pred)
# 生成数据并训练模型
data = generate_data(100)
model = build_model()
train_model(model, data[:-1], data[1:], epochs=100)
# 预测未来的时间序列并输出结果
future_data = generate_data(20)
future_pred = predict_future(model, data[-1], 20)
print(future_pred)
```
该代码使用 GRU 模型对一个正弦函数的时间序列进行预测,并输出未来 20 个时间步的预测结果。
阅读全文