基于RBF与LSTM神经网络的水位预测方法对比研究
当深度学习遇上水文预报:两种主流神经网络在水位时序预测中的实战对决
1 研究背景
水位预测是水文预报领域的核心课题之一,直接关系到防洪减灾、水资源调度和水利工程安全。传统水位预测方法(如回归分析、ARIMA时间序列模型)依赖于人工构建的线性假设,难以捕捉水文系统中复杂的非线性动态特征。
近年来,随着人工智能技术的快速发展,神经网络凭借其强大的非线性拟合能力,在水文时序预测中展现出显著优势。本文聚焦两种代表性神经网络——RBF(径向基函数)神经网络与LSTM(长短期记忆)神经网络,基于连续三年的实测水位数据,系统对比两者在水位预测任务中的表现。
2 主要功能
本研究的核心功能包括:
- 数据预处理:对原始水位观测数据进行清洗、滑动窗口构造和归一化处理
- RBF神经网络建模:基于径向基函数构建前馈神经网络,实现水位时间序列预测
- LSTM神经网络建模:构建多层LSTM递归网络,充分利用水位数据的时间依赖性
- 模型性能评估:采用MAE、MAPE、MSE、RMSE四项指标量化对比两模型预测精度
- 可视化分析:生成预测曲线、误差分布图及相对误差对比图,直观展示模型表现
3 技术路线
本研究的完整技术路线如下:

