当前位置:首页 期刊杂志

基于Stacking集成学习的岩性识别研究

时间:2024-05-04

曹茂俊,巩维嘉,高志勇

(东北石油大学 计算机与信息技术学院,黑龙江 大庆 163318)

0 引 言

岩性识别是通过一些特定的方法来认识和区分岩性的过程。在地质学中,地下岩性分类是一项非常有意义的任务,精确地识别岩石的物理特征为地层评价、地质分析提供研究基础[1]。传统的岩性识别方法分为直接和间接两种。直接法是指通过观测地下岩心来确定岩性,此方法需要较强的专业知识并且不够准确。间接方法是指通过测井资料建立解释模型来进行岩性识别。目前,传统的岩性识别模型已经遇到了瓶颈,存在识别准确率低,速度慢,并且难以解释测井资料和岩性之间的复杂关系等问题,因此利用测井资料建立准确率较高的岩性识别模型成为当今的一个重点问题。

近年来,机器学习已经被引入到岩性识别问题当中,实现了岩性的自动化识别。张莹等人[2]使用Byers准则建立了岩性识别分类模型。Shaoqun Dong等人[3]提供了KFD(核Fisher判别分析)进行岩性识别分类。Pan H等人[4]探索了K近邻分类器识别岩性的性能。

不同岩性具有不同的物理性质,单一的机器学习算法无法全面地识别每种岩性,不能对测井资料进行很好地解释,而集成学习可以结合各种算法,很好地解决这一弊端。Yunxin Xie[5]、T.S. Bressan[6]和Jian Sun[7]等人,将SVM、MLP和随机森林算法分别用于岩性识别和地层评价。Vikrant A. Dev[8]在Yunxin xie等人的基础上,使用LogitBoost算法来区分地层岩性。闫星宇等人[9]使用XGBoost算法进行致密砂岩气储层预测。Kaibo Zhou等人[10]将GBDT算法和SMOTE算法结合,应用于岩性识别。基于Stacking的集成算法能有效集成各个基模型的优点,更好地提高模型效果,段友祥[11]、邹琪[12]等人使用该方法构建岩性识别模型。

集成学习分为同质集成和异质集成,同质集成学习通过组合同一个分类器来构造一个最终模型,因此,在扩大单一分类器优点的同时,缺点也会增加,这对结果是不可取的。然而,异质集成学习能抓住不同岩性识别模型的优点,具有更强的鲁棒性和泛化性。它是通过叠加的方式对学习器进行无限叠加,它和同质集成学习除了基模型使用不同的模型之外,组合策略也不同,不是简单地采用了平均法和投票法,而是使用了元模型方法进行组合。但是传统的Stacking异质集成存在一定的缺点和不足,即没有考虑每个基模型的实际预测结果,不同的基模型它们的可信度不同,如果不加以区分,则会影响最终元模型的训练效果,从而影响整体准确率。

因此,该文将PCA算法融入到模型中,训练模型的同时,计算并赋予每个基模型相应的权重,以此来提高元模型训练数据的质量,最终提高模型整体表现。该方法融合了CART决策树、KNN、多层感知机、SVM和逻辑回归(LR)五种机器学习方法,利用中国延安气田某井数据进行岩性识别,结果表明该模型和其他机器学习模型相比效果显著提升。

1 相关研究基础

1.1 CART决策树

CART决策树是由Breinman等人提出的一种有监督分类算法,它是在给定输入X的条件下,输出随机变量Y的条件概率分布的学习方法,比较适用于离散型变量和连续型变量。对于离散型变量,CART算法生成分类树。对于连续型变量,CART算法生成回归树[13]。该文是通过测井曲线数据对岩性进行分类,因此采用CART分类树算法。CART决策树的核心思想是根据学习区域变量和目标变量,对原始数据集以二叉树的结构形式进行循环分析,构建模型时选用Gini系数作为分类属性,Gini系数越小,样本纯度越大,分类效果越好。概率分布的Gini系数定义如下:

(1)

其中,K表示类别数量,pk表示样本点属于第K类的概率。

1.2 K近邻算法

