百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

「数字化」机器学习可轻松处理繁琐的压裂数据

itomcoil 2025-05-08 18:59 4 浏览

机器学习技术可准确高效地识别出压裂曲线中的数据节点,帮助工程师们处理繁琐的压裂数据。

编译丨TOM 影子

在水力压裂作业期间,每隔一秒就会记录泵送数据,并将之传输到现场,以csv格式保存。原始泵送数据中包含多个数据道,包括压力、泵速、净体积以及支撑剂浓度。收集数据后,现场工程师可在数据曲线上手动选择事件开始/结束时间、破裂压力、瞬时关井压力(ISIP)和拐点。手动处理过程费时且易出错,而且业内存在不同的解释方法,因此结果可靠性低。为了应对这一挑战,总部位于丹佛的一家油田技术公司正在使用机器学习技术,准确高效地识别大量压裂曲线中的数据节点。

石油圈原创,石油圈公众号:oilsns

01 方法

我们的目标是通过训练一种算法来自动选择事件过程,该算法针对的是一个庞大且多样的数据集。虽然这些数据集已被标记为最常见的解释,但没有对其进行显式编程。为此,利用云端软件收集原始数据(. csv文件),并标准化命名标准与单位,提供空白数据集与高效且有效的方法来可视化处理曲线,以实现最优的阶段选择。

在解决此问题时,该团队使用二进制分类来构建区分节点的模型,每个点标记为0或1。下图展示了如何使用这种方法,属于该阶段的泵送时间数据标记为1,不属于该阶段的泵送时间数据标记为0。模型可根据数据属性(自变量),赋予它们不同的标签特征(因变量),并把数据分成三个数据集:训练、验证与测试。该训练算法建立了一个模型,利用训练数据中识别的模式与趋势,来精确地分类(标记)节点。

验证数据集的格式与训练数据集相同,但阶段更少,可以对基于训练数据构建的各种模型进行公正的评价。将验证数据集中生成的0/1预测值,构建为混淆矩阵,并算出准确率、精确率与召回率。高精度、精确性与召回率是准确预测的基础。然后利用测试数据集,评估用于预测节点最终位置的最终模型(程序)。它拥有与训练、验证数据集相同的特性,但没有使用二进制分类。

石油圈原创,石油圈公众号:oilsns

02 开始/结束节点

标注出阶段的开始与结束节点非常重要,因为这些界限控制着该阶段的汇总计算。除了定义累积体积与泵送时间外,在计算平均压力、最大压力、泵速、浓度时,需要标记间隔来选择适当的数据。在次过程中,该团队使用泵压、泵速与净容积作为初始特征,来训练逻辑回归分类器。泵送数据集由179个阶段组成,每个变量共有1530445行数据。其中66%的数据用于训练模型,8%用于验证模型,其余26%用于测试模型。这三个数据集都包括各种阶段:一些简单“教科书式”的阶段,其中开始与结束时间很明显;另一些“混乱”的阶段,开始或结束时间比较异常,因此定位开始与结束时间更为困难。

通过计算二进制分类数据之间的差来确定开始与结束时间。若差值为正(标签从0切换到1),则识别确认为开始时间;若差值为负(标签从1切换到0),则识别确认为结束时间。这种结合了预测与后期处理 (取差值)的方法,可生成匹配的开始与结束时间列表。每个匹配的事件都被标注出变化的位置、作业时间、井名以及阶段编码。然后,通过过滤筛选来为每个阶段选择最合适的预测时间。尽管第一组试验产生的模型能够非常准确地预测0/1的标签,但组合过程产生了一长串预测值。该程序将泵速与压力的任何微小变化作为起始时间,并指定相应的结束时间,如下图。因此,通过增加额外的特征,可减少产生错误匹配的数量。

石油圈原创,石油圈公众号:

在第二轮模型训练中,利用简单的移动平均法,对特征进行预处理,使数据曲线更加平滑。移动平均法通过减少微小波动(噪音)来更好地突出变化趋势。该团队将变化率作为附加特性添加进来,并将L1正则化应用于模型培训。在逻辑回归中,通常使用L1正则化来生成忽略某些特征的模型。得到的模型往往更稳定且更容易解释。最终逻辑回归模型的训练与验证精度约为90%,而且,与手动标记的平均时间误差仅在10秒内。

石油圈原创,石油圈公众号:oilsns

03 ISIP标志寄存器

ISIP定义为最终注入压力与井眼、射孔或割缝管摩阻引起的压降之间的差值。ISIP节点位于泵送阶段的末尾,在关井之后、压力开始下降之前。在压力开始下降处画一条直线,结合压力为零的时间点来预估ISIP节点。随着数据收集变得愈发受限,业内对ISIP的选择也有所不同。通常情况下,停泵后则会停止收集数据,以节省操作时间(因此也节省了费用)。因此,泵速降为零后只记录了几秒钟的数据,由于没有压力下降,很难绘制出直线。在停工后,许多现场工程师依靠观察水击效应产生的第一或第二压力峰值来选择ISIP,所以产生了不同的结果。

针对如何选择ISIP节点,利用云端软件从北美各地的盆地收集了870个阶段的标准化数据。采用前文所述的二进制分类方案,来训练神经网络,以识别与分离计算ISIP所需的泵压图区域。如果数据属于泵压图的目标区域,则标记为1,否则标记为0。当神经网络识别出目标区域时,通过去除异常值进一步缩短时间序列。在该过程中,若某个数据与区域平均压力值有一个标准偏差,则被确认为异常点。最后,对降噪后的时间序列进行线性回归,预测泵速为0时的ISIP值。