原始水位数据
│
▼
数据预处理(滑动窗口构造,窗口大小=7天)
│
├─────────────────────┬─────────────────────┐
▼ ▼ ▼
训练集(前90%) 测试集(后10%) 归一化(mapminmax)
│ │
▼ │
RBF网络训练 │
│ newrb() │
│ goal=1e-5 │
│ spread=49 │
│ max neurons=343 │
│ │
├─────────────────────┤
│ │
▼ ▼
LSTM网络训练 模型预测
│ 3层LSTM │ sim() / predictAndUpdateState()
│ Adam优化器 │
│ 400 epochs │
│ │
▼ ▼
性能评估(MAE, MAPE, MSE, RMSE)
│
▼
结果可视化与对比分析
4 算法步骤
4.1 数据预处理
采用滑动窗口法构造监督学习样本。以连续7天水位数据作为输入特征 X=[xt−6,xt−5,…,xt]X = [x_{t-6}, x_{t-5}, …, x_t]X=[xt−6,xt−5,…,xt],预测第8天的水位值 y=xt+1y = x_{t+1}y=xt+1。
Xi=[xixi+1xi+2xi+3xi+4xi+5xi+6]T,yi=xi+7X_i = \\begin{bmatrix} x_i & x_{i+1} & x_{i+2} & x_{i+3} & x_{i+4} & x_{i+5} & x_{i+6} \\end{bmatrix}^T, \\quad y_i = x_{i+7}Xi=[xixi+1xi+2xi+3xi+4xi+5xi+6]T,yi=xi+7
将全部数据按 9:1 比例划分为训练集和测试集,并使用 mapminmax 函数对输入输出数据进行 [-1, 1] 区间归一化,消除量纲影响,加速网络收敛。
4.2 RBF神经网络训练
RBF网络是一种三层前馈网络,由输入层、隐含层(径向基层)和输出层组成。其核心思想是用径向基函数作为隐层神经元的激活函数,将低维输入映射到高维空间,使得在原空间中线性不可分的问题在高维空间中变得线性可分。
训练过程采用MATLAB的 newrb() 函数,该函数从0个隐层神经元开始,逐步增加神经元直至满足误差容限,实现了自适应网络结构构建。
4.3 LSTM神经网络训练
LSTM是一种特殊的循环神经网络,通过引入遗忘门、输入门和输出门三个门控机制,有效解决了传统RNN的梯度消失和长期依赖问题。
本研究构建了一个三层LSTM结构:
- 第一层(hidden1):40个LSTM单元 + Dropout(0.2)
- 第二层(hidden2):180个LSTM单元 + Dropout(0.3),输出完整序列
- 第三层(hidden3):10个LSTM单元 + Dropout(0.2)
采用 Adam优化器训练400个epoch,配合分段学习率衰减策略(每160个epoch衰减至原来的0.8倍),既保证了前期快速收敛,又提升了后期的参数微调精度。
5 公式原理
5.1 RBF神经网络
RBF网络隐含层第 jjj 个神经元的输出为高斯径向基函数:
ϕj(X)=exp(−∥X−Cj∥22σj2)\\phi_j(X) = \\exp\\left(-\\frac{\\|X – C_j\\|^2}{2\\sigma_j^2}\\right)ϕj(X)=exp(−2σj2∥X−Cj∥2)
其中:
- XXX 为输入向量(7维水位序列)
- CjC_jCj 为第 jjj 个RBF中心向量
- σj\\sigma_jσj 为扩散因子(spread),控制基函数的宽度
网络输出为隐层输出的线性加权组合:
y^=∑j=1Nwj⋅ϕj(X)+b\\hat{y} = \\sum_{j=1}^{N} w_j \\cdot \\phi_j(X) + by^=j=1∑Nwj⋅ϕj(X)+b
其中 wjw_jwj 为连接权重,bbb 为偏置项,NNN 为隐层神经元数量。
5.2 LSTM神经网络
LSTM单元的核心是其三个门控机制:
遗忘门:决定丢弃哪些历史信息
ft=σ(Wf⋅[ht−1,xt]+bf)f_t = \\sigma(W_f \\cdot [h_{t-1}, x_t] + b_f)ft=σ(Wf⋅[ht−1,xt]+bf)
输入门:决定将哪些新信息存入细胞状态
it=σ(Wi⋅[ht−1,xt]+bi)i_t = \\sigma(W_i \\cdot [h_{t-1}, x_t] + b_i)it=σ(Wi⋅[ht−1,xt]+bi)
C~t=tanh(WC⋅[ht−1,xt]+bC)\\tilde{C}_t = \\tanh(W_C \\cdot [h_{t-1}, x_t] + b_C)C~t=tanh(WC⋅[ht−1,xt]+bC)
细胞状态更新:
Ct=ft⊙Ct−1+it⊙C~tC_t = f_t \\odot C_{t-1} + i_t \\odot \\tilde{C}_tCt=ft⊙Ct−1+it⊙C~t
输出门:决定输出哪些信息
ot=σ(Wo⋅[ht−1,xt]+bo)o_t = \\sigma(W_o \\cdot [h_{t-1}, x_t] + b_o)ot=σ(Wo⋅[ht−1,xt]+bo)
ht=ot⊙tanh(Ct)h_t = o_t \\odot \\tanh(C_t)ht=ot⊙tanh(Ct)
其中 σ\\sigmaσ 为sigmoid函数,tanh\\tanhtanh 为双曲正切函数,⊙\\odot⊙ 表示逐元素乘法。
5.3 评估指标
| MAE | $\\frac{1}{n}\\sum_{i=1}^{n} | y_i – \\hat{y}_i |
| MAPE | $\\frac{1}{n}\\sum_{i=1}^{n}\\left | \\frac{y_i – \\hat{y}_i}{y_i}\\right |
| MSE | 1n∑i=1n(yi−y^i)2\\frac{1}{n}\\sum_{i=1}^{n}(y_i – \\hat{y}_i)^2n1∑i=1n(yi−y^i)2 | 均方误差 |
| RMSE | 1n∑i=1n(yi−y^i)2\\sqrt{\\frac{1}{n}\\sum_{i=1}^{n}(y_i – \\hat{y}_i)^2}n1∑i=1n(yi−y^i)2 | 均方根误差 |
6 参数设定
6.1 数据参数
| 数据时间范围 | 2013.01.01 ~ 2015.12.31 | 连续三年日水位观测数据 |
| 滑动窗口大小 | 7天 | 用前7天预测第8天 |
| 训练集比例 | 90% | 前90%数据用于训练 |
| 测试集比例 | 10% | 后10%数据用于测试 |
6.2 RBF网络参数
| 目标误差(goal) | 1×10−51 \\times 10^{-5}1×10−5 | MSE训练容限 |
| 扩散因子(spread) | 494949(即 727^272) | 控制高斯核宽度 |
| 最大神经元数(N) | 343343343(即 737^373) | 隐层神经元上限 |
| 实际达到神经元数 | 300 | 训练收敛时的神经元数 |
RBF训练过程中误差变化:
NEWRB, neurons = 0, MSE = 0.4392 → neurons = 300, MSE ≈ 0.0005
从初始MSE约0.44下降到约0.0005,训练误差收敛约3个数量级,表明RBF网络对训练数据的拟合能力极强。
6.3 LSTM网络参数
| 第一层LSTM单元数 | 40 | 捕捉短期时序模式 |
| 第二层LSTM单元数 | 180 | 深层特征提取 |
| 第三层LSTM单元数 | 10 | 特征压缩与抽象 |
| Dropout率 | 0.2 / 0.3 / 0.2 | 防止过拟合 |
| 优化器 | Adam | 自适应矩估计优化 |
| 初始学习率 | 0.005 | 学习步长 |
| 最大训练轮数 | 400 | 遍历样本总次数 |
| 学习率衰减策略 | piecewise | 分段衰减 |
| 衰减周期 | 160 epochs | 每160轮衰减一次 |
| 衰减因子 | 0.8 | 学习率乘以0.8 |
| 梯度阈值 | 1 | 防止梯度爆炸 |
| 运行环境 | GPU | 加速训练 |
7 实验结果
7.1 模型性能对比
| MAE(平均绝对误差) | 0.1871 | 0.4064 | ✅ RBF |
| MAPE(平均绝对百分比误差) | 0.0012 | 0.0026 | ✅ RBF |
| MSE(均方误差) | 0.1038 | 0.2767 | ✅ RBF |
| RMSE(均方根误差) | 0.3222 | 0.6113 | ✅ RBF |
7.2 结果分析
RBF网络在所有四项评估指标上均优于LSTM网络,具体表现为:
- RBF的MAE(0.1871m)约为LSTM(0.4064m)的 46%,预测偏差更小
- RBF的MAPE仅0.12%,说明平均情况下预测值与真实值的偏差不超过千分之二
- RBF的MSE(0.1038)约为LSTM(0.2767)的 38%,整体误差分布更集中
RBF表现更优的可能原因:
值得注意的是,LSTM在数据量更大、长周期依赖更显著的场景中通常更有优势,本实验的结论需要在特定数据条件下理解。
















