翟小偉,羅金雷,張羽琛,宋波波,郝樂,周妤婕
(1.西安科技大學(xué) 安全科學(xué)與工程學(xué)院,陜西 西安 710054;2.西安科技大學(xué) 陜西省煤火災(zāi)害防控重點實驗室,陜西 西安 710054;3.陜西高校青年創(chuàng)新團隊 礦山應(yīng)急救援創(chuàng)新團隊,陜西 西安 710054)
煤自燃是煤礦中一種較為常見的災(zāi)害,特別是采空區(qū)浮煤自燃,不僅會造成大量資源浪費,還使工作人員的生命安全面臨嚴峻挑戰(zhàn),嚴重影響了煤礦的安全生產(chǎn)[1-3]。因此,準確預(yù)測煤自燃程度對于煤礦安全生產(chǎn)具有重大現(xiàn)實意義。
溫度是煤自燃最直接的表現(xiàn),但采空區(qū)內(nèi)部較為隱蔽,難以接近,直接檢測采空區(qū)的煤體溫度較為困難,所以需要采取間接測量技術(shù)手段[4]。目前,氣體分析法是最常用的煤溫間接測量方法之一,可通過測量指標氣體濃度,并利用指標氣體濃度與煤溫存在的非線性關(guān)系預(yù)測煤自燃溫度[5],很多學(xué)者對其進行了深入研究。鄧軍等[6]利用采空區(qū)實測數(shù)據(jù)建立了基于隨機森林(Random Forest,RF)方法的煤自燃預(yù)測模型,在不同礦井進行煤自燃溫度預(yù)測,均具有良好的應(yīng)用效果。Deng Jun 等[7]采用模擬退火(Simulated Annealing,SA)算法對支持向量機(Support Vector Machine,SVM)的超參數(shù)進行優(yōu)化,構(gòu)建了SA-SVM 煤自燃溫度預(yù)測模型,并通過現(xiàn)場數(shù)據(jù)對模型進行了驗證,結(jié)果表明SA-SVM 模型可較為準確地預(yù)測煤自燃溫度。周旭等[8]采用極限梯度提升樹算法(Extreme Gradient Boosting,XGBoost)建立了煤自燃溫度預(yù)測模型,并利用粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)對XGBoost 模型的隨機采樣率和最小葉子節(jié)點樣本權(quán)重進行優(yōu)化,實現(xiàn)了煤自燃溫度的準確預(yù)測。上述預(yù)測模型可較為準確地預(yù)測煤自燃溫度,模型的建立大多基于較為完整的樣本數(shù)據(jù),但儀器故障或人為錯誤難以完全避免,樣本數(shù)據(jù)會存在缺失[9]。指標氣體數(shù)據(jù)的缺失會導(dǎo)致煤自燃溫度預(yù)測模型存在準確率低、過擬合等問題。因此需對缺失數(shù)據(jù)進行處理。本文采用K 最鄰近算法(K-Nearest Neighbor,KNN)、決策樹(Decision Tree,DT)、RF 和基于粒子群優(yōu)化的支持向量回歸(Particle Swarm Optimization-Support Vector Regression,PSO-SVR)等常用的填補算法對指標氣體數(shù)據(jù)進行填補[10-13],利用填補后的數(shù)據(jù),通過RF、XGBoost 和SVR 算法建立了基于數(shù)據(jù)填補的煤自燃溫度預(yù)測模型,同時利用PSO 優(yōu)化模型參數(shù),并對數(shù)據(jù)填補后的模型性能進行了對比分析。
1.1.1 KNN 算法
KNN 算法是最常用的填補算法之一,它簡單易用,且模型訓(xùn)練時間短。KNN 算法先根據(jù)度量定義尋找與含缺失數(shù)據(jù)樣本最相似的k個樣本,即k個鄰居,再計算它們的中位數(shù)或眾數(shù),并以此作為填補值。
1.1.2 DT 算法
DT 算法訓(xùn)練速度和預(yù)測速度較快,能夠及時獲取預(yù)測結(jié)果。因此,DT 算法也常被用于數(shù)據(jù)填補。DT 算法采用分類與回歸決策樹(Classification and Regression Trees,CART)的回歸策略,通過遞歸二叉分裂劃分區(qū)域,根據(jù)最小均方差的原則尋找分割點,構(gòu)建回歸樹對缺失值進行預(yù)測填補。
1.1.3 RF 算法
RF 算法預(yù)測精度高,不易過擬合,且無需復(fù)雜的參數(shù)設(shè)置和優(yōu)化。RF 算法基于Bagging 思想,通過Bootstrap 抽樣建立DT 基學(xué)習(xí)器,由于每個隨機子集都不同,保證了構(gòu)建DT 樣本集的多樣性。采用隨機特征選擇方法,DT 上每個節(jié)點對應(yīng)的特征也存在差異,進一步保障了DT 的多樣性,從而極大程度降低了DT 之間的相關(guān)性。對每個DT 基學(xué)習(xí)器的回歸結(jié)果進行平均后得到最終結(jié)果。
1.1.4 PSO-SVR 算法
SVR 精度是由核函數(shù)決定的,SVR 核函數(shù)有線性核函數(shù)、高斯徑向基核函數(shù)(RBF)和多項式核函數(shù)等。一般情況下,RBF 核函數(shù)在非線性數(shù)據(jù)上效果顯著,因此本文選擇RBF 核函數(shù)。
懲罰因子C、核函數(shù)參數(shù)G是SVR 的關(guān)鍵參數(shù),本文采用PSO 對SVR 關(guān)鍵參數(shù)進行優(yōu)化,形成基于PSO-SVR 的缺失數(shù)據(jù)填補方法。設(shè)種群粒子的個數(shù)為N,解空間為D維,第i個粒子的速度為Vi,其個體極值為pbest,種群的全局極值為gbest。在每一次的迭代中,粒子通過跟蹤pbest,gbest來更新自己。粒子速度和位置更新公式為

