LSTM,CNN-LSTM,SSA-CNN-LSTM三种算法做对比,进行多输入单输出的数据回归预测。 LSTM评价指标: RMSE = 0.08024 MSE = 0.0064385 MAE = 0.071505 MAPE = 0.05383 CNN-LSTM评价指标: RMSE = 0.06198 MSE = 0.005396 MAE = 0.05169 MAPE = 0.04695 SSA-CNN-LSTM评价指标: RMSE = 0.05269 MSE = 0.0039699 MAE = 0.042106 MAPE = 0.036987

在数据回归预测领域,有许多算法可供选择,今天咱们就来看看 LSTM、CNN - LSTM 和 SSA - CNN - LSTM 这三种算法在多输入单输出的数据回归预测中的表现。

算法简介

LSTM

长短期记忆网络(LSTM)是一种特殊的循环神经网络(RNN),它能有效解决传统 RNN 在处理长序列时的梯度消失或梯度爆炸问题。简单来说,LSTM 就像是一个聪明的记忆器,能记住长序列中的重要信息。下面是一个简单的 LSTM 模型构建代码示例:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense

model_lstm = Sequential()
model_lstm.add(LSTM(50, input_shape=(timesteps, input_dim)))
model_lstm.add(Dense(1))
model_lstm.compile(optimizer='adam', loss='mse')

代码分析:这里我们使用了 Keras 库来构建 LSTM 模型。首先创建一个顺序模型,然后添加一个包含 50 个神经元的 LSTM 层,输入形状由 timestepsinput_dim 决定。最后添加一个全连接层,输出维度为 1,因为我们是单输出预测。使用 adam 优化器和均方误差(MSE)作为损失函数进行编译。

CNN - LSTM

卷积神经网络 - 长短期记忆网络(CNN - LSTM)结合了 CNN 的特征提取能力和 LSTM 的序列处理能力。CNN 可以从输入数据中提取空间特征,然后将这些特征输入到 LSTM 中进行序列建模。下面是一个简单的 CNN - LSTM 模型构建代码示例:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense

model_cnn_lstm = Sequential()
model_cnn_lstm.add(Conv1D(filters=64, kernel_size=3, activation='relu', input_shape=(timesteps, input_dim)))
model_cnn_lstm.add(MaxPooling1D(pool_size=2))
model_cnn_lstm.add(LSTM(50))
model_cnn_lstm.add(Dense(1))
model_cnn_lstm.compile(optimizer='adam', loss='mse')

代码分析:在这个模型中,我们先添加了一个一维卷积层(Conv1D),它可以对输入序列进行卷积操作,提取局部特征。接着使用最大池化层(MaxPooling1D)对特征图进行下采样,减少数据维度。然后添加一个 LSTM 层和一个全连接层,最后同样使用 adam 优化器和 MSE 损失函数进行编译。

SSA - CNN - LSTM

奇异谱分析 - 卷积神经网络 - 长短期记忆网络(SSA - CNN - LSTM)在 CNN - LSTM 的基础上,引入了奇异谱分析(SSA)。SSA 可以对时间序列进行分解和重构,去除噪声,提取有用的成分。这样可以进一步提高模型的预测性能。

评价指标对比

我们使用了均方根误差(RMSE)、均方误差(MSE)、平均绝对误差(MAE)和平均绝对百分比误差(MAPE)这四个评价指标来衡量三种算法的性能。具体指标如下:

算法 RMSE MSE MAE MAPE
LSTM 0.08024 0.0064385 0.071505 0.05383
CNN - LSTM 0.06198 0.005396 0.05169 0.04695
SSA - CNN - LSTM 0.05269 0.0039699 0.042106 0.036987

从这些指标可以看出,SSA - CNN - LSTM 的各项指标都优于 LSTM 和 CNN - LSTM。RMSE 和 MSE 衡量的是预测值与真实值之间的平均误差,值越小说明模型的预测越准确。MAE 是绝对误差的平均值,能直观地反映预测值与真实值的偏差程度。MAPE 则是用百分比表示的误差,更适合用于比较不同规模数据集的预测误差。

LSTM,CNN-LSTM,SSA-CNN-LSTM三种算法做对比,进行多输入单输出的数据回归预测。 LSTM评价指标: RMSE = 0.08024 MSE = 0.0064385 MAE = 0.071505 MAPE = 0.05383 CNN-LSTM评价指标: RMSE = 0.06198 MSE = 0.005396 MAE = 0.05169 MAPE = 0.04695 SSA-CNN-LSTM评价指标: RMSE = 0.05269 MSE = 0.0039699 MAE = 0.042106 MAPE = 0.036987

综合来看,在多输入单输出的数据回归预测任务中,SSA - CNN - LSTM 表现最佳,CNN - LSTM 次之,LSTM 相对较差。不过,具体使用哪种算法还需要根据实际情况进行选择,比如数据的特点、计算资源等。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