8 运行环境
| 操作系统 | Windows 10/11 |
| MATLAB版本 | R2018b 及以上 |
| 必需工具箱 | Deep Learning Toolbox(LSTM训练) |
| GPU支持 | 推荐(LSTM训练为GPU模式) |
| 依赖函数 | newrb(RBF)、trainNetwork(LSTM)、mapminmax(归一化) |
| 数据格式 | .mat 文件(MATLAB自有格式) |
若无可用的GPU环境,可将LSTM训练选项中的 'ExecutionEnvironment' 从 'gpu' 修改为 'cpu',训练时间会相应增加。
9 应用场景
本研究的RBF与LSTM水位预测方法可广泛应用于以下场景:
9.1 防洪减灾预警
基于历史水位数据训练的预测模型,可对未来1~7天的水位变化进行滚动预报,为防汛部门提供决策支撑,提前制定人员转移和物资调配方案。
9.2 水库优化调度
结合水位预测结果,水库管理单位可以动态调整蓄水与泄洪策略,在保障安全的前提下最大化水资源利用效率。
9.3 城市内涝监测
在城市排水系统中部署水位传感器,利用实时数据驱动预测模型,提前预判排水管网超负荷风险点,实现内涝风险的主动防控。
9.4 航运安全保障
内河航道水位直接影响船舶通航安全,通过水位预测可为航运部门提供航道水深预报,辅助通航管理和船舶装载决策。
9.5 生态流量管理
对于生态敏感水域,水位预测有助于维持最小生态流量,平衡人类用水需求与水生生态保护。
10 总结与展望
本文基于MATLAB平台,分别采用RBF和LSTM两种神经网络对实测水位时序数据进行了建模预测。实验结果表明,在当前数据条件下,RBF神经网络以显著的精度优势胜出,四项核心指标(MAE、MAPE、MSE、RMSE)均优于LSTM,展现了RBF在中小规模时序预测任务中的实用价值。
未来改进方向:
- 引入多源数据融合(降雨量、蒸发量、上游来水量等气象水文因子),提升模型对复杂水文过程的表达能力
- 探索混合模型策略,如利用LSTM提取时序特征后由RBF进行局部回归
- 将研究方法扩展到多站点联合预测,构建流域尺度的水位预报体系
- 引入注意力机制增强模型对关键时间节点的感知能力
💡 技术交流:欢迎读者在评论区分享水文预测领域的实践经验与心得体会,共同推动智能水文预报技术的发展与应用。
本文涉及的数据、代码及可视化图表均为实际运行产出,可复现验证。如需获取完整代码与数据,欢迎在后台留言交流。