設(shè)最大迭代次數(shù)為50,種群規(guī)模為50。根據(jù)經(jīng)驗,設(shè)置參數(shù)優(yōu)化范圍為C∈[0.01,100],G∈[0.01,50]。步驟如下:
(1)初始化粒子位置X與速度V,適應(yīng)度函數(shù)為真實值與填補值的平均絕對誤差百分比,初始的個體極值和全局極值分別為粒子的初始位置和適應(yīng)度值最小的個體極值。
(2)每個粒子根據(jù)式(1)和式(2)更新自己的速度和位置。
(3)計算每次迭代后粒子的適應(yīng)度值。
(4)更新個體極值和全局極值。
(5)判斷是否滿足終止條件,是否達到最大迭代次數(shù),否則返回步驟(3)。
(6)將輸出的最優(yōu)參數(shù)賦給SVR,用于數(shù)據(jù)填補。
1.1.5 XGBoost 算法
XGBoost 算法[14]是一種基于梯度提升決策樹(Gradient Boosted Decision Tree,GBDT)的優(yōu)化改進算法,通過多棵DT 組合來擬合上次回歸預(yù)測反饋的殘差。相較于GBDT,XGBoost 通過對損失函數(shù)二階泰勒展開以逼近目標函數(shù),求整體最優(yōu)解,并加入正則項控制模型復(fù)雜度,防止過擬合。因而XGBoost具有較高的精度和泛化性,目標函數(shù)為式中:A為樹中葉節(jié)點的數(shù)量;Fa為葉子節(jié)點a所包含樣本的一階偏導(dǎo)數(shù)fb之和;Ha為葉子節(jié)點a所包含樣本的二階偏導(dǎo)數(shù)hb之和;λ為固定系數(shù);γ為復(fù)雜度參數(shù);b為Ba樣本中的個體,Ba為葉子節(jié)點a樣本集中的樣本。

將當前待填補的不完整特征當作標簽,其他的特征和原本的標簽組成新的特征矩陣,運用KNN,DT,RF,PSO-SVR 算法訓(xùn)練填補模型,將模型的輸出值作為填補值,具體策略如下:
(1)當多數(shù)特征含有缺失值時,要填補一個特征,先將其他特征的缺失值用0 占位。每完成一次填補,使當前填補好的特征參與到下一個特征的填補中,直至填補所有缺失值。
(2)當少數(shù)特征含有大量缺失值時,將第1 個待填補缺失值的特征作為標簽列,其他完整特征和原始標簽列作為特征矩陣,但其他含有缺失值的特征不參與計算。填補完第1 個特征時,使當前填補好的特征參與到下一個特征的填補中,直至填補完所有缺失值。
基于數(shù)據(jù)填補的煤自燃溫度預(yù)測模型構(gòu)建流程如圖1 所示。