K近邻算法也称KNN算法,属于有监督学习分类算法。它的基本思想是,给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最近邻的M个实例,这M个实例的多数属于某类,就把该输入实例分类到这个类下。由此可知,KNN算法在分类决策的过程中有两个任务:根据K值寻找目标点附近的其他数据点,用这些数据点进行投票表决。算法步骤如下:

训练数据集T={(X1,Y1),(X2,Y2),…,(XN,YN)},其中Xi为实例的特征向量,Yi={C1,C2,…,Ck}为实例类别。

(1)计算目标点X与训练集T中其他样本点的欧氏距离。

(2)选取与实例X最近的k个点,这k个点的邻域为Nk(X)。

(3)根据少数服从多数投票,让未知实例归类为k个最近邻样本中最多数的类别。

从上述流程看,KNN算法只有一个超参数K,不同的K值会使算法产生不同的预测结果,如果选取的K值过小,模型容易产生过拟合。如果选取的K值过大,会使得模型的预测误差减小,模型会变得简单。因此K值的确定对模型的分类性能有着十分重要的影响。

1.3 逻辑回归

逻辑回归(LR)是一种经典的二分类机器学习算法,也可以解决多分类问题,它可以用来估量某个事件发生的概率。逻辑回归模型的学习包括构造代价函数和模型训练,构造代价函数使用了统计学中的极大似然估计,而模型训练的实质就是寻找一组参数,使得代价函数最小化的过程。逻辑回归算法的主要步骤如下(其中θ指的是回归参数):

(1)寻找预测函数h(x),逻辑回归构造的预测函数如下:

(2)

(2)构造损失函数J,其中m代表样本个数:

(3)

(3)通过梯度下降法使得损失函数最小,并求得回归参数。

训练结束得到模型后,将测试数据输入模型,若预测值大于0.5,则将该测试数据分为正例,否则将该测试数据分为负例。

1.4 多层感知机

多层感知机(MLP),也叫人工神经网络,是由一系列层、神经元和连接组成的,主要由输入、输出、隐藏层三部分组成,是一种高度并行的信息处理系统,能处理复杂的多输入、多输出的非线性问题,对于分类问题有很好的处理能力。

除了输入输出层之外,中间的隐藏层可以有多层,各个层之间是全连接的,即上层的全部神经元和下层的全部神经元都有连接,其计算过程如下:

(1)输入层获得n维向量,即n个神经元。

(2)隐藏层的神经元是由输入层的输出得来的,假设输入层用向量X表示,则隐藏层的输出表示为f(Wx+b)。

(3)隐藏层通过多类别的逻辑回归得到输出层,三层多层感知机的公式如下,其中G是SoftMax函数:

f(x)=G(b(2)+W(2)(s(b(1)+W(1)x)))

(4)

1.5 支持向量机

多分类问题可以通过多个SVM的组合来解决,一对多SVM分类算法在对多个不同样本分类时,速度较快,它是训练时依次把某个样本归为一类,剩余的归为一类,构造多个SVM模型[14]。其算法思想如下:

(1)x表示样本,y表示类别,θ表示支持向量,假设存在一个超平面可以将样本正确分类则:

(5)

(2)两种不同类别支持向量到决策边界距离之和为:

(6)

(3)将最大化间距问题转换成最小化问题,公式如下:

(7)

2 面向岩性识别的Stacking集成模型设计

2.1 基模型选取

针对测井曲线数据的特征,该文选取了CART决策树、KNN、MLP、SVM四种基模型来进行构建。基模型的差异性是提高模型整体表现的重要因素之一。因此,为了提高Stacking集成模型的识别效果,该文选取了四种结构差异较大的机器学习模型作为基模型。

其中,CART决策树算法完全不受数据缩放的影响,每个测井曲线特征能够被单独处理,它更容易考虑到每个测井曲线的特征和每个测井曲线对岩性识别的贡献。但是,该算法非常容易过拟合,而且泛化性能较差。KNN算法可以用于非线性分类,并且该方法主要靠周围有限的邻近样本进行分类,从测井曲线和岩性类别关系的角度来看,该方法有助于岩性划分。但是,当样本类别不均衡时,该方法对稀有类别预测准确率低。MLP能够借助非线性激活函数,学到高阶的特征组合,该算法有助于结合不同测井曲线特征,更好地分析测井资料和岩性的关系。但是该算法收敛速度慢,对数据质量要求较高。SVM算法针对高维特征分类具有很好的效果,针对多种测井曲线,该算法对曲线有较好的解释性。但是对大规模样本训练却难以支持,并且在多分类问题上,它的准确率不是很好。

