1. 引言
随着石油勘探日益发展,火山岩油气藏逐渐成为勘探开发的主要目标。X地区火山岩储层油气资源丰富,是油气增储上产的重要阵地,然而该区火山岩岩性复杂,各岩性的测井响应特征交叠,给火山岩岩性识别带来巨大挑战。准确且有效识别火山岩岩性对于提高该区产能具有重大意义。
岩性识别方法主要有图版法、识别方程判别法以及基于机器学习的模式识别方法。其中,图版法具有操作简单,易于实现的优点,主要利用测井解释人员的主观思想人为地确定岩性分类界限进行岩性判断,其识别的准确与否受人为因素影响[1]-[4];识别方程判别法则是通过测井参数建立岩性识别方程来对岩性进行自动识别,计算的结果较图版法更精确,但是可调节的参数过多,从而造成实际的应用效果较差[5] [6]。模式识别方法很多,其中基于样本中心距离概念的聚类分析方法虽可以进行岩性识别,但不同样本数量的聚类中心对岩性识别精度影响较大[7] [8];神经网络模型内部属于“黑箱”,可视化程度弱,网络的结构难以确定[9] [10];SVM模型能够通过内积运算将低维空间线性不可分的样本转换为高维空间可分,但其训练速度慢,核函数的选择缺乏依据,这在一定程度上制约着SVM模型的应用[11] [12];决策树模型虽然能够提高模型的可视化程度,但其对数据分布特征的表征不够准确,同时存在严重的过拟合现象,往往对特征较多的样本预测效果不够好[7] [13]。随机森林模型是在决策树模型的基础上发展起来的,它能够解决决策树模型的过拟合现象,而且该模型具有一定的泛化能力,因此它得到了学术界的广泛认可,经过长时间的发展,随机森林模型已经被用作岩性识别,但是很少有学者对随机森林模型的关键参数进行调节,因此,生成的随机森林模型往往不是稳定的、最优的分类模型[14] [15]。
本文通过调节随机森林中节点分裂准则,决策树最大深度、最大特征数和决策树分类器的个数,建立了适用于X断陷复杂火山岩岩性识别的稳定的、最优的随机森林模型,最终通过投票的方式确定测试样本的分类结果。有效地对火山岩岩性进行了自动识别。
2. 随机森林基本原理
随机森林模型分类准确率高、模型泛化能力强[15]。随机森林模型首先通过有放回抽样的方法对训练集进行抽样,假设待抽取的训练集个数为D,待生成的决策树分类模型个数为K,则生成K个相互独立决策树模型的随机向量,即用D个样本去训练得到相互独立的K棵决策树分类模型。在决策树的生成过程中,基于训练集抽取的样本子集中的一组随机特征空间,利用信息增益率作为节点分类准则来选取最优属性,生成K棵相互独立的决策树分类模型;在决策树的分类过程中,将测试集输入到随机森林模型对K棵树的分类结果进行投票,则确定最终的分类结果[16]。随机森林生成过程如图1所示,随机森林模型的分类过程如图2所示。
Figure 1. Schematic diagram of random forest training process
图1. 随机森林训练过程示意图
Figure 2. Schematic diagram of random forest classification process
图2. 随机森林分类过程示意图
2.1. 随机森林随机化过程
随机森林模型是由多个相互独立的决策树集成得到的,模型通过样本以及特征属性的随机抽样得到,从整体上提高了单棵决策树模型的准确率和泛化能力。
(1) 样本随机化
样本随机化是指每棵决策树模型输入的样本都是采用有放回的抽样的方法从原始样本空间抽取样本,这个随机过程使得每个决策树模型都具有唯一的一个分类结果,最终各个决策树模型通过投票的方式确定最终的分类结果。
(2) 特征随机化
特征随机化是指利用样本属性阈值来完成模型的训练时,创造一个随机属性集合,在此集合范围内利用节点分裂准则从样本属性集合中有放回地随机抽取最优属性阈值,现假设属性集合有M个子特征空间,随机森林选取的最优子属性阈值为F个。F的大小直接决定了随机森林模型各棵决策树分类的准确性以及各决策树模型之间的相关程度[15]。F值越大,随机森林的分类准确度越大,各棵决策树模型的相关性越强,模型的泛化能力越弱,因此合理选择F值意义重大。
2.2. 节点分裂准则
在随机森林模型中,每棵决策树模型都通过不断调节样本属性阈值来完成模型的训练过程,属性以及阈值的选取就叫做节点分裂准则。随机森林模型通过对随机抽取的F个最优属性进行选择后,对样本相似性进行度量,选择度量结果最优的属性及阈值作为分裂节点。经典的决策树模型包括ID3算法、C4.5算法以及CART算法[17]。
(1) ID3算法
ID3算法以最大信息增益为节点分裂准则,最大信息增益考虑到节点分裂前后信息熵值的差异。下面详述一下最大信息增益的计算过程。在一个带有标签的样本数为D的决策树训练集中,包含m种类别,其类别是第i类的概率为Pi,i = 1,2,3…m,训练集中存在n种属性,对于任意一种属性,存在k种不同的备选值,训练样本D的信息增熵为:
(1)
而按照节点分裂准则将训练集进行划分,得到第j种属性作为划分依据,得到划分后样本子集的信息熵公式为:
(2)
因此,属性j的信息增益为:
(3)
(2) C4.5算法
由于ID3算法受属性特征以及属性备选值个数的影响,该算法通常会选择属性备选阈值多的特征,而且ID3算法在处理连续属性数据时会出现明显的不足,因此C4.5算法得以应用,C4.5算法以信息增益率最大为节点分裂准则,消除了备选属性阈值数量对信息不确定度的影响,对于第j种属性A的信息熵表达式为:
(4)
因此,训练集D被划分到第j种属性的k个阈值后的信息增益率为:
(5)
2.3. 基于随机森林的岩性二分类问题的实现
常见的分类问题一般都是二分类问题,关于二分类问题的随机森林构建过程,根据前人的描述,确定为以下步骤[17]:
(1) 设定决策树模型的数量T,节点分裂属性数目s小于S (其中S为样本属性总数目);
(2) 基于节点分裂准则确定第t棵决策树模型的根节点,将样本输入到模型中;
(3) 如果样本中只含一类,那么返回标签等于相应种类的单叶节点决策树,如果节点样本空间为空,则标签等于种类数量最多的标签;否则继续执行步骤(4);
(4) 随机选择S个特征作为子特征空间以该特征空间结合抽样子集形成子样本空间,根据节点分裂准则选取最优的属性阈值作为分裂节点;
(5) 根据分裂属性,在内部节点中建立左子树和右子树;
(6) 在左子树和右子树中,执行步骤(3)的判断作为叶节点的生成条件,若条件不成立,则执行步骤(5);
(7) 当t < T时,执行步骤(2),否则结束。
2.4. 基于随机森林的岩性多分类问题的实现
常见的分类问题都是在二分类问题的基础上进行的,利用随机森林模型同样能够实现样本的二分类,但事实上X断陷需要识别的火山岩类型多样,需要对输入数据进行分步处理才能实现火山岩岩性的划分,因此,识别的步骤主要分为三步,第一,识别火山岩成分特征;第二,识别火山熔岩类型;第三,识别火山角砾和凝灰结构特征;具体流程图如图3所示。
Figure 3. Schematic diagram of volcanic rock lithology identification based on the random forest algorithm
图3. 基于随机森林算法的火山岩岩性识别流程图
3. 实际应用
3.1. 火山岩测井响应特征
本文研究区位于X地区,基于13口井133层的火山岩岩性数据,其中安山质(沉)火山岩57层,流纹质(沉)火山岩76层;根据井壁取心,薄片鉴定,确定了火山岩岩性按成分主要分为安山质(沉)火山岩以及流纹质(沉)火山岩两大类,按照结构,进一步划分为安山岩,安山质(沉)火山角砾岩,安山质(沉)凝灰岩,流纹岩,流纹质沉火山角砾岩,流纹质(沉)凝灰岩六小类,各岩性的测井响应特征范围详见表1。
Table 1. Logging response characteristics of volcanic rocks
表1. 火山岩测井响应特征数据
岩性 |
GR (API) |
RLLD (Ω∙m) |
CNL (%) |
DEN (g/cm3) |
AC (μs/m) |
安山岩 |
42~82 |
13~227 |
10~29 |
2.43~2.62 |
203~247 |
安山质 火山角砾岩 |
51~92 |
8~142 |
3~32 |
2.36~2.65 |
197~265 |
安山质 凝灰岩 |
45~102 |
13~133 |
5~25 |
2.37~2.7 |
203~251 |
流纹岩 |
109~199 |
11~305 |
1~31 |
2.34~2.64 |
195~273 |
流纹质 火山角砾岩 |
96~160 |
10~299 |
1~22 |
2.39~2.62 |
207~271 |
流纹质 凝灰岩 |
7~173 |
19~100 |
5~24 |
2.32~2.59 |
211~268 |
3.2. 基于随机森林的火山岩岩性识别
基于研究区13口井133层的岩性样本,选取GR、AC、CNL、DEN、RLLD、RLLS作为样本属性,以bagging随机抽样形式,用样本数量的80%作为训练集,以样本数量的20%作为测试集,对样本数据进行随机化处理,采用分级划分岩性的思想,建立了逐级划分岩性的火山岩岩性识别随机森林模型,需要调节的参数为:节点分裂准则,决策树的最大深度,最大特征数以及决策树分类器的个数。
(1) 节点分裂准则
由于岩性识别受到流体性质等多种因素的影响,选用单一属性信息会对分类结果带来偏差,考虑到信息增益率会选择预测样本中的更多属性,因此,选择信息增益率作为节点分裂准则。
(2) 决策树最大深度
随机森模型中单棵决策树的最大深度表示决策树分类器节点深度的最大值,分别模拟了不同决策树最大深度的10次测试的精度,具体结果见表2。从表中可以看到:最大深度为8时,随机森林模型识别火山岩成分特征的准确率为90.4%,识别效果较好。以此类推,分别确定了识别安山岩、安山质(沉)火山角砾岩与安山质(沉)凝灰岩的最大深度分别为9、6,识别流纹岩、流纹质沉火山角砾岩、流纹质(沉)凝灰岩的决策树最大深度为7、5。具体参数详见表3。
Table 2. Maximum depth characteristics analysis for volcanic rock lithology identification
表2. 火山岩岩性识别最大深度特征分析
决策树最大深度 |
测试集准确率 |
训练集准确率 |
1 |
90.7% |
90.6% |
2 |
87.8% |
90.6% |
3 |
93.3% |
94.2% |
4 |
88.5% |
99.5% |
5 |
88.1% |
100% |
6 |
90% |
100% |
7 |
87.8% |
100% |
8 |
90.4% |
100% |
9 |
89.6% |
100% |
100 |
88.5% |
100% |
Table 3. Parameters of random forest model for volcanic rock lithology identification
表3. 火山岩岩性识别随机森林模型参数
火山岩分类识别 |
属性 |
识别率 |
最大特征数 |
最大深度 |
决策树分类器个数 |
训练集平均识别率 |
测试集平均识别率 |
安山质火山岩 |
流纹质火山岩 |
6 |
8 |
50 |
100% |
92.3% |
安山岩 |
安山质火山碎屑岩 |
3 |
9 |
20 |
100% |
87.5% |
流纹岩 |
流纹质火山碎屑岩 |
3 |
7 |
20 |
100% |
70.1% |
安山质凝灰岩 |
安山质火山角砾岩 |
3 |
6 |
30 |
100% |
75.0% |
流纹质凝灰岩 |
流纹质火山角砾岩 |
6 |
5 |
10 |
89.2% |
63.8% |
(3) 最大特征数
随机森林模型最大特征数的选取一般有3种方式:原始最大特征数,原始最大特征数开根号,以2为底原始最大特征数的对数,三种计算结果分别为6、2、3,图4分别模拟了最大特征数是2、3、6情况下的岩性识别的精度,从图中可以看到:火山岩成分识别的最大特征数为6时,火山岩精度最高,并且火山岩识别的稳定性最好,因此确定了火山岩岩性成分识别的最大特征数为6,以此类推,识别安山岩、安山质(沉)火山角砾岩与安山质(沉)凝灰岩的最大特征数分别为3、3;识别流纹岩、流纹质(沉)凝灰岩与流纹质沉火山角砾岩的最大特征数为3、6,具体信息详见表3。
Figure 4. Schematic diagram of the variation in simulation prediction accuracy of the maximum characteristic number of volcanic rocks
图4. 火山岩最大特征数模拟预测精度变化示意图
(4) 决策树分类器的个数
决策树分类器的个数是随机森林模型的又一参数,但它对于随机森林的表现往往是微弱的提升,而且,分别模拟火山岩随机森林模型中决策树分类器的个数影响预测精度的变化(图5),从图中可以看出:当火山岩随机森林模型的决策树分类器个数为50时,模型预测的精度最高,且预测结果较为平稳。依次类推,确定了安山岩、安山质(沉)火山角砾岩与安山质(沉)凝灰岩、流纹岩、流纹质沉火山角砾岩与流纹质(沉)凝灰岩随机森林模型的决策树分类器个数分别为20、30、20、10。
针对火山岩岩性复杂的特点,调节了火山岩随机森林模型的节点分裂准则,最大特征数,决策树的最大深度以及决策树分类器的个数等参数,确定了适用于该地区的火山岩识别岩性的最优的随机森林模型参数,并给出了随机森林模型的岩性识别准确率(表3),从表3中可以看出:对于安山质(沉)火山岩,随机森林模型的识别精度略高,测试集识别率为87.5%、75.0%,而流纹质火山岩识别精度略低,测试集识别率平均为70.1%、63.8%。
Figure 5. Schematic diagram of the variation in simulation prediction accuracy of the number of decision tree classifiers for volcanic rocks
图5. 火山岩决策树分类器个数模拟预测精度变化示意图
3.3. 随机森林模型岩性识别准确性分析
火山岩随机森林模型的调节参数主要为节点分裂准则,最大特征数,决策树最大深度以及决策树分类器的个数。
由于岩性识别受流体性质等多种因素的影响,选用单一的属性信息会对分类结果造成偏差,考虑到信息增益率会选择预测样本中的更多属性,因此,选择信息增益率作为节点分裂准则。
最大特征数对岩性识别影响较大,最大特征数太小,随机抽取的特征空间就会存在一定的相关性,进而使得随机森林模型中的每棵决策树存在一定的相关性,降低了模型的泛化能力,最大特征数太大,往往形成的单棵决策树结构复杂,模型的泛化能力较弱。
决策树分类器的个数对火山岩岩性分类是个弱提升,因此,通过枚举法来确定决策树分类器的个数得到结果更可靠。
4. 效果分析
将进行了岩性深度归位的钻井取心、井壁取心岩性信息结合岩石薄片鉴定结果,确定火山岩岩性的名称,保证了岩性定名的可靠性,选取的岩性数据都来自井眼稳定的层段,避免了扩径的影响,建立了岩性与测井曲线间可靠的映射关系。
基于随机森林模型,对全区15口重点井进行了处理。其中:图6给出了XX井随机森林模型岩性识别实例,从图中可以看出:火山岩成分为流纹质(沉)火山岩,XX15~XX16.5m井段,随机森林模型解释岩性为流纹岩,FMI上显示为流纹岩特征的流动构造,因此将其校正为流纹岩。XX16.5~XX25m井段,随机森林模型解释岩性为流纹质(沉)凝灰岩,FMI上显示为凝灰岩特征的块状构造,因此将其校正为流纹质(沉)凝灰岩。
Figure 6. Case analysis of volcanic rock lithology identification
图6. 火山岩岩性识别实例分析
5. 结论
(1) 通过系统模拟最大深度、最大特征数及决策树数量等参数对随机森林模型识别精度的影响,优化并确定了模型关键参数,结合适当的节点分裂准则,构建了兼具较高准确性与泛化能力的最优随机森林模型。
(2) 基于分级识别思想,首先,利用随机森林模型识别火山岩成分特征,进而识别其结构特征,简化了识别模型流程。对研究区15口重点井进行岩性识别,可以准确地识别出安山岩、安山质(沉)火山角砾岩、安山质(沉)凝灰岩、流纹岩、流纹质沉火山角砾岩、流纹质(沉)凝灰岩6种岩性。识别结果平均准确率为80.2%。
(3) 本文设计的模型建立在X断陷特定地质背景下的数据基础上,若推广至其他地质条件差异显著的地区,可借鉴本文方法重新训练和验证,以避免因地质背景变化而引起的识别性能下降。后续研究可扩充样本规模、融合多源数据,以进一步提升模型泛化能力与稳健性。
NOTES
*通讯作者。