LSTM(长短期记忆网络)是一种特殊的循环神经网络(RNN),在处理序列数据时表现出色。以下是一个简单的 LSTM 示例,用于预测时间序列数据。
数据准备
首先,我们需要准备一些时间序列数据。这里我们可以使用一个简单的数据集,例如股票价格。
import numpy as np
# 创建一个简单的数据集
data = np.sin(np.linspace(0, 10, 100))
# 将数据转换为 [samples, time steps, features] 的格式
X, y = [], []
for i in range(len(data) - 1):
X.append([data[i]])
y.append([data[i + 1]])
X = np.array(X)
y = np.array(y)
构建LSTM模型
接下来,我们可以使用 TensorFlow 和 Keras 来构建一个简单的 LSTM 模型。
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
# 创建模型
model = Sequential()
model.add(LSTM(50, activation='relu', input_shape=(1, 1)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mean_squared_error')
训练模型
现在,我们可以使用准备好的数据来训练模型。
model.fit(X, y, epochs=50, batch_size=1)
预测
最后,我们可以使用训练好的模型来预测未来的数据。
# 预测未来10个数据点
predictions = model.predict(np.array([[np.sin(np.linspace(10, 10.1, 1))]]))
# 绘制预测结果
import matplotlib.pyplot as plt
plt.plot(np.linspace(10, 10.1, 1), predictions, label='Predicted')
plt.plot(np.linspace(10, 10.1, 1), np.sin(np.linspace(10, 10.1, 1)), label='Actual')
plt.legend()
plt.show()
LSTM预测结果
更多关于 LSTM 的内容,请参考本站提供的 LSTM 深入学习教程。
# 如果关键词包含空格,请使用下划线替换空格
<center><img src="https://cloud-image.ullrai.com/q/LSTM_Prediction_Result/" alt="LSTM_Prediction_Result"/></center>