多变量LSTM模型预测结果缺乏波动性问题排查求助
多变量LSTM时间序列预测问题:结果平滑无起伏及模型架构疑问
我正在基于多变量LSTM模型开展时间序列预测任务,但遇到预测结果缺乏起伏、过于平滑的问题,尤其在第一个预测点之后表现明显。
模型架构
model.add(tf.keras.layers.InputLayer(input_shape=(60,25))) model.add(LSTM(256, return_sequences=True)) model.add(tf.keras.layers.LayerNormalization()) model.add(Dropout(0.2)) model.add(LSTM(256, return_sequences=True)) model.add(tf.keras.layers.LayerNormalization()) model.add(Dropout(0.2)) model.add(LSTM(256, return_sequences=False)) model.add(tf.keras.layers.LayerNormalization()) model.add(Dropout(0.2)) model.add(Dense(30 * 3, activation=tf.keras.layers.LeakyReLU(alpha=0.1))) model.add(Reshape([30, 3]))
数据集情况
- 共670000行数据,包含25个特征
- 任务逻辑:基于过去60个时间步的数据,预测未来30个时间步的3个目标特征
- 数据划分:采用步长为1的滑动窗口,按70:20:10比例划分为训练集、验证集和测试集
- 数据预处理:使用StandardScaler进行数据缩放,便于后续异常值检测
- 预测效果对比:某一特征的预测值与真实值对比图如下:

核心疑问
我的目标是一次性预测3个特征各自的30个时间步值,请问LSTM最后几层的处理是否正确?
已尝试的解决方案
- 超参数调优,涵盖:
- 网络层数
- 优化器(RMSprop、Adam、SGD)
- LSTM/GRU单元数量
- Dropout比率
- 学习率(0.01、0.001、0.005)
- 滑动窗口批量大小(64、128、256)
- 前4层预热训练
- 更换数据缩放方法(QuantileScaler、MinMaxScaler、PowerTransformer)
参考文档
内容的提问来源于stack exchange,提问作者Pavol Krajkovič
相关产品推荐
相关产品推荐

