基于XGBoost算法的砂泥岩识别方法与流程
未命名
08-01
阅读:296
评论:0
基于xgboost算法的砂泥岩识别方法
技术领域
1.本发明涉及测井曲线处理技术领域,特别是涉及到一种基于xgboost算法的砂泥岩识别方法。
背景技术:
2.目前已有多种机器学习方法引入岩性识别中,包括神经网络、支持向量机和判别分析等。
3.(1)范存辉等利用自然伽马、中子、密度、声波时差、电阻率采用遗传bp神经网络进行中拐凸起火山岩测井岩性识别的研究工作,识别结果可信度高。
4.(2)朱怡翔选取自然伽马、声波时差、密度、光电吸收截面指数、中子、井径,浅电阻率、中电阻率、深电阻率,裂缝发育指数,密度孔隙度、气孔孔隙度指数、声波孔隙度、基于深浅电阻率差异的裂缝发育指数、渗透率15种测井参数,作为多维地质表征参数对三塘湖盆地牛东油田火山岩建立支持向量机模型,并与多元回归分析、人工神经网络对比发现,支持向量机符合率最高。
5.(3)牟丹选择自然伽马、中子、密度、声波时差、电阻率常规5种测井曲线对辽河盆地东部凹陷火山岩构造了“一对一”、“一对多”和有向无环图3种支持向量机岩性识别模型,最终有向无环图的识别效果最佳。
6.(4)张莹和潘保芝应用逐步判别分析筛选出松辽盆地深层火山岩地层的自然伽马、铀、钾、光电吸收截面指数、中子孔隙度5条测井曲线,在贝叶斯准则下建立判别函数,回判数点正确率为88%。
7.目前的岩性识别技术在不同研究区具有一定的效果,但这些方法都存在一定的局限性,神经网络方法中常用的是bp网络,但最优参数和最优网络结构的确定没有很好的解决方法,且易陷入过度拟合,泛化能力不好。支持向量机方法的分类效果多受其参数和核函数选取的影响。贝叶斯判别方法是基于条件独立性提出的,但往往与输入变量相关,从而导致准确率较低。
8.在申请号:cn202010392710.9的中国专利申请中,涉及到一种基于xgboost算法与特征工程的岩性及流体类型识别方法,包括以下步骤:1)根据钻井或测井数据获取地层的岩性及流体类型标签以及对应的弹性参数数据构建岩性及流体类型-弹性参数的学习样本;2)特征构造:根据弹性参数利用数学变换构造特征集合;3)特征选择:结合嵌入式特征选择与包裹式特征选择策略,在特征集合中选择最终的输入特征;4)通过xgboost算法构建多井岩性和流体识别的机器学习模型进行学习并输出岩性及流体类型识别结果。与现有技术相比,该发明具有构造更多对岩性或流体敏感属性、兼顾了表达能力和泛化能力等优点。
9.在申请号:cn202110677523.x的中国专利申请中,涉及到一种基于粗糙集属性约简的卷积神经网络岩性识别方法;1)收集数据得到训练集d;2)分别d中图片上的曲线拆分成单条曲线图片组成同源图片组得到d
′
;3)采用卷积神经网络模型同时对每个同源图片组作卷积训练,得到p
×
k组合向量;4)用粗糙集对组合向量进行属性约简得到b;5)b送入分类
器模型中得到第一次实际输出结果;6)将第一次实际输出值与期望输出结果比较,根据比较结果调整参数反复迭代训练,直至准确率满足要求或最大时停止训练,得到识别结果。该发明在卷积神经训练中,通过粗糙集对数据集进行属性约简,从而达到精简数据集,减少模型训练的难度;同时通过反复调整、迭代训练,提高准确率。
10.在申请号:cn202110790280.0的中国专利申请中,涉及到一种基于机器学习的测井储层识别预测方法。针对常规测井解释方法进行致密气低孔低渗储层流体识别时,由于储层非均质性强、孔隙结构复杂,导致测井解释模型适用性差、准确率低的问题,并且传统的单一机器学习算法容易陷入过拟合、局部最优等问题。该发明采用经典的集成学习算法xgboost,结合试气录井结果和常规测井数据,对致密砂岩储层进行识别,能有效提升预测的精度,缩短了测试人员判别储层的时间,从而节约大量成本。
11.以上现有技术均与本发明有较大区别,未能解决我们想要解决的技术问题,为此我们发明了一种新的基于xgboost算法的砂泥岩识别方法。
技术实现要素:
12.本发明的目的是提供一种提高地球物理人员在测井曲线标准化方面的工作效率的基于xgboost算法的砂泥岩识别方法。
13.本发明的目的可通过如下技术措施来实现:基于xgboost算法的砂泥岩识别方法,该基于xgboost算法的砂泥岩识别方法包括:
14.步骤1,收集测井曲线数据及对应井的录井数据;
15.步骤2,对收集到的数据进行预处理;
16.步骤3,多维度表征测井曲线数据,对测井曲线进行特征提取;
17.步骤4,将经过步骤3处理后的特征数据与录井数据进行匹配构建样本数据;
18.步骤5,采用xgboost算法建立岩性分类模型,并进行模型的训练与评估;
19.步骤6,利用训练好的xgboost模型,对新井的测井数据进行预测。
20.本发明的目的还可通过如下技术措施来实现:
21.在步骤1中,测井曲线数据及对应井的录井数据的采样间隔均为0.125m。
22.在步骤1中,利用实际采集到的测井曲线数据和录井数据,将整个数据分为训练集、测试集和验证集;对训练集和测试集数据利用现场测试及专家审定的方式进行了岩性标定。
23.步骤2还包括,将测井曲线文件名称跟录井文件名进行一一对应,并将收集到的测井曲线数据和录井数据解析成宽表格式。
24.在步骤2中,进行的数据预处理包括重采样、缺失值处理、数据归一化处理和数据异常值处理。
25.在步骤2中,异常值处理是根据业务专家制定的不同特征的合理取值范围,对数据中的特征值设置阈值进行过滤,对超过阈值的不合理值进行临近数据或井平均数据进行修正。
26.在步骤2中,缺失值处理是对测井曲线中的缺失数据,进行删除。
27.在步骤2中,重采样是将测井曲线采样间隔为0.1m的井应用插值进行重采样处理为0.125m,将标签数据进行上采样以保证标签类别均衡。
28.在步骤2中,数据归一化处理是为了消除指标之间的量纲影响,进行数据标准化处理,以解决数据指标之间的可比性;原始数据经过数据归一化处理后,各指标处于同一数量级,适合进行综合对比评价。
29.在步骤3中,对测井曲线按照0.5m为时窗进行特征提取;根据大部分井都包含的测井曲线名称,选取声波时差(ac)、自然伽马(gr)、自然电位(sp)三条测井曲线数据,并按照0.5米进行特征提取,分别提取每条测井曲线时窗内的最大值、最小值、中位数、平均值作为曲线的特征。
30.在步骤4中,将经过步骤3处理后的特征数据与录井数据按深度进行匹配构建样本数据,并将样本划分为训练集和验证集,其中训练占样本总数的80%,验证集占样本总数额20%;标签共包含四类:纯泥岩,砂岩,其他泥岩,其他岩性。
31.在步骤5中,选用xgboost算法建立模型;将标注的训练数据集作为xgboost的输入样本,对模型进行训练,获得模型;然后利用测试数据集对训练后的模型进行验证,若满足精度要求,则获得训练好的xgboost网络模型。
32.在步骤5中,随机取80%的训练集数据分批输入到xgboost模型中,训练模型,用剩下20%的数据集对模型的精度进行评估;按照0.5m为一段进行预测,将预测结果与标签值进行比较,评估标准为:只统计泥岩和砂岩预测的准确率,其他泥岩和其他岩性不参与统计。
33.在步骤5中,模型精度的评估公式为:
34.acc(模型准确率)=(纯泥岩预测为泥岩+砂岩预测为砂岩)/(泥岩样本总数+砂岩样本总数)
35.根据评估结果的精确度调整模型所用样本和超参数,验证集各类岩性预测精度图。
36.本发明中的基于xgboost算法的砂泥岩识别方法,该方法能较准确地分辨出砂泥岩,整个过程不需要人为干预,非常适合海量数据条件下的砂泥岩识别。该基于xgboost算法的砂泥岩识别方法充分地利用了机器学习与测井数据处理各自的技术特点,为大规模识别砂泥岩提供了可能性。
附图说明
37.图1为本发明的基于xgboost算法的砂泥岩识别方法的一具体实施例的流程图;
38.图2为本发明的一具体实施例中样本数据的样式的示意图;
39.图3为本发明的一具体实施例中验证集各类岩性预测准确率图;
40.图4为本发明的一具体实施例中预测效果图。
具体实施方式
41.应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
42.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式
也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作和/或它们的组合。
43.xgboost是一种基于迭代决策树模型的集成学习算法,是基于利用一阶导数相关信息的gbdt算法的一种改进算法,xgboost算法很大程度上提高了模型的训练速度和预测的准确度。xgboost算法基于二阶泰勒展开式将损失函数展开,并且将正则项加入到目标函数之外,这不仅降低了模型的复杂度,还使得解为最优解。通过控制目标函数的不断下降,使得模型能够更好地收敛,有效避免过拟合,从而提高了模型的预测准确度。而且xgboost在训练前预先对数据进行处理,将其结果保存,使得在后面的迭代中可以重复使用,从而降低计算复杂度,实现并行化,提高了算法的整体计算效率。
44.以下为本发明的几个具体实施例。
45.实施例1
46.在应用本发明的具体实施例1中,本发明的基于xgboost算法的砂泥岩识别方法包括了以下步骤:
47.(1)数据预处理
48.获取测井曲线数据和录井数据,将测井曲线文件名称跟录井文件名进行一一对应,并将收集到的测井曲线数据和录井数据解析成宽表格式。检查标签数据,建立样本库。对样本数据进行预处理,包括:重采样、缺失值处理、归一化处理和数据分割处理。
49.(2)特征工程
50.训练数据和测试数据所用特征必须相同,所以为保证训练数据和测试数据量,统计每口井包含的测井曲线,找出大部分井都包含的测井曲线。选取声波时差(ac)、自然伽马(gr)、自然电位(sp)位三条测井曲线数据,提取特征对每条测井曲线进行多维表征,打通数据域到特征域的映射,为后续构建样本做准备。
51.(3)算法选择
52.xgboost是一种分布式通用的梯度提升库,该算法是以决策树作为基学习器的集成学习模型,可在训练时利用所有cpu内核并行建树。xgboost在梯度提升的基础上改善了目标函数计算方式,可提高模型精确度,并将目标函数的优化问题转化为求二次函数的最小值问题,利用损失函数的二阶导数信息训练树模型,同时将树复杂度作为正则项加入到目标函数中,提升了模型的泛化性能。所以选用xgboost算法建立模型。将标注的训练数据集作为xgboost的输入样本,对模型进行训练,获得模型。然后利用测试数据集对训练后的模型进行验证,若满足精度要求,则获得训练好的xgboost网络模型。
53.(4)模型评估
54.按照0.5m为一段进行预测,将预测结果与标签值进行比较,只统计纯泥岩和砂岩预测正确的个数。
55.acc(模型准确率)=(纯泥岩预测为泥岩+砂岩预测为砂岩)/(泥岩样本总数+砂岩样本总数)
56.实施例2
57.在应用本发明的一具体实施例2中,处理任务为:完成纯泥岩、砂岩,其他泥岩、其他岩性4类岩性的识别,纯泥岩、砂岩的识别精度达到81.1%。
58.处理过程参考图1,图1为本发明实施例提供的基于xgboost的砂泥岩识别方法的
流程图。如图1所示,其主要包括步骤01至步骤07。
59.步骤01、收集2胜利油田某油区220口井的测井曲线数据及对应井的录井数据,其中200口井的测井曲线是las文件格式,20口井的测井曲线是txt文件。采样间隔均为0.125m。
60.利用实际采集到的测井曲线数据和录井数据,将整个数据分为训练集、测试集和验证集。对训练集和测试集数据利用现场测试及专家审定的方式进行了岩性标定。
61.步骤02、将收集到的测井曲线数据进行解析,解析成宽表的格式。以便后续数据预处理使用。
62.步骤03、为了使模型精度更高,需要对数据进行预处理。
63.异常值处理:根据业务专家制定的不同特征的合理取值范围,对数据中的特征值设置阈值进行过滤,对超过阈值的不合理值进行临近数据或井平均数据进行修正。
64.缺失值处理:对测井曲线中的缺失数据,进行删除。
65.重采样:将测井曲线采样间隔为0.1m的井应用插值进行重采样处理为0.125m。将标签数据进行上采样以保证标签类别均衡。
66.数据归一化:在机器学习领域中,不同特征向量往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据归一化处理后,各指标处于同一数量级,适合进行综合对比评价。
67.步骤04、多维度表征测井曲线数据,对测井曲线按照0.5m为时窗进行特征提取。根据大部分井都包含的测井曲线名称,选取声波时差(ac)、自然伽马(gr)、自然电位(sp)三条测井曲线数据,并按照0.5米进行特征提取,分别提取每条测井曲线时窗内的最大值、最小值、中位数、平均值作为曲线的特征。
68.步骤05、将经过步骤04处理后的特征数据与录井数据按深度进行匹配构建样本数据,并将样本划分为训练集和验证集,其中训练占样本总数的80%,验证集占样本总数额20%。标签共包含四类:纯泥岩,砂岩,其他泥岩,其他岩性。样本格式参考图2。
69.步骤06、采用xgboost建立岩性分类模型,本发明实施例中,xgboost集成算法中共包含30棵树,即总共迭代30次。学习率采用0.1,控制每次迭代更新权重时的步长。每棵树的深度为15,并且设置早停轮数,来防止模型过拟合的发生。随机取80%的训练集数据分批输入到xgboost模型中,训练模型,用剩下20%的数据集对模型的精度进行评估。评估标准为:只统计泥岩和砂岩预测的准确率,其他泥岩和其他岩性不参与统计。公式为:模型准去率=(纯泥岩预测为泥岩+砂岩预测为砂岩)/(泥岩样本总数+砂岩样本总数)。根据评估结果的精确度调整模型所用样本和超参数。验证集各类岩性预测精度图,如图3所示,其中a代表纯泥岩、b代表砂岩、c代表其他泥岩,d代表其他岩性。
70.步骤07、利用训练好的xgboost模型,对新井的测井数据进行预测,并输出预测结果。预测结果如图4所示。
71.实施例3:
72.在应用本发明的具体实施例3中,调整样本和xgboost算法中的超参数对模型调优,以达到模型可应用的程度。
73.步骤01、此步骤对样本进行调整,来优化模型,时窗大小分别为0.25米、0.5米、
0.75米和1米对测井曲线进行特征提取,此外,对样本分割比例进行调整,训练集和验证集占比调整为9:1,8:2和7:3。最后综合考虑业务要求和算法运行结果精度,最终选用0.5米时窗大小来提取特征,样本分割比例为8:2。
74.步骤02、此步骤对算法超参数进行调整,来优化模型。对算法中的提升树(booster)、最小叶子节点样本权重和(min_child_weight)、树的最大深度(max_depth)、树上最大的节点(max_leaf_nodes)和权重的l2正则化项(lambda)等超参数进行调整,其中本实施例中提升树(booster)的值可选基于树的模型(gbtree)和线性模型(gblinear)。最小叶子节点样本权重和(min_child_weight)的值可选1、0.8和0.6,树的最大深度(max_depth)的值可选10,20,30,50,树上最大的节点(max_leaf_nodes)的值可选2,3,权重的l2正则化项(lambda)的值可选0.8、0.9和1。
75.步骤03、对步骤01和步骤02的参数进行组合,形成超参数组合应用到算法模型中训练xgboost模型,根据验证集准确率判定模型可用性。最终确定模型。
76.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域技术人员来说,其依然可以对前述实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
77.除说明书所述的技术特征外,均为本专业技术人员的已知技术。
技术特征:
1.基于xgboost算法的砂泥岩识别方法,其特征在于,该基于xgboost算法的砂泥岩识别方法包括:步骤1,收集测井曲线数据及对应井的录井数据;步骤2,对收集到的数据进行预处理;步骤3,多维度表征测井曲线数据,对测井曲线进行特征提取;步骤4,将经过步骤3处理后的特征数据与录井数据进行匹配构建样本数据;步骤5,采用xgboost算法建立岩性分类模型,并进行模型的训练与评估;步骤6,利用训练好的xgboost模型,对新井的测井数据进行预测。2.根据权利要求1所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤1中,测井曲线数据及对应井的录井数据的采样间隔均为0.125m。3.根据权利要求1所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤1中,利用实际采集到的测井曲线数据和录井数据,将整个数据分为训练集、测试集和验证集;对训练集和测试集数据利用现场测试及专家审定的方式进行了岩性标定。4.根据权利要求1所述的基于xgboost算法的砂泥岩识别方法,其特征在于,步骤2还包括,将测井曲线文件名称跟录井文件名进行一一对应,并将收集到的测井曲线数据和录井数据解析成宽表格式。5.根据权利要求1所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤2中,进行的数据预处理包括重采样、缺失值处理、数据归一化处理和数据异常值处理。6.根据权利要求5所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤2中,异常值处理是根据业务专家制定的不同特征的合理取值范围,对数据中的特征值设置阈值进行过滤,对超过阈值的不合理值进行临近数据或井平均数据进行修正。7.根据权利要求5所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤2中,缺失值处理是对测井曲线中的缺失数据,进行删除。8.根据权利要求5所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤2中,重采样是将测井曲线采样间隔为0.1m的井应用插值进行重采样处理为0.125m,将标签数据进行上采样以保证标签类别均衡。9.根据权利要求5所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤2中,数据归一化处理是为了消除指标之间的量纲影响,进行数据标准化处理,以解决数据指标之间的可比性;原始数据经过数据归一化处理后,各指标处于同一数量级,适合进行综合对比评价。10.根据权利要求1所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤3中,对测井曲线按照0.5m为时窗进行特征提取;根据大部分井都包含的测井曲线名称,选取声波时差ac、自然伽马gr、自然电位sp三条测井曲线数据,并按照0.5米进行特征提取,分别提取每条测井曲线时窗内的最大值、最小值、中位数、平均值作为曲线的特征。11.根据权利要求1所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤4中,将经过步骤3处理后的特征数据与录井数据按深度进行匹配构建样本数据,并将样本划分为训练集和验证集,其中训练占样本总数的80%,验证集占样本总数额20%;标签共包含四类:纯泥岩,砂岩,其他泥岩,其他岩性。12.根据权利要求1所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤5
中,选用xgboost算法建立模型;将标注的训练数据集作为xgboost的输入样本,对模型进行训练,获得模型;然后利用测试数据集对训练后的模型进行验证,若满足精度要求,则获得训练好的xgboost网络模型。13.根据权利要求12所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤5中,随机取80%的训练集数据分批输入到xgboost模型中,训练模型,用剩下20%的数据集对模型的精度进行评估;按照0.5m为一段进行预测,将预测结果与标签值进行比较,评估标准为:只统计泥岩和砂岩预测的准确率,其他泥岩和其他岩性不参与统计。14.根据权利要求13所述的基于xgboost算法的砂泥岩识别方法,其特征在于,在步骤5中,模型精度的评估公式为:模型准确率acc=(纯泥岩预测为泥岩+砂岩预测为砂岩)/(泥岩样本总数+砂岩样本总数)根据评估结果的精确度调整模型所用样本和超参数,验证集各类岩性预测精度图。
技术总结
本发明提供一种基于XGBoost算法的砂泥岩识别方法,包括:步骤1,收集测井曲线数据及对应井的录井数据;步骤2,对收集到的数据进行预处理;步骤3,多维度表征测井曲线数据,对测井曲线进行特征提取;步骤4,将经过步骤3处理后的特征数据与录井数据进行匹配构建样本数据;步骤5,采用XGBoost算法建立岩性分类模型,并进行模型的训练与评估;步骤6,利用训练好的XGBoost模型,对新井的测井数据进行预测。该基于XGBoost算法的砂泥岩识别方法提高地球物理人员在测井曲线标准化方面的工作效率。人员在测井曲线标准化方面的工作效率。人员在测井曲线标准化方面的工作效率。
技术研发人员:朱应科 彭英 杨澎涛 贾立辉 范永合 孙友凯 戴猛 陈柱泽 郑建军 李乃聚
受保护的技术使用者:中国石油化工股份有限公司胜利油田分公司物探研究院
技术研发日:2022.01.21
技术公布日:2023/7/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