圖1 基于數(shù)據(jù)填補的煤自燃溫度預(yù)測模型構(gòu)建流程Fig.1 Process of coal spontaneous combustion temperature prediction model based on data filling
采用PSO 優(yōu)化參數(shù),設(shè)PSO 的慣性權(quán)重ω為0.8,學(xué)習(xí)因子c1、c2為0.5,最大迭代次數(shù)為50,種群規(guī)模為50。RF 主要參數(shù)范圍設(shè)置:樹的數(shù)量n_estimators為[20,100],樹的深度max_depth 為[10,25];XGBoost主要參數(shù)范圍設(shè)置:樹的數(shù)量n_estimators 為[10,500],學(xué)習(xí)率learning_rate 為[0,1],樹的深度max_depth 為[1,10],正則項reg_lambda 為[1,25];SVR 參數(shù)設(shè)置:C∈[0.01,100],G∈[0.01,50]。模型構(gòu)建的具體步驟如下:
(1)將通過實驗獲取的指標氣體濃度作為特征,煤溫作為標簽,對數(shù)據(jù)進行標準化。
(2)采用5 折交叉驗證法劃分訓(xùn)練集和測試集。
(3)初始化參數(shù)并隨機生成一組粒子的速度與位置。
(4)通過式(1)和式(2)更新粒子的速度與位置。采用均方根誤差(Root Mean Square Error,RMSE)作為適應(yīng)度函數(shù),計算比較每次迭代后粒子適應(yīng)度值,更新個體極值和全局極值。
(5)判斷是否滿足終止條件,是否達到最大迭代次數(shù),否則返回步驟(4)。
(6)將輸出的最優(yōu)參數(shù)賦給RF/XGBoost/SVR模型,用于煤自燃溫度預(yù)測。
從陜西省銅川市柴家溝礦采集新鮮煤樣2 t 左右進行煤自然發(fā)火實驗。結(jié)合常用于預(yù)測預(yù)判煤自燃危險程度的氣體指標[15],選取CO,CO2,CH4,C2H6,O2體積分數(shù)作為表征煤自燃危險程度的指標。根據(jù)實驗結(jié)果繪制柴家溝礦煤樣指標氣體隨煤溫變化關(guān)系圖,如圖2 所示。
從圖2 可看出:CO 體積分數(shù)隨著煤溫的上升表現(xiàn)為指數(shù)形式,且上升過程呈階段性變化;CO2體積分數(shù)隨著煤溫的升高而上升,且上升過程表現(xiàn)出較為明顯的階段性變化;隨著煤溫的不斷上升,CH4體積分數(shù)也逐漸升高;C2H6體積分數(shù)隨著煤溫的上升呈先上升后下降趨勢,煤溫超過70 ℃后,C2H6體積分數(shù)達到峰值;O2體積分數(shù)隨著煤溫持續(xù)上升逐漸下降。初期階段能檢測到少量的CO,CO2,CH4氣體,CO,CO2體積分數(shù)變化幅度較小。當煤溫超過臨界溫度70 ℃后,CO,CO2體積分數(shù)曲線的斜率明顯增大,CH4體積分數(shù)也明顯增大,當煤溫持續(xù)上升至干裂溫度100 ℃后,煤體發(fā)生劇烈的氧化反應(yīng),CO,CO2,CH4體積分數(shù)快速上升。實驗結(jié)果表明:CO,CO2,CH4,C2H6,O2體積分數(shù)的變化與煤溫相對應(yīng),具有明顯的相關(guān)性,可作為煤自燃預(yù)警指標。

