1. 课程导入与水质预测价值

水产养殖的水质管理有一个绕不开的矛盾:水质变化是连续的,而人工检测是离散的。养殖户一天测两次溶氧、一次pH,中间十几个小时里水体发生了什么,往往只能靠经验推断。等到发现鱼虾浮头再开增氧机,损失可能已经发生。水质趋势预测要解决的,正是这个“检测间隙”里的信息盲区——用已有的历史监测数据,推断未来数小时到数天的关键水质指标走向,把被动应对变成提前干预。

从技术角度看,水质趋势预测属于典型的时间序列预测问题。输入是带时间戳的多变量序列,例如每10分钟一条的溶氧、水温、pH、氨氮记录;输出是未来一段时间内某个或某几个指标的预测值。它与简单阈值报警的本质区别在于:阈值报警回答“现在是否超标”,趋势预测回答“按当前变化速度,多久后会超标”。后者给出的是一段可用的处置窗口,这正是养殖现场最需要的信息。

典型应用场景

第一个场景是夜间溶氧预警。溶氧受光合作用与呼吸作用共同支配,白天藻类产氧、夜间耗氧,凌晨前后通常是全天最低点。若傍晚测得溶氧为5.2 mg/L且处于下降通道,模型可预测凌晨4点前后可能跌破3 mg/L的警戒线,养殖人员就能在入夜前提前开启增氧设备,而不是等到报警响起。

第二个场景是天气突变前的预判。连续阴雨、气压骤降会削弱藻类产氧并加剧水体分层,溶氧曲线形态会发生明显改变。将气象预报作为外生变量引入模型,可以提前识别这类风险窗口。

第三个场景是投喂与换水的决策支持。过量投喂会推高氨氮,换水则改变水温与pH的稳定性。预测结果可以帮助判断“今天这顿料是否要减量”“换水安排在上午还是傍晚更稳妥”。

第四个场景是设备联动。预测值可以直接作为控制逻辑的输入,例如预测未来2小时溶氧低于阈值时自动启动增氧机,形成“预测—决策—执行”的闭环。

课程项目全景

本课程以一个贯穿始终的项目为主线:基于多变量时间序列的池塘溶氧趋势预测系统。项目从数据获取开始,经过清洗、特征构造、建模、评估,最终形成一个可以对未来若干小时溶氧给出预测值并附带风险提示的可运行程序。课程不追求复杂模型堆叠,而是强调一条完整、可复现、可解释的技术链路。

下图展示了本课程项目的整体数据流与各阶段之间的依赖关系,可以看到原始监测数据如何一步步转化为可用的预测输出,以及评估与反馈环节在链路中的位置。

池塘溶氧趋势预测项目:数据流与学习路径 原始监测数据 溶氧 / 水温 / pH 10 分钟采样间隔 数据清洗 缺失值插补 异常点识别与剔除 特征构造 滑动窗口统计量 时间与气象外生变量 模型训练 基线模型 → 时序模型 滚动预测多步输出 评估与回测 MAE / RMSE 按时段统计 凌晨低谷段单独考察 误差反馈调参 预测输出与风险提示 未来 2~6 小时溶氧预测曲线 + 跌破阈值的时间点 增氧机启动建议 / 投喂减量提示 学习路径(由下至上逐层推进) ① 水质基础与 数据获取 ② 数据清洗与 探索性分析 ③ 特征工程与 序列构造 ④ 模型训练与 多步预测 ⑤ 评估、部署与 预警联动

从“是什么”到“怎么做”

以夜间溶氧预警为例,把链路走一遍会更清楚。假设某池塘每10分钟采集一次数据,一天144条记录,字段包括时间戳、溶氧、水温、pH。第一步是清洗:传感器偶发掉线会产生空值,探头结垢会产生长时间恒定不变的“假平稳”段,这些都要识别出来。常用做法是对短缺口做线性插值,对超过30分钟的连续缺失标记为无效段而不强行填补,避免引入虚假趋势。

第二步是构造监督学习样本。设用过去2小时(12个点)的溶氧、水温、pH序列预测未来1小时(6个点)的溶氧,则每个样本的输入是36维(3变量×12步),输出是6维。滑动窗口沿时间轴平移即可批量生成样本。这里必须注意按时间切分训练集与测试集,不能随机打乱,否则未来信息会泄漏到训练中,评估结果会虚高。

第三步是建模与评估。可以先建立一个朴素基线:直接用当前时刻的溶氧值作为未来预测值,计算其MAE作为参照。任何模型若不能明显优于这个基线,就说明它没有学到有效规律。随后再引入带时间依赖的模型,并重点考察凌晨2点至6点这一时段的误差,因为该时段才是预警真正发挥作用的窗口。

第四步是输出与判断。预测结果不应只给一条曲线,还应给出“预计在几点几分跌破3 mg/L”这样的可执行结论,并附带置信区间。若预测值接近阈值而区间较宽,说明不确定性大,此时宜采取保守策略提前增氧,而不是等待确认。

学习本课程时,建议始终围绕一个真实或仿真的池塘数据集推进。每学完一个环节,就把该环节的代码接入同一条流水线,最终得到一个能对指定时间段输出预测曲线的完整脚本。这种“边学边接”的方式比孤立地学算法更容易形成工程直觉。