APP下载

LOO-XGboost模型预测岩石爆破块度*

2022-03-31叶海旺胡俊杰王其洲DAHMONYEGNIGHISLAIN

爆破 2022年1期
关键词:交叉岩石神经网络

叶海旺,胡俊杰,雷 涛,李 宁,王其洲,DAHÉ MONYEGNI GHISLAIN

(1.武汉理工大学 a.资源与环境工程学院;b.安全科学与应急管理学院,武汉 430070; 2.矿物资源加工与环境湖北省重点实验室,武汉 430070)

岩石爆破块度是衡量生产爆破效果最重要的指标之一,岩石爆破后的块度制约着后续生产过程中的装载、拖运和破碎作业等。因此国内外专家对爆破块度预测做了许多研究,Gheibie等提出了一种效果较好的Kuz-Ram爆破块度预测模型[1]。聂军等证明了GEM方法在爆破块度预测方面的可靠性[2]。史秀志等得出SVM、LS-SVR方法预测岩石爆破块度优于Kuz-Ram公式法[3,4]。刘阳等提出随机森林和GA-BP神经网络方法优于多元回归以及BP神经网络[5]。唐跃等基于10折交叉验证证明了RBF核优于线性核,且单次随机试验的随机误差大[6]。柳小波等证明了RBF核函数的神经网络优于BP神经网络[7]。潘玉忠等证明了SVM模型优于BP神经网络模型[8]。王仁超等基于10折交叉验证证明了随机森林模型优于BPNN、SVR模型[9]。岩石爆破实验成本较高,因此爆破块度预测的数据样本量较少,为了让爆破数据得到客观充分的利用,提高预测精度,运用留一法(Leave-One-Out,LOO)对爆破数据进行预处理,然后导入XGboost算法(eXtreme Gradient Boosting,XGboost)[10],使用Python 3.7构建LOO-XGboost模型来对岩石块度进行预测。

1 留一法与极限梯度提升算法原理

1.1 留一法(LOO)

留一法(LOO)属于交叉验证法的特殊情况,它将每条数据都作为一次测试集,除测试集外的数据皆作为训练集,充分利用所有数据,训练与数据量相同的次数,以此类推得到所有数据的预测值。

1.2 极限梯度提升(XGboost)

极限梯度提升(XGBoost)属于集成学习算法,是近年来机器学习中表现较好的算法[11],XGboost在目标函数中加上了正则化项,此外XGboost算法使用到了二阶导数,损失更精确。XGBoost算法基本原理如下[12-15],对于给定数据集D={(Xi,yi)},K个集成树模型的输出为

fk∈F,F={f(x)=wq(x)},(q:R→T,w∈RT)

(1)

式中:F为所有CART树的函数空间,每个fk函数值为样本点所在叶节点的得分。q为多个样本点映射到各叶子结点的函数,T为叶子结点的个数,wi代表第i个叶子结点的得分。

定义带正则项的目标函数为

(2)

(3)

式中:γ、λ为均为惩罚系数,经过t轮迭代后的目标函数为

(4)

(5)

再设Ij表示第j个叶子节点中所有的样本,即Ij={i|q(xi)=j},对xi∈Ij有wq(xi)=wj,则目标函数可写成

(6)

(7)

则最小损失的目标函数如下

(8)

信息增益(Information Gain)为

(9)

XGboost算法在每轮测试时都会求出一个最优的信息增益,然后根据这个最优的信息增益来指导生成决策树,通过不断迭代找到最优树模型。

2 模型建立

T Hudaverdi等收集了世界上6座不同矿山的爆破数据建立了包含97组样本的小型爆破数据库[16],研究人员考虑了主要的爆破设计参数并将其综合为7个影响因子:孔距与抵抗线比(S/B),台阶高度与抵抗线比(H/B),抵抗线与孔径比(B/D),堵塞长度与抵抗线比(T/B),炸药单耗(PF),平均原岩块度(XB),弹性模量(E),取其中31组爆破数据来进行模型检验,详细数据见表1。

表1 爆破数据样本Table 1 Blasting data samples

为了提高预测精度,提高求解速度,预测之前,对数据进行归一化(Normalization)预处理,公式如下

(10)

式中:Xnew为处理后的数据值,Xmin、Xmax为数据中的最小、最大值。

使用Python 3.7软件建立LOO-XGboost预测模型,详细步骤如下:

(1)将归一化后的数据导入到Python 3.7中,编写LOO-XGboost模型程序。

(2)数据导入LOO-XGboost程序进行训练,然后进行参数寻优,得到模型优化参数如下:学习率为0.30(learning rate=0.30),CART树数量为50(n_estimators=50),最大深度为3(max_depth=3),最小叶子结点权重为3(min_child_weight=3),通过LOO-XGboos模型,运行31次,得到每条测试集的预测值,即31组平均粒径(X50)预测值。

(3)计算相关系数(R2)、均方根误差(RMSE)、平均绝对误差(MAE),流程如图1,相关公式如下[17]

图1 模型建立流程图Fig. 1 Flow chart of model establishment

(11)

(12)

(13)

3 预测结果分析

将LOO-XGboost模型预测的31组平均粒度(X50)与留一法下的支持向量机回归(LOO-SVR)、BP神经网络(LOO-BPNN)、随机森林(LOO-RF)模型以及10折交叉验证XGboost模型(10FLOD-XG-boost)的预测结果对比,预测结果保留2位小数,结果如表2,图2。

表2 不同模型的预测结果Table 2 Comparison of prediction results under different models

图2 不同模型的预测结果折线图Fig. 2 Line diagrams of prediction results of different models

计算出各模型的R2、RMSE、MAE作为评价指标,结果如表3、图3。

图3 评价指标对比图Fig. 3 Comparison diagram of evaluation indices

表3 评价指标对比Table 3 Comparison of evaluation indices

根据上述的评价结果可知,LOO-XGboost模型预测岩石爆破块度的效果最好,R2值为0.9128,RMSE为0.0587,MAE为0.0342,而其他模型的R2值分别为0.7478、0.7321、0.8160、0.8320,RMSE分别为0.0998、0.1029、0.0853、0.0814,MAE分别为0.0813、0.0745、0.0531、0.0572,综上LOO-XGboost预测精度与其他模型相比有较大提高,并且证明了在块度预测问题上XGboost算法比SVR、BPNN、RF更优,LOO比10折交叉验证更优。

4 结论

(1)利用Python 3.7软件建立LOO-XGboost模型用于岩石爆破块度的预测,解决了数据集划分不合理,模型训练次数不足的问题。

(2)根据评价指标对比结果得出预测效果排序为:LOO-XGboost>10折交叉验证XGboost>LOO-RF>LOO-SVR>LOO-BPNN。其中LOO-XGboost模型预测的均方误差仅为0.0587且相关系数达到了0.9128,证明了此模型的优越性。

(3)LOO-XGboost模型充分利用了所有数据,预测精度高,其结果能作为以后岩石平均粒径(X50)参考值,对控制岩石爆破块度有指导作用,对精细化矿山爆破有积极意义。

猜你喜欢

交叉岩石神经网络
基于神经网络的船舶电力系统故障诊断方法
基于人工智能LSTM循环神经网络的学习成绩预测
MIV-PSO-BP神经网络用户热负荷预测
库克岩石
第五章 岩石小专家
真假月球岩石
“六法”巧解分式方程
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
岩石背后伸出的巨爪
连数