基于决策树的钻井工况智能识别方法
2022-03-26刘胜娃曹湘华
刘胜娃,曹湘华
(中国石油川庆钻探工程有限公司长庆钻井总公司,陕西 西安 710021)
0 引言
钻井工程是一项大型复杂的系统工程,对于钻井过程中各种工况的自动识别能够有效地提升钻井工作效率并降低成本投入。随着油田数字化建设与智能化的发展,国内外学者采用各种机器学习算法对钻井数据开展研究。Susana Ferreiro等人[1]提出了一种基于贝叶斯算法的钻孔过程毛刺检测方法,用来减少钻孔工作中毛刺对于工作效率的影响;Alla Andrianova等人[2]使用机器学习方法来处理油田大量现场数据,以恢复油田测量质量;Cesar Soares等人[3]建立了基于机器学习的钻孔渗透率(ROP)的实时预测模型;M.Golitsyna等人[4]提出了一种基于机器学习的钻井时异常自动检测方法,利用钻探参数提高了对钻井中异常工况的智能检测效果;Mohammad Sabah等人[5]通过MLP-PSO算法和机器学习算法识别和排名预测了钻孔渗透率上最具影响力的变量;郭长杰等人[6]深入分析了国内油气行业机器学习应用场景,并从大数据分析、建模推广等角度提出了油气公司应用机器学习技术的相关建议。
综上所述,当前对于工况智能识别方面的研究相对较少。王江萍等人[7]构建神经网络模型和基于数值计算的知识处理系统对钻井事故进行了预测诊断,但在工况识别方面划分不够详细;孟昭等人[8]设计了一种PDC钻头井下工况评价方法,该发明能够通过读取钻进过程中的钻压、转速以及机械钻速等参数来判读PDC钻头在井下的工况,但该发明存在一定的局限性;周向军[9]等人提出了三牙轮钻头井下工况的判断与识别方法,但该方法只针对三牙轮钻头;孙挺等人[10]提出了基于支持向量机的钻井工况实时智能识别方法,解决了人工进行钻井分析不能及时准确反映真实现场情况的问题,但是该方法存在寻找最优参数问题。因此,本文提出了一种基于决策树的钻井工况智能识别方法,通过钻井过程中大量多项参数监测数据进行训练与测试,并采用贝叶斯算法与支持向量机进行结果对比。该方法不仅解决了传统阈值法识别工况的绝对性弊端和一些现有的工况识别方法的局限性,同时更进一步提高了工况识别的准确性与钻井工作的效率。
1 决策树算法
决策树[11]是一种经典的分类算法,其模型是根据数据的属性以树状的结构来建立的。其决策过程如下:首先,样本数据中的每一个特征属性都可以作为决策树潜在的分裂节点,遍历所有特征属性,计算每个特征的增益(作为决策树继续分裂的依据)。其次,将增益最大的特征作属性为叶子结点继续划分,不断循环以上过程,直到所有节点完成划分,最终获得完整的决策树。
假设样本集合为U,U中第i类样本的所占比例为Ui(i=1,2,…,n),则U的信息熵定义为式(1)。
其中若Ent(U)的值越小,则表示U的纯度越高。
由于钻井过程中各项属性都属于连续属性,不能够直接通过其属性的可取值来进行对树结点的划分,所以需要对各项属性进行离散化处理[12-14]。
样本集合U中,假定其中连续属性a,a在D上出现了n个不同的取值,依次从小到大进行排序后,假定一个划分点p,能够将U划分为U+p和Up。此时,两个相邻的属性取值an和an+1后,点p在区间[an,an+1]中取任意值所产生的划分结果都相同。所以对于连续属性a可考察包含x-1个元素的候选划分点集合,如式(2):
继而就可以对这些连续属性选取最优的划分点来进行样本集合划分,如式(3):
Gain(U,a,p)表示信息增益,Gain值越大,则表示使用属性a对决策树划分后得到的结果越好,即可选择Gain(U,a,p)为划分点。
2 工况识别实验
2.1 数据采集与预处理
在工况识别的建模中,数据来源十分关键,数据质量对于工况识别效果具有重要影响。本文中使用的数据集是采集自某油田连续15天钻井现场的175436条真实数据。
数据集中包含有机械钻速、吊钳扭矩、转盘转速以及离开井底时间等近百余种参数数据,其中有部分参数数值在钻井过程中采集结果始终为0,即该种类的数据对于模型构建并无影响。所以通过对每个种类数据分别求和来进行对无用数据的初步消除,筛选出求和结果不为0的参数数据进行建模。
钻井工作中将工况分为划眼、起钻、下钻、钻进、接单根、坐卡、解卡、循环和离开井底,为方便研究,实验中使用相应的数字来对工况进行代替,如表1所示。
表1 现场钻井工况分类
2.2 决策树工况识别模型
研究过程中将175436条数据集重新随机顺序排列,按照比例8:2进行拆分,即其中140349条数据用于参与训练以找到最优参数,剩余35087条数据进行模型测试。
通过对数据中每个属性计算信息增益,保留最高信息增益的属性并将其设置为根节点,对每个节点设置新的叶子节点,最后进行剪枝处理。最终模型中选取大钩负荷、立管压力、转盘扭矩、转盘转速、大钩高度、钻压、大绳做功、大钩速度8种参数作为输入参数。模型输出参数为钻进工况,及划眼、起钻、下钻等9种工况;工况识别流程如图1所示。
2.3 结果与分析
建立朴素贝叶斯算法与支持向量机工况识别模型。朴素贝叶斯算法基于贝叶斯定理和特征之间条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入,利用贝叶斯定理求出后验概率最大的输出。支持向量机是一种监督式学习算法,基于统计学习理论和结构风险最小化原则建立,其主要思想是寻找一个线性分离超平面,将非线性输入映射到高维特征空间中,使类别之间的隔离边缘最大化[10]。本文基于MATLAB环境,实现三个识别模型的主要仿真代码如下:
accuracyArray(i,3) = accuracy;
通过三种模型间的对比,对决策树模型进行评估。采用随机划分方法对原始数据进行分组,共进行42次仿真实验。将数据代入三种模型后得到的识别结果对比,多次的验证后识别率结果总结如表2所示。
表2 三种模型42次仿真识别正确率统计
实验结果表明,在采用贝叶斯算法、支持向量机与决策树算法三种模型工况识别正确率中,决策树算法模型的工况识别正确率达到了97%,其识别率正确最高。
3 结语
钻井工况的智能识别对于钻井工作具有十分重要的意义。本文设计了一种基于决策树算法对工况进行智能识别的方法,该法以实际钻井数据为建模依据,同时建立朴素贝叶斯与支持向量机对比模型。仿真实验结果分析表明该方法具有抗干扰强、算法参数自适应等优点,且对于工况智能识别的准确率进行了提高,获得了较为理想的实验结果。该方法能够为钻井工作提供有力的帮助,具有较为广泛的应用前景。