当前时间: 2026-06-19 14:12:16
分类:办公文件
评论(0)
Petrel 2024.6 机器学习插件做储层地质建模的同行都有体会,岩相空间展布是物性参数建模的基础,而传统基于变差函数的序贯指示模拟(SIS),在面对非均质性强、井网稀疏的复杂储层时,往往力不从心——变差函数拟合的主观性、对硬数据的过度依赖、以及无法有效融合多属性信息,常让最终模型在盲井验证时“差一口气”。 Petrel 2024.6 集成的机器学习辅助岩相预测插件,提供了一条不同的路径。它允许我们直接利用多口井的测井曲线(GR、SP、DT、电阻率等)作为特征输入,通过监督学习算法训练岩相分类器,然后将分类结果作为软概率约束,再结合地质统计方法进行空间展布模拟。这种“数据驱动+地质约束”的混合思路,在我最近的一个碎屑岩储层项目中,显著提高了薄砂层的预测精度。 一、数据准备与特征工程 插件支持标准的 LAS 或 ASCII 格式测井数据。关键一步是岩相标签的标定——必须基于岩心描述或成像测井解释,建立准确的“岩相-测井响应”对应关系。我用的目标是三类:砂岩、泥岩、粉砂质泥岩。 特征选择上,除了常用的 GR、SP、RT 外,我还加入了计算属性:如中子-密度交会指示、自然伽马相对值、以及基于小波变换的曲线高频分量(用于识别薄互层)。插件允许自定义公式,这一点比很多独立 ML 工具更灵活。 数据清洗需特别注意:剔除井径扩径段、裂缝发育段等非代表性数据,防止异常 二、训练集构建与模型选择 插件内置了随机森林、梯度提升树、支持向量机(SVM)和浅层神经网络。经过多轮交叉验证,随机森林在我这个案例中表现最优(AUC 0.92),主要是因为它对异常值和缺失数据容忍度高,且能给出特征重要性排序。 训练集的划分遵循“同一油田、不同井”原则——用 70% 的井作为训练,30% 作为盲测,避免同一口井的数据同时进入训练和验证,防止过度乐观的精度评估。 决策树数量:从 100 开始,逐步增加,发现 300 棵后精度趋于稳定。 三、预测结果与地质统计方法的对比 将训练好的模型应用于所有井的未解释段,输出每条曲线对应深度的岩相概率(三分类概率之和为 1)。然后,将这些概率体作为“软数据”,导入到 Petrel 的序贯指示模拟模块中,替代传统的单一变差函数模型。 与纯 SIS 方法对比,混合模型的盲井验证吻合率从 78% 提升至 86%,尤其是厚度小于 2 米的薄砂层,识别率提高了近 20%。但我也注意到,在岩性过渡带(如砂泥互层),模型容易出现“锯齿状”预测,需要后续结合沉积模式进行平 滑处理。 四、几点经验教训 地质约束不可少:纯数据驱动的 ML 模型可能在局部产生不符合沉积规律的异常点,我采用了“沉积相分区建模”策略,对不同相带分别训练子模型,效果更稳定。 不平衡样本的处理:泥岩样品远多于砂岩,导致模型偏向预测泥岩。我通过 SMOTE 过采样和代价敏感学习(调高砂岩类别的权重)予以缓解。 可解释性:随机森林的特征重要性排序显示,GR 和 DT 贡献最大,这与沉积学认识一致,增强了模型可信度。 计算资源:300 棵树、200 口井、每口井 1000 个深度点,训练时间约 3 分钟(Intel i7 笔记本),可以接受。
上一篇AI两步出城市旅游行程图!提示词分享
下一篇盘点农村渐渐消失的8样老物件,认识四样说明你已经老了,全认识的真不简单……
基本
文件
流程
错误
SQL
调试
请求信息 : 2026-06-19 14:12:37 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/771739.html 运行时间 : 0.100622s [ 吞吐率:9.94req/s ] 内存消耗:4,545.47kb 文件加载:145 缓存信息 : 0 reads,0 writes 会话信息 : SESSION_ID=84058730ae09dfef158ff755dbab001b
CONNECT:[ UseTime:0.000603s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4 SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000865s ] SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000324s ] SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000276s ] SHOW FULL COLUMNS FROM `set` [ RunTime:0.000506s ] SELECT * FROM `set` [ RunTime:0.000201s ] SHOW FULL COLUMNS FROM `article` [ RunTime:0.000625s ] SELECT * FROM `article` WHERE `id` = 771739 LIMIT 1 [ RunTime:0.002728s ] UPDATE `article` SET `lasttime` = 1781849557 WHERE `id` = 771739 [ RunTime:0.001204s ] SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000247s ] SELECT * FROM `article` WHERE `id` < 771739 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000431s ] SELECT * FROM `article` WHERE `id` > 771739 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000429s ] SELECT * FROM `article` WHERE `id` < 771739 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000635s ] SELECT * FROM `article` WHERE `id` < 771739 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004109s ] SELECT * FROM `article` WHERE `id` < 771739 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004842s ]
0.102404s