考虑数据不平衡影响的钻井复杂智能诊断方法
2022-01-04谭天一张辉马丹妮路宗羽吴怡焦金刚
谭天一 张辉 马丹妮 路宗羽 吴怡 焦金刚
1. 中国石油大学(北京)石油工程学院;2. 中国石油新疆油田分公司;3. 中海石油(中国)有限公司北京研究中心
随着油气资源的不断开发,钻井工程的重要性日益突出,而钻井复杂问题严重制约着钻井作业的顺利开展。据统计,近年来用于处理钻井过程中复杂情况及事故的非生产时间(NPT),占总施工时间的6%~8%[1],造成了巨大的经济损失。
为了有效解决钻井复杂问题,需要钻井工作者及时诊断异常情况。目前,钻井现场工作人员对钻井复杂的诊断,主要依赖钻井领域专家的经验,归纳各种钻井复杂的地面表征(如大钩载荷、立管压力、出口排量等参数的变化),总结形成相应的判断流程[1-2]。但由于人力的局限性,无法全面分析海量的钻井数据,不能深入挖掘钻井参数与钻井工况之间的内在联系,因此其诊断钻井复杂的能力有限。近年来,随着人工智能和数据分析领域的兴起,运用机器学习算法来分析钻井数据、建立钻井复杂智能诊断方法逐渐成为可能。季雯宇[3]、汪洋[4]等运用神经网络等算法建立了卡钻事故的识别方法;徐宝昌等[5]运用自适应观测器和独立主元分析来监测钻井气侵的发生;连志龙等[6]运用BP神经网络算法诊断井漏情况;Liang等[7]基于粒子群算法优化支持向量机(PSO-SVM)建立了井漏风险的动态评估方法;王茜等[8]将物理模型与人工智能、数据挖掘相结合,实现对机械卡钻的实时预测和对井涌情况的实时监测;史肖燕等[9]基于随机森林算法建立了溢流、漏失情况的实时判断方法;王江萍等[10]运用神经网络对井漏、井塌、井涌和井喷等多种复杂情况进行识别;马鹏鹏等[11]研发的钻井风险控制系统,已实现基于模糊综合评价和BP神经网络对钻井复杂进行实时诊断与预测;沈建文等[12]基于神经网络算法,建立了针对川西深井的钻井风险识别系统。
前人的研究多致力于选用合适的机器学习算法来诊断、监测或预测各类钻井复杂或事故。而运用效果的优劣,除了受算法本身的影响,还很大程度上依赖于数据的质量。对于钻井复杂这一问题,其数据具有天然的缺点:数据不平衡。即绝大多数数据是对正常钻井作业的记录,只有少量数据记载了钻井复杂情况。数据不平衡会使机器学习算法倾向于将结果划分到多数样本的类别,导致钻井复杂情况被误判为正常钻井情况。
决策树作为分类算法中重要的一支,被广泛运用于各个工程领域。其具有构造时间短、可解释及易可视化等优点[13],可作为基分类器构造随机森林等集成学习算法。笔者引入错误分类成本以修正数据不平衡的影响,基于决策树模型建立了以最小错误分类成本期望值为分类目标的钻井复杂智能诊断方法,并通过现场实例说明其较之传统模型的优势。
1 基于决策树的钻井复杂诊断方法
1.1 钻井数据收集与预处理
在钻井作业时,地面测得的各项钻井参数可以反映井下状况,钻井复杂的诊断也依赖于对地面数据的分析。所需参数主要包括大钩载荷、转盘/顶驱扭矩、排量、钻压、转速、立管压力、套管压力、泥浆池总体积等。上述参数通常记录在井史、完井总结报告、综合录井记录、工程异常记录等钻井资料中。将钻井参数从资料中提取后,生成按时序排列[9]或按井深排列[14]的原始参数表。
原始钻井参数并不适用于诊断模型的训练,需要将其处理为能反映钻井状态的样本。当钻井复杂发生时,通常会导致地面参数出现异常波动,不同的钻井复杂所表现的波动形式不同。故使用参数波动幅度作为特征值。
式中,Vi为 钻井参数反映的特征值;Pi+1、Pi为相邻的钻井参数值。
其次,钻井资料中的钻井参数通常以散点值的形式记录,通过式(1)计算得到的波幅也为散点值。如果将所有的散点值直接作为输入用于模型训练,会导致特征过多。将反映相同钻井情况的散点值分级,作为新的特征值用于训练,既可以降低运算成本,又可以提高模型的泛化能力。各个钻井参数的分级标准需依据该参数的分布特点而定。
1.2 决策树分类原理
决策树分类算法可以视作一系列if-then条件语句的集合[15],每次对某特征的判定会决定其下一次判断的支路方向。传统的钻井复杂专家诊断方法也可以归纳为决策树的形式,如图1中的决策树基于5个特征(钻井工况、大钩载荷、立管压力、转盘扭矩及转盘转速)诊断是否会有砂桥卡钻发生[4]。
图1 划眼工况砂桥卡钻诊断决策树Fig. 1 Decision tree of diagnosing sand bridge sticking accident under the working condition of reaming
1.3 决策树的训练
图1 的决策树是基于专家经验总结的诊断逻辑表绘制而成,而钻井复杂智能诊断需要基于钻井数据训练得到决策树。决策树的训练以递归方式进行,流程为[15-16]:(1)选择目前最优的分类特征;(2)以该特征中每一个值生成一个分支,将符合该特征值的样本划分到该分支下;(3)对每一个分支,将该分支路径下已选过的特征排除后,执行步骤1和步骤2;(4)当步骤1已无可选特征时,该分支节点为叶节点,类别为其中多数样本的类别。
1.4 最优特征的选择
由上文可知,训练决策树的重要步骤之一为选出当前最优的分类特征。分类特征的优劣可以用信息增益来衡量[16]。信息增益反映了样本集依据该特征分类后纯度的提高,其表达式为
式中,G为 信息增益;Ep为父节点样本集的信息熵;n为按该特征分类得到的子节点个数(即分支节点数);Np为 父节点样本集中的样本总数;Nci为第i个子节点样本集的样本数量;Eci为 第i个子节点样本集的信息熵。
其中,信息熵为一个样本集纯度的衡量指标。信息熵越低,表明该样本集的混乱程度越低,纯度越高。信息熵的计算公式为
式中,E为信息熵;m为 样本集中样本的类别数;Nj为第j类样本的数量;N为样本集中的样本总数。
2 钻井数据不平衡的处理方法
数据不平衡是指训练集中各个类别的样本数量明显不均。传统的分类方法通常以追求更高的分类准确率为训练目标,致使其分类标准往多数类倾斜。现通过一个简单的例子来说明。假设某钻井数据样本集如表1所示,该样本集共有6个样本。为简化问题,假设样本仅有特征X,该特征有A和a两种值。每个样本标签指示有无发生钻井复杂。
表1 数据不平衡样本Table 1 Sample of data imbalance
由表1可看出,若以该样本集作为训练集来生成决策树,特征X=A的样本1、2和3都没有钻井复杂,故生成的决策树必然会将X=A的样本分类为 “无钻井复杂”。而同为X=a的后三个样本中,出现了“无”和“有”两种标签,且比例为2∶1。若决策树将特征为X=a的样本分类为“无”,仅会对样本6分类出错,训练准确率为83.3%;若将特征为X=a的样本分类为“有”,会对样本4和5都分类出错,训练准确率为66.7%。因此,在以高准确率为训练目的时,生成的决策树会以前者为分类策略,导致类似样本6的钻井复杂被忽略。
为解决数据不平衡的问题,目前机器学习领域的研究人员主要从数据预处理、特征和算法三方面入手[17]。各种方法都有其优点和局限性,钻井行业的工作者为解决本领域的问题,应从自身工程目的出发,选择适合的解决方案。钻井工程的目的是以最低的成本建成一口井,而传统的分类算法通常以实现最高的准确率为训练目标,低成本和高准确率并不一定同步。
在上例中,钻井工程师之所以无法接受将X=a判断为非钻井复杂类,是因为从工程常识可知,无法识别出钻井复杂往往会导致更严重的损失,即使该分类策略的准确率更高。因此,以降低成本为目标来训练诊断模型,更符合钻井工程的需求。此处的成本应为模型诊断错误所产生的额外工程成本,即错误分类成本。以卡钻复杂为例,若模型将非卡钻点误判为卡钻点,工程师则会花费不必要的人力物力去执行划眼、循环洗井等作业,来消除并不存在的卡钻复杂;若模型将卡钻点识别为非卡钻点,后续产生的钻具被埋、井眼废弃等事故即为错误分类成本。
因此,应将传统的机器学习方法优化为代价敏感的学习方法,将学习的目标函数定为最低的错误分类成本期望值[18-19]
式中,L(x,i)为 将样本x划 分为i类的错误分类成本期望;P(j|x)为 样本x属 于j类的概率;C(i,j)为 将i类样本划分为j类的分类成本。
在实际的模型训练过程中,可以通过修改类别权重来实现将最低错误分类成本设为目标函数。传统的训练模型默认各类权重相同,故在前文1.3节流程第(4)步中,选择数量最多的类为该叶节点的类。考虑错误分类成本后,将各类的权重设置为其错误分类成本,选择总权重最低的类为叶节点的类。
由前文基于额外工程成本的设定可知,分类正确的成本C(i,i)=C(j,j)=0。以表1情况为例,作出其错误分类成本矩阵,如表2所示。
表2 错误分类成本矩阵Table 2 Matrix of mis-classification cost
值得注意的是,模型求得的最小错误分类成本期望L(x,i)min仍可能较大。因此需要根据工程实际,设定许用成本上限La。当满足此时模型才是可靠有效的。否则,还需通过其他途径进一步改进诊断方法,如寻找更多有效特征,区分钻井复杂样本和非钻井复杂样本。
3 实例分析
以川渝地区某页岩气水平井为例,基于决策树建立考虑数据不平衡影响的智能识别模型,以卡钻复杂为识别目标。原始数据从录井资料、井史资料、完井总结报告和工程异常记录等文件收集整理而得,具有代表性的部分数据如表3所示。选用大钩载荷、扭矩、转速、钻压、大钩位置、立管压力、排量和套管压力等8种钻井参数来生成样本特征。
表3 部分原始数据Table 3 Partial initial data
按前文所述,对原始数据进行预处理和分级,生成训练模型所需的样本。类别标签用0表示“否”,1表示“是”。部分样本数据见表4。
表4 部分样本集Table 4 Partial sample set
若按传统的决策树分类模型进行训练,该样本集训练准确度为99.95%,但会将8号样本判定为未卡钻。因此,当该模型运用于测试或实际作业中时,将无法识别类似8号样本的卡钻情况。究其原因,是因为8号样本与1、3、5号样本特征一致,而这3个样本的标签为“否”。为了实现更高准确率,传统模型将该特征的样本都分类为未卡钻。
新模型将错误分类成本引入模型中。假设通过洗井、划眼等方法处理一次卡钻风险的成本为5万元,而发生卡钻事故后造成的经济损失为100万元,许用成本上限La为10万元。计算可得,将该特征的样本划分为卡钻的错误分类成本期望为
划分为非卡钻的成本期望为
将该特征样本划分为非卡钻的分类方式与传统模型的分类方式相同,故传统模型的成本期望也为25万元。比较可知,将该特征的样本划分为卡钻的错误分类成本期望,既小于将其划分为非卡钻的成本期望,又小于许用成本上限。因此,改进后的决策树会将8号卡钻样本识别出来,且成本期望比传统方法降低85%。
4 结论
(1)现场资料中的钻井资料常有数据不平衡的特点,表现为记录钻井复杂的数据量远少于记录正常作业的数据量。数据不平衡会导致传统分类算法向多数类倾斜,导致少数类的钻井复杂情况无法被有效识别。
(2)基于决策树方法,引入错误分类成本来处理数据不平衡问题,将传统分类模型的训练目标从实现准确率最高改进为实现成本期望值最低,建立考虑数据不平衡影响的钻井复杂智能诊断新模型。新模型能有效诊断出样本较少的钻井复杂情况。
(3)通过实例分析,将新模型运用于川渝地区某页岩气水平井的卡钻复杂诊断,能有效识别被传统方法忽略的卡钻样本,且成本期望降低85%。
(4)本文的钻井复杂诊断方法虽然以决策树模型为基础,但以降低错误分类成本为训练目标解决钻井数据不平衡问题的思路,可推广到其他分类模型的训练中,为解决类似的问题提供参考。