翟小伟,罗金雷,张羽琛,宋波波,郝乐,周妤婕
(1.西安科技大学 安全科学与工程学院,陕西 西安 710054;2.西安科技大学 陕西省煤火灾害防控重点实验室,陕西 西安 710054;3.陕西高校青年创新团队 矿山应急救援创新团队,陕西 西安 710054)
煤自燃是煤矿中一种较为常见的灾害,特别是采空区浮煤自燃,不仅会造成大量资源浪费,还使工作人员的生命安全面临严峻挑战,严重影响了煤矿的安全生产[1-3]。因此,准确预测煤自燃程度对于煤矿安全生产具有重大现实意义。
温度是煤自燃最直接的表现,但采空区内部较为隐蔽,难以接近,直接检测采空区的煤体温度较为困难,所以需要采取间接测量技术手段[4]。目前,气体分析法是最常用的煤温间接测量方法之一,可通过测量指标气体浓度,并利用指标气体浓度与煤温存在的非线性关系预测煤自燃温度[5],很多学者对其进行了深入研究。邓军等[6]利用采空区实测数据建立了基于随机森林(Random Forest,RF)方法的煤自燃预测模型,在不同矿井进行煤自燃温度预测,均具有良好的应用效果。Deng Jun 等[7]采用模拟退火(Simulated Annealing,SA)算法对支持向量机(Support Vector Machine,SVM)的超参数进行优化,构建了SA-SVM 煤自燃温度预测模型,并通过现场数据对模型进行了验证,结果表明SA-SVM 模型可较为准确地预测煤自燃温度。周旭等[8]采用极限梯度提升树算法(Extreme Gradient Boosting,XGBoost)建立了煤自燃温度预测模型,并利用粒子群优化算法(Particle Swarm Optimization,PSO)对XGBoost 模型的随机采样率和最小叶子节点样本权重进行优化,实现了煤自燃温度的准确预测。上述预测模型可较为准确地预测煤自燃温度,模型的建立大多基于较为完整的样本数据,但仪器故障或人为错误难以完全避免,样本数据会存在缺失[9]。指标气体数据的缺失会导致煤自燃温度预测模型存在准确率低、过拟合等问题。因此需对缺失数据进行处理。本文采用K 最邻近算法(K-Nearest Neighbor,KNN)、决策树(Decision Tree,DT)、RF 和基于粒子群优化的支持向量回归(Particle Swarm Optimization-Support Vector Regression,PSO-SVR)等常用的填补算法对指标气体数据进行填补[10-13],利用填补后的数据,通过RF、XGBoost 和SVR 算法建立了基于数据填补的煤自燃温度预测模型,同时利用PSO 优化模型参数,并对数据填补后的模型性能进行了对比分析。
1.1.1 KNN 算法
KNN 算法是最常用的填补算法之一,它简单易用,且模型训练时间短。KNN 算法先根据度量定义寻找与含缺失数据样本最相似的k个样本,即k个邻居,再计算它们的中位数或众数,并以此作为填补值。
1.1.2 DT 算法
DT 算法训练速度和预测速度较快,能够及时获取预测结果。因此,DT 算法也常被用于数据填补。DT 算法采用分类与回归决策树(Classification and Regression Trees,CART)的回归策略,通过递归二叉分裂划分区域,根据最小均方差的原则寻找分割点,构建回归树对缺失值进行预测填补。
1.1.3 RF 算法
RF 算法预测精度高,不易过拟合,且无需复杂的参数设置和优化。RF 算法基于Bagging 思想,通过Bootstrap 抽样建立DT 基学习器,由于每个随机子集都不同,保证了构建DT 样本集的多样性。采用随机特征选择方法,DT 上每个节点对应的特征也存在差异,进一步保障了DT 的多样性,从而极大程度降低了DT 之间的相关性。对每个DT 基学习器的回归结果进行平均后得到最终结果。
1.1.4 PSO-SVR 算法
SVR 精度是由核函数决定的,SVR 核函数有线性核函数、高斯径向基核函数(RBF)和多项式核函数等。一般情况下,RBF 核函数在非线性数据上效果显著,因此本文选择RBF 核函数。
惩罚因子C、核函数参数G是SVR 的关键参数,本文采用PSO 对SVR 关键参数进行优化,形成基于PSO-SVR 的缺失数据填补方法。设种群粒子的个数为N,解空间为D维,第i个粒子的速度为Vi,其个体极值为pbest,种群的全局极值为gbest。在每一次的迭代中,粒子通过跟踪pbest,gbest来更新自己。粒子速度和位置更新公式为
设最大迭代次数为50,种群规模为50。根据经验,设置参数优化范围为C∈[0.01,100],G∈[0.01,50]。步骤如下:
(1)初始化粒子位置X与速度V,适应度函数为真实值与填补值的平均绝对误差百分比,初始的个体极值和全局极值分别为粒子的初始位置和适应度值最小的个体极值。
(2)每个粒子根据式(1)和式(2)更新自己的速度和位置。
(3)计算每次迭代后粒子的适应度值。
(4)更新个体极值和全局极值。
(5)判断是否满足终止条件,是否达到最大迭代次数,否则返回步骤(3)。
(6)将输出的最优参数赋给SVR,用于数据填补。
1.1.5 XGBoost 算法
XGBoost 算法[14]是一种基于梯度提升决策树(Gradient Boosted Decision Tree,GBDT)的优化改进算法,通过多棵DT 组合来拟合上次回归预测反馈的残差。相较于GBDT,XGBoost 通过对损失函数二阶泰勒展开以逼近目标函数,求整体最优解,并加入正则项控制模型复杂度,防止过拟合。因而XGBoost具有较高的精度和泛化性,目标函数为式中:A为树中叶节点的数量;Fa为叶子节点a所包含样本的一阶偏导数fb之和;Ha为叶子节点a所包含样本的二阶偏导数hb之和;λ为固定系数;γ为复杂度参数;b为Ba样本中的个体,Ba为叶子节点a样本集中的样本。
将当前待填补的不完整特征当作标签,其他的特征和原本的标签组成新的特征矩阵,运用KNN,DT,RF,PSO-SVR 算法训练填补模型,将模型的输出值作为填补值,具体策略如下:
(1)当多数特征含有缺失值时,要填补一个特征,先将其他特征的缺失值用0 占位。每完成一次填补,使当前填补好的特征参与到下一个特征的填补中,直至填补所有缺失值。
(2)当少数特征含有大量缺失值时,将第1 个待填补缺失值的特征作为标签列,其他完整特征和原始标签列作为特征矩阵,但其他含有缺失值的特征不参与计算。填补完第1 个特征时,使当前填补好的特征参与到下一个特征的填补中,直至填补完所有缺失值。
基于数据填补的煤自燃温度预测模型构建流程如图1 所示。
图1 基于数据填补的煤自燃温度预测模型构建流程Fig.1 Process of coal spontaneous combustion temperature prediction model based on data filling
采用PSO 优化参数,设PSO 的惯性权重ω为0.8,学习因子c1、c2为0.5,最大迭代次数为50,种群规模为50。RF 主要参数范围设置:树的数量n_estimators为[20,100],树的深度max_depth 为[10,25];XGBoost主要参数范围设置:树的数量n_estimators 为[10,500],学习率learning_rate 为[0,1],树的深度max_depth 为[1,10],正则项reg_lambda 为[1,25];SVR 参数设置:C∈[0.01,100],G∈[0.01,50]。模型构建的具体步骤如下:
(1)将通过实验获取的指标气体浓度作为特征,煤温作为标签,对数据进行标准化。
(2)采用5 折交叉验证法划分训练集和测试集。
(3)初始化参数并随机生成一组粒子的速度与位置。
(4)通过式(1)和式(2)更新粒子的速度与位置。采用均方根误差(Root Mean Square Error,RMSE)作为适应度函数,计算比较每次迭代后粒子适应度值,更新个体极值和全局极值。
(5)判断是否满足终止条件,是否达到最大迭代次数,否则返回步骤(4)。
(6)将输出的最优参数赋给RF/XGBoost/SVR模型,用于煤自燃温度预测。
从陕西省铜川市柴家沟矿采集新鲜煤样2 t 左右进行煤自然发火实验。结合常用于预测预判煤自燃危险程度的气体指标[15],选取CO,CO2,CH4,C2H6,O2体积分数作为表征煤自燃危险程度的指标。根据实验结果绘制柴家沟矿煤样指标气体随煤温变化关系图,如图2 所示。
从图2 可看出:CO 体积分数随着煤温的上升表现为指数形式,且上升过程呈阶段性变化;CO2体积分数随着煤温的升高而上升,且上升过程表现出较为明显的阶段性变化;随着煤温的不断上升,CH4体积分数也逐渐升高;C2H6体积分数随着煤温的上升呈先上升后下降趋势,煤温超过70 ℃后,C2H6体积分数达到峰值;O2体积分数随着煤温持续上升逐渐下降。初期阶段能检测到少量的CO,CO2,CH4气体,CO,CO2体积分数变化幅度较小。当煤温超过临界温度70 ℃后,CO,CO2体积分数曲线的斜率明显增大,CH4体积分数也明显增大,当煤温持续上升至干裂温度100 ℃后,煤体发生剧烈的氧化反应,CO,CO2,CH4体积分数快速上升。实验结果表明:CO,CO2,CH4,C2H6,O2体积分数的变化与煤温相对应,具有明显的相关性,可作为煤自燃预警指标。
图2 柴家沟矿煤样指标气体随煤温变化关系Fig.2 Relationship between index gas of coal sample and coal temperature in Chaijiagou Mine
在实际测量中,出现缺失值的情况有以下2 种:①由于传感器、气相色谱仪等设备异常或者人为误操作,测量出现较大误差,出现偏差过大的异常值,预处理之后会出现多数特征含有缺失值的情况。② 部分气体传感器、气相色谱仪等设备故障,造成部分气体数据存在缺失,出现少数特征含有大量缺失值的情况。因此,本文设计2 种缺失值:所有特征都含有缺失值和少数特征含有大量缺失值。
设备异常导致的缺失具有随机性,所以设置数据缺失类型为完全随机缺失,设置整体缺失率为10%,20%,30%。由通过RF 方法获得的特征重要性(表1)可知,CO,CO2的特征重要性较高,对预测结果有较大影响,为更好地比较填补算法的优劣,选择CO,CO2作为含有较多缺失值的特征,缺失率为40%,50%,60%。
表1 特征重要性Table 1 Importance of characteristics
为客观评估模型的性能,本文选择常用的3 种评估指标来评估模型精度:平均绝对误差百分比(Mean Absolute Percentage Error,MAPE)、判断系数R2和RMSE。式中:PE为平均绝对误差百分比;为第c个样本的预测值,c=1,2,…,n,n为样本数量;yc为第c个样本的实际值;为样本平均值;ME为均方根误差。
对不同缺失比例的数据集分别采用 KNN、RF、DT 和 PSO-SVR 填补算法进行填补实验,每种算法均重复填补100 次(填补值取100 次的均值),部分特征的填补值与原始数据的对比如图3 和图4 所示。计算所有特征的填补值和原始数据的 MAPE(取100 次实验的均值),并相加,结果如图5 所示。
图5 填补效果对比Fig.5 Comparison of filling effect
从图3 和图4 可看出:数据缺失率为10%,20%时,4 种填补算法的填补数据与原始数据相比,均无明显差异,随着缺失率的增大,所有算法的填补效果呈下降趋势。在CO,CO2缺失率为40%,50%,60%时,RF 算法填补的前7 个样本点数据质量差,特别是 CO2数据有较明显的差距,但整体填补效果较好;DT 算法填补数据与原始数据的总体差异较小,但CO,CO2缺失率为 60% 时,差异明显增大;缺失率为30%时,KNN 与PSO-VR 算法的填补数据开始振荡,填补效果显著下降。
图3 不同缺失率下CO2 体积分数的数据填补效果对比Fig.3 Filling effects comparison of CO2 volume fraction data at different miss rates
图4 不同缺失率下CO 体积分数的数据填补效果对比Fig.4 Filling effects comparison of CO volume fraction data at different miss rates
从图5 可看出:对于6 种不同缺失数据,DT 填补算法的MAPE 最小。CO,CO2缺失率为40%,50%和60%时,RF 的MAPE 偏大,这是由于煤自然发火初始阶段的指标气体浓度较低,RF 填补数据与原始数据相差较大,导致MAPE 显著增大。
综上可知,DT 算法填补的效果最优。
基于完整数据的模型预测精度指标对比见表2。可看出XGBoost 模型在训练阶段的效果极好,但测试阶段的MAPE、RMSE 明显增大,R2明显减小,明显过拟合,对于小样本数据,XGBoost 算法极易过拟合;SVR 模型在不调参的情况下效果显著低于其他模型,而RF 模型优于其他2 个模型。
表2 基于完整数据的模型评价指标对比Table 2 Comparison of model evaluation index based on complete data
不调参的XGBoost、SVR 模型精度极低,因此仅讨论不同填补算法对RF 模型在测试集上预测精度的影响,如图6 所示。
从图6 可看出,数据缺失对煤自燃温度预测模型精度有较大影响。整体缺失率为10%时,数据填补后的RF 预测模型精度和基于完整数据的RF 预测模型精度相差均不大,MAPE 在3.7%~4.2%之间。整体缺失率为20%,30%时,基于RF、DT 填补的预测模型的MAPE 分别为3.7%,3.5%,而基于KNN、PSO-SVR 填补的预测模型的MAPE 随着缺失率增加而大幅增加,最大可达8.3%。CO,CO2缺失率为40%,50%,60%时,基于RF、DT 填补的预测模型的MAPE 分别稳定在5.4%左右和4.3%左右,而基于KNN、PSO-SVR 填补的预测模型的MAPE 呈增长趋势,预测精度相对较低。基于DT 填补的RF 预测模型在6 种缺失率下的MAPE 平均值为4%,明显低于其他模型。
图6 基于不同填补算法的RF 预测模型在测试集上的精度对比Fig.6 Precision comparison of RF prediction models based on different filling algorithms in test set
综上所述,在6 种缺失情况下,基于DT 填补算法的预测模型精度总体优于基于其他填补算法的预测模型。
PSO 优化后模型指标见表3。可看出PSO 算法调参后,XGBoost 和SVR 模型精度均有较大的提升,而RF 模型却与调参前的效果差距不大,说明RF 模型不进行参数优化也有较好的预测精度;PSO-XGBoost模型过拟合情况减弱,精度提高,在训练集的效果最好;PSO-SVR 预测模型相较于调参前模型精度显著提高,在训练集和测试集上的预测效果相差最小,无过拟合情况,在测试集的效果最好,泛化性较强。
表3 基于完整数据的PSO 优化后的模型指标对比Table 3 Comparison of PSO optimized model index based on complete data
PSO 优化后的填补数据在测试集的预测精度对比和模型MAPE 平均值如图7 和表4 所示。
图7 不同缺失率下基于不同填补算法的预测模型性能对比Fig.7 Performance comparison of prediction models based on different filling algoriths under different miss rates
表4 不同缺失率下预测模型的平均MAPETable 4 Mean MAPE of prediction models under different miss rates %
从图7 和表4 可看出:基于DT 填补算法的预测模型的MAPE 明显低于基于其他填补算法的预测模型,说明DT 算法填补后的模型预测准确率更高。基于DT 算法填补的PSO-RF 模型和PSO-SVR 模型在测试集的MAPE 均值均在4%左右,但RF 与PSO-RF 模型的MAPE 相差极小,说明RF 无需调参,而SVR 需调参后才能满足预测要求。
综上可知,基于DT 填补算法的RF 煤自燃温度预测模型预测性能最优。
(1)在6 种数据缺失情况下,DT 算法填补效果优于其他3 种算法。在CO,CO2存在较多缺失值时,RF 算法的填补值与实际值的MAPE 偏大。
(2)基于4 种填补算法分别建立了RF、XGBoost和SVR 煤自燃温度预测模型。在不调参的情况下,XGBoost 模型虽然在训练集的效果极好,但极易过拟合,而SVR 模型预测效果极差,均无法满足预测要求。在6 种数据缺失情况下,基于DT 填补算法的RF预测模型的MAPE 的平均值为4%,不进行参数优化也有较好的预测精度,能够满足实际需求。
(3)在6 种数据缺失情况下,基于DT 填补算法的PSO-SVR、RF 与PSO-RF 预测模型的MAPE 均在4%左右,而基于DT 填补算法的RF 模型无需优化就能较好地预测出煤自燃温度,具有良好稳定性。