圖2 柴家溝礦煤樣指標氣體隨煤溫變化關(guān)系Fig.2 Relationship between index gas of coal sample and coal temperature in Chaijiagou Mine
在實際測量中,出現(xiàn)缺失值的情況有以下2 種:①由于傳感器、氣相色譜儀等設(shè)備異?;蛘呷藶檎`操作,測量出現(xiàn)較大誤差,出現(xiàn)偏差過大的異常值,預(yù)處理之后會出現(xiàn)多數(shù)特征含有缺失值的情況。② 部分氣體傳感器、氣相色譜儀等設(shè)備故障,造成部分氣體數(shù)據(jù)存在缺失,出現(xiàn)少數(shù)特征含有大量缺失值的情況。因此,本文設(shè)計2 種缺失值:所有特征都含有缺失值和少數(shù)特征含有大量缺失值。
設(shè)備異常導(dǎo)致的缺失具有隨機性,所以設(shè)置數(shù)據(jù)缺失類型為完全隨機缺失,設(shè)置整體缺失率為10%,20%,30%。由通過RF 方法獲得的特征重要性(表1)可知,CO,CO2的特征重要性較高,對預(yù)測結(jié)果有較大影響,為更好地比較填補算法的優(yōu)劣,選擇CO,CO2作為含有較多缺失值的特征,缺失率為40%,50%,60%。

表1 特征重要性Table 1 Importance of characteristics
為客觀評估模型的性能,本文選擇常用的3 種評估指標來評估模型精度:平均絕對誤差百分比(Mean Absolute Percentage Error,MAPE)、判斷系數(shù)R2和RMSE。式中:PE為平均絕對誤差百分比;為第c個樣本的預(yù)測值,c=1,2,…,n,n為樣本數(shù)量;yc為第c個樣本的實際值;為樣本平均值;ME為均方根誤差。

對不同缺失比例的數(shù)據(jù)集分別采用 KNN、RF、DT 和 PSO-SVR 填補算法進行填補實驗,每種算法均重復(fù)填補100 次(填補值取100 次的均值),部分特征的填補值與原始數(shù)據(jù)的對比如圖3 和圖4 所示。計算所有特征的填補值和原始數(shù)據(jù)的 MAPE(取100 次實驗的均值),并相加,結(jié)果如圖5 所示。

圖5 填補效果對比Fig.5 Comparison of filling effect
從圖3 和圖4 可看出:數(shù)據(jù)缺失率為10%,20%時,4 種填補算法的填補數(shù)據(jù)與原始數(shù)據(jù)相比,均無明顯差異,隨著缺失率的增大,所有算法的填補效果呈下降趨勢。在CO,CO2缺失率為40%,50%,60%時,RF 算法填補的前7 個樣本點數(shù)據(jù)質(zhì)量差,特別是 CO2數(shù)據(jù)有較明顯的差距,但整體填補效果較好;DT 算法填補數(shù)據(jù)與原始數(shù)據(jù)的總體差異較小,但CO,CO2缺失率為 60% 時,差異明顯增大;缺失率為30%時,KNN 與PSO-VR 算法的填補數(shù)據(jù)開始振蕩,填補效果顯著下降。

圖3 不同缺失率下CO2 體積分數(shù)的數(shù)據(jù)填補效果對比Fig.3 Filling effects comparison of CO2 volume fraction data at different miss rates

圖4 不同缺失率下CO 體積分數(shù)的數(shù)據(jù)填補效果對比Fig.4 Filling effects comparison of CO volume fraction data at different miss rates
從圖5 可看出:對于6 種不同缺失數(shù)據(jù),DT 填補算法的MAPE 最小。CO,CO2缺失率為40%,50%和60%時,RF 的MAPE 偏大,這是由于煤自然發(fā)火初始階段的指標氣體濃度較低,RF 填補數(shù)據(jù)與原始數(shù)據(jù)相差較大,導(dǎo)致MAPE 顯著增大。
綜上可知,DT 算法填補的效果最優(yōu)。
基于完整數(shù)據(jù)的模型預(yù)測精度指標對比見表2??煽闯鯴GBoost 模型在訓(xùn)練階段的效果極好,但測試階段的MAPE、RMSE 明顯增大,R2明顯減小,明顯過擬合,對于小樣本數(shù)據(jù),XGBoost 算法極易過擬合;SVR 模型在不調(diào)參的情況下效果顯著低于其他模型,而RF 模型優(yōu)于其他2 個模型。

表2 基于完整數(shù)據(jù)的模型評價指標對比Table 2 Comparison of model evaluation index based on complete data
不調(diào)參的XGBoost、SVR 模型精度極低,因此僅討論不同填補算法對RF 模型在測試集上預(yù)測精度的影響,如圖6 所示。
從圖6 可看出,數(shù)據(jù)缺失對煤自燃溫度預(yù)測模型精度有較大影響。整體缺失率為10%時,數(shù)據(jù)填補后的RF 預(yù)測模型精度和基于完整數(shù)據(jù)的RF 預(yù)測模型精度相差均不大,MAPE 在3.7%~4.2%之間。整體缺失率為20%,30%時,基于RF、DT 填補的預(yù)測模型的MAPE 分別為3.7%,3.5%,而基于KNN、PSO-SVR 填補的預(yù)測模型的MAPE 隨著缺失率增加而大幅增加,最大可達8.3%。CO,CO2缺失率為40%,50%,60%時,基于RF、DT 填補的預(yù)測模型的MAPE 分別穩(wěn)定在5.4%左右和4.3%左右,而基于KNN、PSO-SVR 填補的預(yù)測模型的MAPE 呈增長趨勢,預(yù)測精度相對較低。基于DT 填補的RF 預(yù)測模型在6 種缺失率下的MAPE 平均值為4%,明顯低于其他模型。

圖6 基于不同填補算法的RF 預(yù)測模型在測試集上的精度對比Fig.6 Precision comparison of RF prediction models based on different filling algorithms in test set
綜上所述,在6 種缺失情況下,基于DT 填補算法的預(yù)測模型精度總體優(yōu)于基于其他填補算法的預(yù)測模型。
PSO 優(yōu)化后模型指標見表3??煽闯鯬SO 算法調(diào)參后,XGBoost 和SVR 模型精度均有較大的提升,而RF 模型卻與調(diào)參前的效果差距不大,說明RF 模型不進行參數(shù)優(yōu)化也有較好的預(yù)測精度;PSO-XGBoost模型過擬合情況減弱,精度提高,在訓(xùn)練集的效果最好;PSO-SVR 預(yù)測模型相較于調(diào)參前模型精度顯著提高,在訓(xùn)練集和測試集上的預(yù)測效果相差最小,無過擬合情況,在測試集的效果最好,泛化性較強。

表3 基于完整數(shù)據(jù)的PSO 優(yōu)化后的模型指標對比Table 3 Comparison of PSO optimized model index based on complete data
PSO 優(yōu)化后的填補數(shù)據(jù)在測試集的預(yù)測精度對比和模型MAPE 平均值如圖7 和表4 所示。

圖7 不同缺失率下基于不同填補算法的預(yù)測模型性能對比Fig.7 Performance comparison of prediction models based on different filling algoriths under different miss rates

表4 不同缺失率下預(yù)測模型的平均MAPETable 4 Mean MAPE of prediction models under different miss rates %
從圖7 和表4 可看出:基于DT 填補算法的預(yù)測模型的MAPE 明顯低于基于其他填補算法的預(yù)測模型,說明DT 算法填補后的模型預(yù)測準確率更高?;贒T 算法填補的PSO-RF 模型和PSO-SVR 模型在測試集的MAPE 均值均在4%左右,但RF 與PSO-RF 模型的MAPE 相差極小,說明RF 無需調(diào)參,而SVR 需調(diào)參后才能滿足預(yù)測要求。
綜上可知,基于DT 填補算法的RF 煤自燃溫度預(yù)測模型預(yù)測性能最優(yōu)。
(1)在6 種數(shù)據(jù)缺失情況下,DT 算法填補效果優(yōu)于其他3 種算法。在CO,CO2存在較多缺失值時,RF 算法的填補值與實際值的MAPE 偏大。
(2)基于4 種填補算法分別建立了RF、XGBoost和SVR 煤自燃溫度預(yù)測模型。在不調(diào)參的情況下,XGBoost 模型雖然在訓(xùn)練集的效果極好,但極易過擬合,而SVR 模型預(yù)測效果極差,均無法滿足預(yù)測要求。在6 種數(shù)據(jù)缺失情況下,基于DT 填補算法的RF預(yù)測模型的MAPE 的平均值為4%,不進行參數(shù)優(yōu)化也有較好的預(yù)測精度,能夠滿足實際需求。
(3)在6 種數(shù)據(jù)缺失情況下,基于DT 填補算法的PSO-SVR、RF 與PSO-RF 預(yù)測模型的MAPE 均在4%左右,而基于DT 填補算法的RF 模型無需優(yōu)化就能較好地預(yù)測出煤自燃溫度,具有良好穩(wěn)定性。