LSTM(长短时记忆网络)是处理时间序列数据的强大工具,广泛应用于股票预测、自然语言处理等领域。以下是一个简单的入门指南,带你用 Keras 构建 LSTM 模型。

1. 环境准备 🛠️

2. 数据加载与预处理 📁

# 示例:加载股票数据
data = pd.read_csv('stock_data.csv')
prices = data['Close'].values.reshape(-1,1)
  • 使用 MinMaxScaler 归一化数据
  • 划分训练集与测试集:train_data = prices[0:int(len(prices)*0.8)]
  • 生成时间序列输入输出对:
    X, y = create_dataset(train_data, look_back=10)

3. 构建 LSTM 模型 🧠

model = Sequential()
model.add(LSTM(50, return_sequences=True, input_shape=(X.shape[1], 1)))
model.add(LSTM(50, return_sequences=False))
model.add(Dense(1))  # 输出层
LSTM_model_structure

4. 训练与评估 🔄

  • 编译模型:model.compile(optimizer='adam', loss='mean_squared_error')
  • 训练过程:model.fit(X_train, y_train, epochs=20, batch_size=32)
  • 评估指标:使用 RMSE 或 MAE 测量预测精度
    rmse = np.sqrt(mean_squared_error(y_test, predictions))

5. 预测未来值 🕰️

# 用最后 10 天数据预测第 11 天
last_sequence = data[-look_back:].values.reshape(1,-1)
last_sequence = scaler.transform(last_sequence)
pred = model.predict(last_sequence)
Training_LSTM

6. 拓展学习 🚀

💡 小贴士:LSTM 的 look_back 参数需根据数据频率调整,建议从 10 开始尝试

点击查看 LSTM 原理图解 了解更多核心概念!