2.2 基于PCA的基模型权重选取方法

传统的Stacking集成学习模型没有考虑到每个基模型在实际数据上的预测结果,每个基模型对样本数据的预测结果都是要作为元模型的训练数据,如果直接使用基模型预测的结果作为训练集,则会影响最终模型的分类效果,导致模型准确率不高。这是因为基模型的训练数据和算法是不同的,每个基模型为元模型提供的信息具有一定的差异性。因此,每个基模型都应该被赋予一个权重。该文通过PCA算法计算出每个模型的权重,并且将权重融合到每个基模型的输出特征中,作为元模型的训练数据。权重的计算步骤如下:

(1)利用PCA算法计算第一层基模型输出数据的贡献方差、方差贡献率和成分矩阵。X、Y表示随机变量,E表示期望方差,协方差计算公式如下:

Cov[X,Y]=E[(X-E(X))(Y-E(Y))]

(8)

(2)根据成分矩阵C和贡献方差T求得成分得分系数矩阵K。计算公式如下:

(9)

(3)根据贡献方差T和成分得分矩阵K,得出权重矩阵W。计算公式如下:

(10)

(4)对权重矩阵W进行归一化处理,求得最终的权重矩阵。

这种改进方式考虑了基模型的训练情况,对于准确率高的基分类器赋予较高的权重,从而为元模型提供更多的预测信息,对于准确率低的基模型赋予较低的权重,以此来提高元分类器的训练效果。

2.3 Stacking集成模型设计

通过集成以上选取的五种模型,构建了一个两层集成学习模型。第一层选用CART决策树、KNN、MLP和SVM四种模型作为基模型,第二层选取逻辑回归作为元模型。由于第一层选用了复杂的非线性变化模型提取特征,这样容易产生过拟合风险。因此,第二层元模型选择逻辑回归广义线性模型,在第一层模型中取长补短,提升预测准确率。整体模型架构如图1所示。

图1 改进的Stacking集成学习流程

针对相同的数据,该集成模型集成了多种不同的基模型,并且通过PCA算法对基模型进行权重分析,为每个基模型赋予权重,提高了元模型训练数据的可靠性,每个基模型都有自己的优点和侧重,因此具有很好的泛化能力和抗干扰能力。通过改进的Stacking集成算法进行模型融合,使得最终的集成模型具有很好的识别效果,准确率较高。

3 基于Stacking集成模型的岩性识别方法

3.1 数据预处理

3.1.1 数据标准化

首先对数据进行标准化(standardization)处理,本次实验采用数据标准化(又叫Z-score标准化)。数据标准化是机器学习任务中的一项基本任务,它是数据预处理必不可少的一步。数据预处理是从数据中检测、纠正或者删除不适用于模型的记录的过程。由于各种不同类型的测井数据量纲不同,数值间差异较大,因此需要对原始测井数据进行标准化处理,从而消除测井数据间的差异性,便于模型更好地学习特征。处理后的数据会服从均值为0,方差为1的正态分布。该文采用的数据标准化公式如下:

(11)

其中,μ为数据的均值,σ为标准差,当数据x按均值(μ)中心化后,再按标准差(σ)缩放,数据就会服从均值为0,方差为1的正态分布。标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。

3.1.2 相关性分析

相关性分析是指对多个变量进行相关密切程度的衡量,并不是所有的特征都可以进行相关性分析,需要特征之间存在一定的联系或者概率才可以进行分析,在测井曲线数据中,不同的测井曲线数据之间存在一定的相关性,它们同时反映了一个区域之间地层特征,因此可以进行相关性分析。

