1. 引言
三维地质建模是一种利用计算机技术在三维环境下对地质数据进行处理和分析的方法,它能够将地质信息以三维模型的形式呈现出来。在土木工程、岩土工程、地下工程等领域,三维地质建模有助于我们理解地下地质情况,预测地质灾害风险,设计合理的工程方案,提高工程施工的安全性和效率。三维地质建模技术面临着如地质体形状的不规则性、工作量繁重、实时更新困难和模型精度问题[1]。三维地质建模方法分为显示建模与隐式建模[2]。显式建模方法是由专业人员通过具有相同属性的点按照对地质结构的理解由点到线、线到面、再由面到体的一种建模方法[3]。常见的显式建模方法有离散平滑插值法(DSI),该方法将表面建模为二维图形,并通过确定节点位置来适应多种异质数据。Wu提出的广义三棱柱体元(GTP)的三维地质建模方法,该方法通过改进和优化现有的模型,提高了模型的可靠性和质量[4];隐式建模是以数学模型为核心,确定插值方法和参数,可以在不需大量人机交互的情况下自动完成建模过程[5] [6]。赵勇使用GemPy提供的函数和工具来完成三维地质模型的建模过程[7]。郭甲腾采用了Hermite径向基隐函数曲面和隐函数模型的多边形化技术。该方法可以实现自动化、智能化构建矿体三维模型[8]。
得益于计算机科学的快速发展,地质学科也取得了跨越式发展,其中人工智能算法在其中起到了极大的推动作用[9]。李苍柏使用了多种不同的机器学习算法,勇于提取和识别地球化学异常信息[10]。Bai提出了结合模式识别算法(MPS)和卷积神经网络(CNN)的混合算法来实现地质体的高保真度模拟。Shi和Wang基于IC-XGBoost3D算法,采用两个垂直方向上的二维训练图形和有限的场地调查数据来学习并构建三维地层结构[11]。
综上,本文以焦作丹河电厂为基础,依据场地内240余条钻孔数据并基于多种机器学习算法,用于创建研究区域三维地质模型,解决一般隐式建模在面对非线性和复杂地质体的局限性。将三维地质建模转换为栅格的属性分类问题,使用场地钻孔数据对机器学习模型进行训练,利用模型的分类结果来构建三维地质模型。将不同的机器学习算法的结果进行比较,从而实现对地质结构的精准建模,对各建筑地段的地基做出详细的岩土工程评价,并对地基基础设计和不良地质作用整治的设计、施工提供岩土工程资料。
2. 研究方法
在本研究中,将采用随机森林、决策树、支持向量机、XGBoost等机器学习算法对研究区进行三维地质建模,将三维地质建模的插值问题转化为地下空间栅格单元的层序属性分类问题。将已有的钻孔数据预处理后,使用钻孔数据点的三维空间坐标作为特征输入,通过算法对钻孔数据的学习,可以预测未知的栅格单元的属性并将地层类别标签作为输出,进而实现基于机器学习的三维地质建模。建模流程如图1所示。
Figure 1. Flow chart of 3D geological modeling
图1. 三维地质建模流程图
2.1. 钻孔数据预处理
钻孔数据包括勘探点的坐标、高程、层的标高、分层厚度、地层年代、地层描述等。机器学习无法直接识别这些数据,因此需要将这些钻孔数据转化为连续的空间点云数据,如空间坐标X、Y、Z以及地层类别。
计算机无法理解不同地层分界点的地学含义,并且地层分界点较为稀疏,为了保证足够的数据量,因此需要将钻孔数据进行重采样。同时由于不同地层的厚度不同,会造成样本数据不平衡问题,这会导致分类器倾向于多数类而忽略少数类,从而影响分类器性能的可靠性。采用合适的重采样方法对于提高地层分类的准确性和稳定性具有重要意义。将不同厚度的地层按照相同间隔进行重采样,再经过修补和编码去重和错误检查等一系列操作,将钻孔数据转化为一系列连续的具有地层属性的四维空间点云数据(Xi, Yi, Zi, Ci) (图2)。最后,为了消除坐标大小和量纲的不同对分类器的影响,还需要对数据进行标准化处理,处理公式为:
Figure 2. Schematic diagram of borehole data re-sampling
图2. 钻孔数据重采样示意图
(1)
其中:x为原始数值,x*为标准化后的数值,
为原始数据的均值,
为原始数据的标准差。
2.2. 分类器选择
本文将采用决策树、随机森林、支持向量机、XGBoost四种分类器对模型进行训练,其中决策树、随机森林、XGBoost都为树类模型,这类模型易于理解和解释,能够处理数值型和类别型数据,并且可以用于解决分类和回归问题。而支持向量机能够有效地处理非线性可分的数据,对于分散不均衡的数据也有较好的表现,而钻孔数据比较符合这些特点。
2.2.1. 决策树
决策树是一种监督学习算法,用于分类和回归问题。它通过树形结构来表达决策规则,其中每个内部节点表示一个属性上的测试,每个分支代表这个属性的输出结果,每个叶节点存放一个类别。决策树的构建过程涉及到特征选择、树的生成以及剪枝等步骤。决策树构建过程中最重要的一步是选择合适的特征来划分数据集。常见的特征选择度量方法有信息增益、和基尼指数。
(2)
(3)
其中t代表给定的节点,i代表标签的任意分类,
代表标签分类i在节点t上所占的比例。
2.2.2. 随机森林
随机森林是一种集成学习方法,它通过组合多个模型(在这种情况下是决策树)来提高预测性能。集成学习的一个常见策略是Bagging (Bootstrap Aggregating),它通过从训练集中随机抽样来创建多个不同的训练集。随机森林的“随机”主要体现在两个方面:一是每棵树的训练样本是通过有放回抽样(Bootstrap Sampling)的方式从原始数据集中随机选取的;二是每棵树在分裂节点时,只考虑一部分随机选取的特征而非所有特征。这种随机性增加了每棵树的差异性,从而减少了模型之间的相关性,提升了模型的多样性。每棵树都是通过决策树算法训练得到的,每棵树都可以独立地对新的输入数据进行预测。在分类任务中,每棵树的预测结果会被汇总并通过多数表决的方式得出最终结果;在回归任务中,则是通过所有树预测值的平均来得出最终结果。
2.2.3. 支持向量机
支持向量机是一种监督学习算法,SVM的目标是在特征空间中找到一个超平面,使得不同类别的数据点之间的间隔最大化。这个间隔是指从超平面到最近的数据点(支持向量)的距离。设定一个二分类问题,给定训练数据集
其中
,
。SVM试图找到一个决策函数
,使得
,使得
对于所有i成立。为了使间隔最大化,我们最小化
的范数
,同时满足上述不等式约束。核函数定义为
,其中
是从输入空间到特征空间的映射,而
是输入空间中两个实例之间的内积。通过使用核函数,可以避免在高维空间中显式地计算映射
的值,从而简化计算。
2.2.4. XGBoost
XGBoost是一种基于梯度提升决策树的优化分布式梯度提升框架,它通过一系列的优化措施,极大地提升了GBDT算法的性能。在训练XGBoost模型时,每棵树的训练都会考虑之前所有树的预测结果,即当前树的预测值会被加到之前所有树的预测值之上。这种策略使得每棵树都能够学习到之前模型的残差,从而逐步改进模型的预测能力。在训练过程中,XGBoost会根据特征的信息增益来决定分裂点。信息增益越大,特征越有可能被选中作为分裂特征。对于每个叶子节点,XGBoost都会计算一个最优权重值wj,以使得目标函数最小化。尽管XGBoost的基本框架是序列化的,但它在特征层面实现了并行化。具体来说,XGBoost可以并行计算每个特征的增益,从而加快树的构建速度。XGBoost由于其高效、灵活和轻便的特点,在数据挖掘、推荐系统等领域得到广泛的应用。此外,XGBoost在处理特征挖掘分析时也表现出色。
3. 研究案例
3.1. 研究区概况
焦作丹河电厂异地扩建2 × 1000 MW机组上大压小工程,工程厂址位于河南省沁阳市西万镇校尉营村西,东距焦作市约31.5 km,东南距沁阳市约10.5 km。厂址北侧紧邻焦柳铁路,焦克公路在厂址南侧东西向通过,西向石河在厂址西侧约1.0 km处由北向南流过。场地主要是农田,地下无管网设施,地上无高大建筑物,工程环境条件较好。厂址地貌上处于太行山南麓山前冲洪积扇中上部的缓倾斜坡地地带,总体地势较开阔,北高南低,地面起伏较大,地面标高一般在143.18~172.50 m间。
勘探结果表明地基土主要由第四系山前冲洪积的卵石层和黏性土组成。场地以卵石为主,黏性土成透镜体及夹层形式分布在卵石中的规律。勘探深度内揭露的岩土地层依据物理及工程特性指标可以分为3个主层和2个亚层。场地共布置完成勘探点247个,并利用初勘探点5个,共253个勘探点。其中选取其中80%的钻孔数据作为训练集,剩余的20%钻孔数据作为验证集。
根据该地段的主要建筑物可将建筑地段分为主厂房地段、冷却塔地段、贮煤与辅助、附属地段。主厂房地段勘探点间距20~35 m;冷却塔地段勘探点间距25~40 m,勘探点的钻孔深度在8~55.5 m。勘探深度内揭露的岩土地层的最小厚度为0.5 m,最大厚度为24.6 m。钻孔的分布信息如图3所示。
Figure 3. Distribution map of boreholes
图3. 钻孔分布图
3.2. 参数优化
超参数优化是机器学习中不可或缺的一部分,它不仅能够显著提升模型的性能,还能帮助模型更好地适应不同的应用场景,提高模型的泛化能力和可靠性。并且在超参数优化之前还需要为每个超参数定义一个搜索范围或分布,这些范围通常是基于领域知识或初步实验得到的结果。常见的超参数优化方法包括网格搜索、随机搜索、贝叶斯优化等。对于每一个超参数组合,训练模型并在验证集上评估其性能。通常使用交叉验证(如k-fold交叉验证)来确保评估的准确性和鲁棒性。根据初步实验结果,可能需要多次迭代,每次迭代都可以在前一次实验的基础上进行调整和缩小超参数的搜索范围,以找到更精确的超参数值。本研究将使用贝叶斯优化作为优化策略、并通过5折交叉验证来评估模型的性能,从而识别出模型性能最好的超参数组合。每种分类器的最佳超参数组合如表1所示。
Table 1. Hyperparameter adjustments
表1. 超参数调整
分类器 |
超参数 |
超参数范围 |
最佳超参数 |
决策树 |
criterion |
[gini, entropy] |
Entropy |
max_depth |
[2, 100] |
81 |
随机森林 |
criterion |
[gini, entropy] |
Entropy |
max_depth |
[10, 500] |
27 |
n_estimators |
[2, 30] |
227 |
支持向量机 |
C |
[1e−3, 1000] |
7.321 |
gamma |
[1e−3, 200] |
6.651 |
XGBoost |
max_depth |
[3, 100] |
31 |
n_estimators |
[50, 3000] |
383 |
learning_rate |
[1e−3, 1] |
0.056 |
3.3. 模型评估
常用的模型评估指标有准确率(Accuracy)、精确度(Precision)、召回率(Recall)和F1分数(F1 Score),计算公式如下所示:
(4)
(5)
(6)
(7)
其中:TP (True Positives)表示真正例的数量,TN (True Negatives)表示真负例的数量,FP (False Positives)表示假正例的数量,FN (False Negatives)表示假负例的数量。
各个分类器在最佳超参数组合下的评估指标结果如表所示。可以看出XGBoost和支持向量机的分类效果较好,其中XGBoost的准确率、召回率和F1分数最高。支持向量机的精确度最高。本文还引入ROC曲线与混淆矩阵来判断分类器是否有评估性能不佳的区域(如图4)。混淆矩阵可以非常直观地展示分类器的性能,其中混淆矩阵的横坐标表示预测标签,纵坐标表示真实标签。ROC曲线以假阳性率(False Positive Rate, FPR)为横轴,真阳性率(True Positive Rate, TPR)为纵轴绘制而成,FRP与TRP的计算公式如式(8)和式(9)。ROC曲线下的面积(Area Under the Curve, AUC)也被用来量化模型的性能。AUC的取值范围从0到1,AUC值越大,说明模型区分正负类的能力越强。
(8)
(9)
Table 2. Model prediction results
表2. 模型预测结果
分类器 |
准确率 |
精确度 |
召回率 |
F1分数 |
决策树 |
80.18% |
82.04% |
80.18% |
80.48% |
随机森林 |
81.27% |
85.79% |
81.27% |
82.06% |
支持向量机 |
88.18% |
89.63% |
88.18% |
88.27% |
XGBoost |
88.98% |
89.45% |
88.98% |
89.07% |
Figure 4. ROC curve graph and confusion matrix
图4. ROC曲线与混淆矩阵图
Figure 5. The three-dimensional geological model prediction results
图5. 三维地质模型预测结果
四种分类器的预测结果如表2所示,其中支持向量机与XGBoost的准确率较高,因此不考虑决策树与随机森林的分类效果,只考虑支持向量机与XGBoost的分类效果。
通过对比两种分类器生成的三维地质模型,支持向量机生成的模型的地层边界更加光滑,但是由于钻孔数据有限并且没有虚拟钻孔的支撑,导致地层模型不够真实。XGBoost生成的模型更加符合真实情况,并且不需要额外的虚拟钻孔即可得到较好的建模结果。缺点是当某一个地层的钻孔数据量较少时,会导致该地层的精确度较低。三维地质模型如图5所示,XGBoost的模型在整体上分类结果较好,在地层分界处不如支持支持向量机的模型光滑。红色区域为卵石层,由于部分钻孔深度有限,导致部分区域缺少相应的钻孔数据,黄色区域为粉质黏土形成的透镜体,钻孔数据也较少。在支持向量机的模型中,数据较少的区域都被识别成透镜体而导致模型不真实,而XGBoost的模型中只有黄色区域的分类结果较差,通过图4也能看出XGBoost对于透镜体的分类精确度较低,只有67%。
4. 结论
本文将已有的钻孔数据转化为具有标签属性的空间点集,将三维地质建模问题转化为地下空间栅格的地层属性分类问题,并对比了决策树、随机森林、支持向量机和XGBoost等四种分类器的性能,其中XGBoost的建模准确率最高,达到了88.98%。
XGBoost在不需要额外人工添加钻孔数据和虚拟钻孔的情况下,所建的三维地质模型更加真实可靠。
XGBoost在面对钻孔数据较少的地层时,该地层的精确度较低。支持向量机在面对该情况时有着较好的表现。