一、Gitee 远程仓库:
https://gitee.com/zhengzhuoying/oil-smart-forecast.git
这个项目是干什么的?
这是一个油气井产量智能预测项目,解决的核心问题是:
能不能不反复跑耗时的 CMG 数值模拟,就快速预测某工况下油井未来的产量?
背景
油田开发中,五点井网(四周注水井 + 中间生产井)很常见。要评估新注入参数(井底流压 BHP、井口压力 STG)下的产能,传统做法是:
- 在 CMG 里重新建模、调参
- 长时间数值模拟(一组工况可能要跑很久)
- 多工况批量仿真成本很高
这个项目怎么做
项目用 CMG 已经模拟好的 50 组工况、15 年产量数据,训练深度学习模型,学会「工况参数 + 历史产量 → 下一时刻产量」的映射关系。
具体流程:
- 读数据:训练集 30 组、验证集 10 组、测试集 10 组
- 洗数据:处理缺失值、负值、异常值
- 造样本:用前 5 个时间步(8 个注入参数 + 历史产量)预测第 6 步产量
- 训模型:CNN、LSTM、CNN-LSTM 三个模型对比
- 做评估:R²、RMSE、MAE,以及散点图、时序对比图、敏感性分析等
实际意义
训练完成后,给定一组注入工况和历史产量,模型可以秒级给出产量预测,替代重复、耗时的 CMG 数值模拟,用于:
- 快速评估新工况产能
- 辅助注入参数优化
- 为智能油田 / 产能预判提供数据支撑
二、生成的结果:
在figures文件夹里面
一、单模型训练与评估图(每个模型 3 张,共 9 张)
CNN、LSTM、CNN-LSTM各有一套,文件名前缀对应模型名。
1.*_loss_curve.png— 训练与验证损失曲线
- 横轴:训练轮数(Epoch)
- 纵轴:Loss(均方误差 MSE,越小越好)
- 两条线:
- 蓝/训练损失:模型在训练集上的误差
- 橙/验证损失:模型在验证集上的误差
怎么看:
- 两条线都下降 → 模型在学习
- 训练 loss 一直降、验证 loss 上升或震荡 → 可能过拟合
- 验证 loss 不再下降时早停 → 避免过拟合
2.*_scatter.png— 真实值 vs 预测值散点图
- 横轴:真实产量(m³/day)
- 纵轴:模型预测产量(m³/day)
- 红色虚线:理想对角线(预测 = 真实)
怎么看:
- 点越靠近对角线 → 预测越准
- 点系统性偏对角线上方/下方 → 模型整体高估或低估
- 点很散 → 误差大、稳定性差
3.*_error_dist.png— 误差分布直方图
- 横轴:预测误差 = 真实值 − 预测值(m³/day)
- 纵轴:该误差出现的次数(频数)
- 红色虚线:误差为 0
怎么看:
- 峰值在 0 附近 → 无偏、较准
- 整体偏正/负 → 系统性高估或低估
- 分布越窄 → 误差越稳定
- 接近正态、中心在 0 → 模型较理想
二、三模型横向对比图(2 张)
4.models_comparison.png— 指标柱状对比图
三个子图分别是 R²、RMSE、MAE 在三个模型上的对比。
| 指标 | 含义 | 好坏 |
|---|---|---|
R² | 拟合优度,越接近 1 越好 | 越高越好 |
RMSE | 均方根误差(m³/day) | 越低越好 |
MAE | 平均绝对误差(m³/day) | 越低越好 |
用途: 一眼看出哪个模型综合最好(你这次 CNN 的 R² 最高)。
5.errors_boxplot.png— 预测误差箱线图
- 每个箱子:一个模型在测试集上所有样本的误差分布
- 箱体:中间 50% 误差的范围
- 中线:误差中位数
- 须线 / 圆点:正常范围外的离群点
怎么看:
- 箱体越矮、越靠近 0 → 误差小且集中
- 中位数离 0 远 → 有系统偏差
- 箱子高或须线长 → 误差波动大、稳定性差
三、时序预测效果对比图(2 张)
6.10_test_cases_comparison.png— 10 个测试工况时序对比
- 10 个子图:测试集 10 个 case(case_41 ~ case_50)
- 横轴:时间步
- 纵轴:产量(m³/day)
- 实线:真实产量
- 虚线:最优模型(CNN)预测产量
怎么看:
- 两条线贴合 → 该工况预测好
- 明显偏离 → 该工况难预测或模型不足
- 整体趋势(升/降)是否跟对
用途: 不只看整体指标,还看每个工况上的时序表现。
7.multi_model_case_comparison.png— 单工况三模型对比
- 选一个测试工况(如 case_41)
- 黑实线:真实产量
- 彩色虚线:CNN、LSTM、CNN-LSTM 的预测
怎么看:
- 哪条虚线最接近黑线 → 该工况下哪个模型更好
- 能否跟上拐点、下降段
用途: 比较三个模型在同一条时序上的差异,而不只是平均指标。
四、敏感性分析图(1 张)
8.sensitivity_analysis.png— 输入特征敏感性分析
- 9 个子图:8 个注入参数 + 1 个历史产量(Oil_Rate)
- 横轴:该特征在合理范围内的变化
- 纵轴:模型预测的产量(m³/day)
- 方法:固定一个测试样本,只改变某一个特征,看预测产量如何变
怎么看:
- 曲线陡 → 模型对该特征敏感,改动影响大
- 曲线平 → 不敏感,改动影响小
- 上升/下降 → 特征增大时产量升还是降
用途: 理解模型更依赖哪些输入(如某口井 BHP、STG),对工程调参有参考意义。
总结对照表
| 图片 | 回答的问题 |
|---|---|
损失曲线 | 训练是否正常?有没有过拟合? |
散点图 | 预测值和真实值整体一致吗? |
误差直方图 | 误差大不大?有没有系统性偏差? |
指标柱状图 | 三个模型谁更好? |
误差箱线图 | 哪个模型更稳?离群点多不多? |
10 工况曲线 | 每个测试井预测得怎么样? |
单工况多模型 | 同一条时序上谁更准? |
敏感性分析 | 哪些输入对产量影响最大? |