在训练过程中,并不是特征参数越多,模型的识别效果就越好,相反,如果特征参数过多,特征与特征之间就会产生冗余现象,反而不利于提高模型的识别效果。相关性分析指的是对多个具备相关性的变量元素进行分析,得到这些变量因素的相关程度,一组数据特征之间相关性低,则说明特征之间依存关系弱,适合用来进行分析。通过对测井曲线进行Pearson相关性分析,可得各个测井曲线特征它们之间的Pearson相关系数,选择相关性较弱的特征数据作为训练特征。

3.1.3 不均衡样本处理

如图2所示,不同类别的数据分布严重不均衡,如果某个类别数量特别少,模型对其学习效果不佳,则会造成模型对其识别准确率低,影响最终识别效果[15]。针对数据不均衡问题,该文采用了SMOTE算法对数据进行补齐,使得各个样本的数据量相等。

SMOTE算法是基于随机过采样算法的一种改进算法,它可以有效地防止随机过采样算法采取简单复制样本的策略来增加少数类样本产生的模型过拟合问题,它的基本思想是对少数类样本进行分析,根据少数类样本人工合成新样本添加到数据集中。算法流程如下:

(1)计算少数类中每一个样本到少数类全部样本集中所有样本的欧氏距离。

(2)根据样本不平衡比例,设置一个采样比例,以确定采样倍率N,对于每一个少数类样本a,从其k近邻中随机选择若干个样本,假设选择的近邻为b。

(3)对于每一个随机选出的近邻b,分别与原样本a构建新的样本c。

算法使用前后的效果如图2、图3所示。从图2和图3中可以明显看出,使用SMOTE算法后各个数据类别数量得到了补齐,为模型训练提供了良好的数据支持。

图2 原始数据分布

图3 数据补齐后的分布

3.2 Stacking集成模型的训练与测试

通过以上步骤对测井曲线数据进行数据预处理,然后将上述处理完的数据输入到模型中进行训练与测试,检验Stacking集成模型的可靠性。为了提高基模型的差异性和防止过拟合现象,该模型的训练采用K折交叉验证的思想,对模型进行训练,来保证训练模型的准确率和泛化性。

具体的训练步骤如下:

(1)将训练数据进行K折划分,分成数量相同的K组数据。

(2)用选取的多个基模型进行K次训练,训练样本为K-1份,剩下的一份作为训练后的数据。

(3)将预测的K份数据组成新的训练样本,通过PCA算法计算基模型所占权重,将权重融入到预测的数据中,组成元模型的训练数据。

(4)将第三步的数据输入到第二层的元模型中进行预测,得到最终的预测结果。

对Stacking集成模型进行测试,如果该模型在验证集上识别效果较好,则可以将模型用于训练集数据进行训练。否则,需要对集成模型进行优化调整,重新测试。

4 实际应用效果及分析

4.1 数据资料

本次实验的数据来自于中国延安气田的某井区数据。训练数据集包括31口生产井的3 345条测井数据,其中主要的岩性分类为:粗砂岩、中砂岩、细砂岩、粉砂岩、白云岩、灰岩和泥岩,总共七种岩性。其中,粗砂岩样本194条,中砂岩样本710条,细砂岩样本751条,白云岩样本166条,石灰岩样本482条,泥岩样本114条,粉砂岩样本928条。测井曲线包括声波测井(AC)、井径测井(CAL)、伽马射线测井(GR)、钾测井(K)、深探双侧向电阻率测井(RD)和自然电位测井(SP)6条测井曲线。岩性复杂,并且岩性识别较为困难。

测试数据集来自3口生产井的366条测井数据。在测试集合中,岩性数据包括:粗砂岩样本20条,中砂岩样本80条,细砂岩样本80条,白云岩样本53条,石灰岩样本13条,泥岩样本100条,粉砂岩样本20条。本次实验的所有岩性分类模型使用Python的scikit-learn框架进行编写,它是Python的一个模块,提供了广泛的机器学习算法,包括监督学习和无监督学习。

4.2 实验结果