在分离目标区域时,神经网络实现高达98%的分类准确度(针对训练与验证数据集)。随后对测试数据集进行线性回归,得到的ISIP预测值,与手动选取的值相比,平均准确率为±72psi,中位数准确率为±35psi,如下图所示。

石油圈原创,石油圈公众号:oilsns

04 结论

利用分类技术对大量水力压裂曲线的相关区域进行自动标注,可以简单有效的识别关键事件。准确的节点标注使处理大量的压裂数据成为可能,并减少了为质量控制而审查现场数据的时间。该方法的不足之处在于需要对新的现场数据进行周期性的再训练,以保持预测的准确性,提高预测的适应性。使用简单准确的模型有利于部署、调试,并能极其快速的预测以及再训练(更新模型)。

石油圈原创,石油圈公众号:oilsns

欢迎添加石油圈小编大安

微信号:13132031392

- END -

点击阅读原文, 阅读更多行业文章!

▼▼▼

免责声明:以上内容转载自石油圈,所发内容不代表本平台立场。全国能源信息平台联系电话 010-56002763,邮箱 hz@people-energy.com.cn

相关推荐

Excel新函数TEXTSPLIT太强大了,轻松搞定数据拆分!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!最近我把WPS软件升级到了版本号:12.1.0.15990的最新版本,最版本已经支持文本拆分函数TEXTSPLIT了,并...

Excel超强数据拆分函数TEXTSPLIT,从入门到精通!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!今天跟大家分享的是Excel超强数据拆分函数TEXTSPLIT,带你从入门到精通!TEXTSPLIT函数真是太强大了,轻松...

看完就会用的C++17特性总结(c++11常用新特性)

作者:taoklin,腾讯WXG后台开发一、简单特性1.namespace嵌套C++17使我们可以更加简洁使用命名空间:2.std::variant升级版的C语言Union在C++17之前,通...

plsql字符串分割浅谈(plsql字符集设置)

工作之中遇到的小问题,在此抛出问题,并给出解决方法。一方面是为了给自己留下深刻印象,另一方面给遇到相似问题的同学一个解决思路。如若其中有写的不好或者不对的地方也请不加不吝赐教,集思广益,共同进步。遇到...

javascript如何分割字符串(javascript切割字符串)

javascript如何分割字符串在JavaScript中,您可以使用字符串的`split()`方法来将一个字符串分割成一个数组。`split()`方法接收一个参数,这个参数指定了分割字符串的方式。如...

TextSplit函数的使用方法(入门+进阶+高级共八种用法10个公式)

在Excel和WPS新增的几十个函数中,如果按实用性+功能性排名,textsplit排第二,无函数敢排第一。因为它不仅使用简单,而且解决了以前用超复杂公式才能搞定的难题。今天小编用10个公式,让你彻底...

Python字符串split()方法使用技巧

在Python中,字符串操作可谓是基础且关键的技能,而今天咱们要重点攻克的“堡垒”——split()方法,它能将看似浑然一体的字符串,按照我们的需求进行拆分,极大地便利了数据处理与文本解析工作。基本语...

go语言中字符串常用的系统函数(golang 字符串)

最近由于工作比较忙,视频有段时间没有更新了,在这里跟大家说声抱歉了,我尽快抽些时间整理下视频今天就发一篇关于go语言的基础知识吧!我这我工作中用到的一些常用函数,汇总出来分享给大家,希望对...

无规律文本拆分,这些函数你得会(没有分隔符没规律数据拆分)

今天文章来源于表格学员训练营群内答疑,混合文本拆分。其实拆分不难,只要规则明确就好办。就怕规则不清晰,或者规则太多。那真是,Oh,mygod.如上图所示进行拆分,文字表达实在是有点难,所以小熊变身灵...

Python之文本解析:字符串格式化的逆操作?

引言前面的文章中,提到了关于Python中字符串中的相关操作,更多地涉及到了字符串的格式化,有些地方也称为字符串插值操作,本质上,就是把多个字符串拼接在一起,以固定的格式呈现。关于字符串的操作,其实还...

忘记【分列】吧,TEXTSPLIT拆分文本好用100倍

函数TEXTSPLIT的作用是:按分隔符将字符串拆分为行或列。仅ExcelM365版本可用。基本应用将A2单元格内容按逗号拆分。=TEXTSPLIT(A2,",")第二参数设置为逗号...

Excel365版本新函数TEXTSPLIT,专攻文本拆分

Excel中字符串的处理,拆分和合并是比较常见的需求。合并,当前最好用的函数非TEXTJOIN不可。拆分,Office365于2022年3月更新了一个专业函数:TEXTSPLIT语法参数:【...

站长在线Python精讲使用正则表达式的split()方法分割字符串详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用正则表达式的split()方法分割字符串详解》。使用正则表达式分割字符串在Python中使用正则表达式的split(...

Java中字符串分割的方法(java字符串切割方法)

技术背景在Java编程中,经常需要对字符串进行分割操作,例如将一个包含多个信息的字符串按照特定的分隔符拆分成多个子字符串。常见的应用场景包括解析CSV文件、处理网络请求参数等。实现步骤1.使用Str...

因为一个函数strtok踩坑,我被老工程师无情嘲笑了

在用C/C++实现字符串切割中,strtok函数经常用到,其主要作用是按照给定的字符集分隔字符串,并返回各子字符串。但是实际上,可不止有strtok(),还有strtok、strtok_s、strto...