在模型评价方面,本次实验采用准确率和F1-Score对各个模型的表现进行评判。其中准确率表示预测结果和真实结果的差异,它的计算方式主要是分类正确的样本个数和总样本个数的比值。F1-Score兼顾了分类模型中的准确率和召回率,是对模型准确率和召回率的加权平均,它更能全面地评价模型的优劣。各个基模型的参数设置以及准确率和F1-Score如表1、表2所示。

表1 基模型参数设置

表2 各个模型的准确率和F1-Score %

各个模型在不同岩性种类上的准确率如表3所示。通过对比各个模型在测试集上的指标,可以得出如下结论:在模型准确率方面,所有基模型中支持向量机的准确率最高,达到了88.79%,K近邻算法准确率最低,达到了84.42%。改进后的集成模型准确率达到了92.01%,相比较于CART决策树,准确率提高了9.5个百分点,相比较于KNN算法,准确率提高了7.59个百分点,相比较于MLP,准确率提高了5.95个百分点,相比较于SVM,准确率提高了3.22个百分点。相比较于传统Stacking模型,准确率提高了1.85个百分点。

表3 各个模型在不同岩性类别上的准确率 %

对于各个岩性类别分类准确度,集成模型也有一定的提升。其中,在识别效果最差的粉砂岩上,集成模型也得到了较好的识别效果。在F1-Score方面,所有的基模型中,支持向量机的F1-Score最高,达到了88.79%,CART决策树的F1-Score最低,达到了82.06%。改进后的集成模型F1-Score达到了91.75%,相比较于CART决策树,F1-Score提高了9.69个百分点,相比较于KNN算法,F1-Score提高了3.85个百分点,相比较于MLP,F1-Score提高了4.79个百分点,相比较于SVM,F1-Score提高了2.96个百分点。相比较于传统Stacking模型,F1-Score提高了2个百分点。

综上分析,改进后的集成学习模型从准确率和F1-Score方面得到了较大的提高,从实验数据来看,改进后的Stacking集成模型整体效果最好,从而证明了该改进方法的有效性。

4.3 实验结果分析

Stacking集成模型相较于单一的机器学习模型效果较好。因为它集成了四种基模型,融合了它们各自的优点,即CART决策树容易考虑到每个测井曲线特征,KNN适用于非线性分类,MLP易于学到高阶特征,SVM在高阶特征上有良好的分类效果。而从2.1节中可以得出,每个基模型自身都存在一定的局限性,导致其效果不理想。因此,该文的Stacking集成学习准确率普遍高于单一的机器学习模型。并且,改进的Stacking集成学习模型相较于传统的Stacking集成学习模型,效果也得到了提升,因为其更加注重基模型之间的差异性。在各个基模型中,正确的预测能够帮助元分类器进行决策,错误的预测结果会降低元分类器的分类性能。因此,提出的模型为各个基模型分配权重,考虑了每个基模型的真实预测信息,有效地提高了分类准确率和F1-Score。

但是,从实验数据中也可以发现,改进的集成学习模型在部分岩性上的识别准确率没有得到很大的提升,例如粉砂岩,它的识别准确率只是达到了基模型识别准确率的最高值。而且,部分岩性的识别准确率不但没有得到提升,反而有所下降,例如中砂岩和泥岩,这是由于集成策略仍然存在一定的缺陷,导致最终的集成模型没有学习到相关类别的特征信息,因此,该模型仍然有待进一步提高。

5 结束语

通过分析测井曲线数据,有助于识别不同的岩性,该文通过对CART决策树、KNN、MLP和SVM四种模型进行分析,结合了它们各自的优点,通过PCA算法为其分配权重,将其结果输入到元模型中进行训练。通过此方法,极大地融合了每个模型的优点,完善了每个模型的不足,最终建立了一个稳定高效的用于岩性识别的集成学习模型。经过多次对比实验,发现该模型相较于传统的岩性识别模型,具有较好的稳定性和准确性,为广大学者利用集成学习技术进行岩性识别分析提供了新的方法和思路。从实验数据中可以得到,针对分类效果较差的岩性类别,该集成模型提升效果不显著,并且部分类别的准确率有所下降,因此,如何选取更巧妙的集成策略,提高各个分类类别的准确率,最终提高模型的整体表现,还需要进一步地探索和研究。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!