童 柔,謝天保
(西安理工大學(xué) 經(jīng)濟(jì)與管理學(xué)院,西安 710054)
隨著我國(guó)能源行業(yè)的不斷發(fā)展,煤礦突水問題越來越成為大眾值得關(guān)注的問題,這不僅關(guān)系煤礦工人生命安全,也關(guān)系著國(guó)家人力財(cái)力損失.據(jù)統(tǒng)計(jì),在2006-2016年期間,我國(guó)煤礦突水事故共發(fā)生440起,死亡682人[1],因此為了減少突水事故的發(fā)生以及人員的傷亡,對(duì)煤礦是否會(huì)突水進(jìn)行提前的預(yù)測(cè)顯得越發(fā)重要.
目前煤礦突水預(yù)測(cè)方法包括很多種,大多以神經(jīng)網(wǎng)絡(luò)為主[2-6],這種方法針對(duì)突水量定量預(yù)測(cè)誤差較大,針對(duì)是否突水定性預(yù)測(cè)時(shí),開關(guān)量閾值需要靠專家經(jīng)驗(yàn)確定.而在構(gòu)建模型前進(jìn)行關(guān)鍵因素的選擇也是很重要的一個(gè)步驟,文獻(xiàn)[7]使用層析分析法的一致性檢驗(yàn)與專家評(píng)分來進(jìn)行特征的選取,主觀性強(qiáng),受限于專家的經(jīng)驗(yàn).文獻(xiàn)[4]使用主成分分析進(jìn)行降維,主成分降維后的特征相互獨(dú)立,在一定程度上可以提高模型預(yù)測(cè)精度,但對(duì)特征重要性的分析不夠明確,難以應(yīng)用于現(xiàn)實(shí)問題中煤礦突水特征因素的選擇.文獻(xiàn)[7,8]首先通過理論分析確定了含水層(包括厚度、水壓及富水性)、底板隔水層厚度、地質(zhì)構(gòu)造等相關(guān)因素,并通過各特征數(shù)據(jù)統(tǒng)計(jì)分析說明,這些特征的重要性,然后建模預(yù)測(cè),然而煤礦突水是由煤礦生產(chǎn)開采過程中各種復(fù)雜的因素綜合作用的結(jié)果,各特征的獨(dú)立分析并不能體現(xiàn)各特征相互作用,相互影響的煤礦突水機(jī)理.
基于以上分析,本文在理論分析(煤礦構(gòu)造條件、含水層條件、開采條件、巖性組合條件)的基礎(chǔ)上,收集樣本數(shù)據(jù).然后采用穩(wěn)定性選擇的特征方法針對(duì)數(shù)據(jù)樣本進(jìn)行分析,以預(yù)測(cè)準(zhǔn)確率為目標(biāo)對(duì)煤礦突水影響因素進(jìn)行篩選,獲取與之相關(guān)的關(guān)鍵因素,之后采用3種典型機(jī)器學(xué)習(xí)算法,隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)以及支持向量機(jī)分別進(jìn)行煤礦突水預(yù)測(cè)模型的構(gòu)建,結(jié)合3種模型的預(yù)測(cè)結(jié)果確定最終結(jié)果,以此驗(yàn)證特征選取后的預(yù)測(cè)模型的準(zhǔn)確率以及穩(wěn)定性,通過實(shí)驗(yàn)可幫助煤礦工作人員減少數(shù)據(jù)收集的工作量以及收集成本,并且提高突水預(yù)測(cè)精度.
常用的特征選擇方法主要分為3種:過濾法、包裝法和嵌入法[9],根據(jù)不同的情境及目的所使用方法也不同,而在本次試驗(yàn)中,將采取包裝法中的穩(wěn)定性選擇方法來進(jìn)行特征的選取.
Meinshausen N等人在2009年提出了穩(wěn)定性選擇這種特征選取的方法[10],并指出其并不是一種新的算法,而是基于Lasso特征選擇方法并對(duì)其進(jìn)行加強(qiáng)和改進(jìn).具體來說,穩(wěn)定性選擇是一種基于二次抽樣和選擇算法相結(jié)合的特征選取方法,選擇算法可以是支持向量機(jī)SVM或者回歸等算法,而二次抽樣意味著不是使用所有的數(shù)據(jù)一次性選擇出最重要的特征,而是抽取數(shù)據(jù)子集以及特征子集來運(yùn)行選擇算法,不斷重復(fù),最終可以計(jì)算出每個(gè)特征作為重要特征出現(xiàn)的頻率,即使用出現(xiàn)的次數(shù)除以子集被測(cè)試的次數(shù),將其看做每個(gè)特征的得分并作為特征篩選的依據(jù).最重要的特征若每次都被選到,則它的得分會(huì)高達(dá)1,而最不重要的特征最終得分將會(huì)為0.大多數(shù)實(shí)驗(yàn)證明,相對(duì)比于其他的特征選擇方法,穩(wěn)定性選擇是性能最好的方法之一.
煤礦突水機(jī)理具有多樣性,是指在不同的地質(zhì)及水文地質(zhì)條件下,采用破壞或水壓破壞表現(xiàn)出不同的空間組合特征,突水機(jī)理的多樣性反映了地質(zhì)及水文地質(zhì)條件的變化,煤礦突水是否突水受制于諸多因素的綜合影響[11].在本次實(shí)驗(yàn)中,我們通過查閱資料以及煤礦專家的幫助,共取得了包括構(gòu)造條件、含水層條件、開采條件、巖性組合條件4個(gè)方面的相關(guān)影響因素,再加上突水征兆這個(gè)因素,共獲得22個(gè)與煤礦突水有關(guān)的影響因素以及其所對(duì)應(yīng)數(shù)據(jù)數(shù)據(jù)類型,如表1所示,并且收集與表1中22個(gè)煤礦突水相關(guān)因素以及突水結(jié)果所對(duì)應(yīng)的數(shù)據(jù)1056例.
表1 煤礦突水相關(guān)因素及數(shù)據(jù)類型
在Python的sklearn.liner_model庫中Randomized LogisticRegression(以下縮寫RLR)實(shí)現(xiàn)了穩(wěn)定性選擇,因此根據(jù)1.1中的相關(guān)分析,可以使用其作為特征選擇的工具.在RLR中,穩(wěn)定性選擇的實(shí)現(xiàn)主要有以下步驟:
Step 1.對(duì)初始數(shù)據(jù)進(jìn)行二次抽樣,隨機(jī)選取k個(gè)特征以及對(duì)應(yīng)m行數(shù)據(jù),統(tǒng)計(jì)每個(gè)特征被選次數(shù)N;
Step 2.使用所選數(shù)據(jù)構(gòu)建邏輯回歸模型;
Step 3.對(duì)模型進(jìn)行L1正則化,稀疏化數(shù)據(jù)使大多數(shù)不重要特征的權(quán)重變?yōu)?,最終篩選最重要特征,統(tǒng)計(jì)每個(gè)特征被選為最重要特征的次數(shù)n;
Step 4.繼續(xù)進(jìn)行Step 1,RLR算法默認(rèn)共構(gòu)建200個(gè)邏輯回歸模型,直到模型構(gòu)建完成進(jìn)行下一步;
Step 5.計(jì)算每個(gè)特征被選為重要特征的頻率,即進(jìn)行穩(wěn)定性選擇之后各特征的得分,score=n/N,通過scores_屬性來獲取每個(gè)特征的得分,獲得高分的特征就是所需選擇的重要特征.
在使用RLR算法進(jìn)行建模時(shí),其正則化參數(shù)C會(huì)影響最終各個(gè)特征的score,為了獲取合適的正則化參數(shù),我們?cè)?10-2,102)區(qū)間內(nèi)取了100個(gè)C值進(jìn)行建模,計(jì)算出每個(gè)模型中各特征的得分情況,以此繪制了如圖1所示的正則化參數(shù)C與各個(gè)特征score之間的關(guān)系.
圖1 正則化參數(shù)C與score的關(guān)系
由圖1中可以看出,隨著正則化參數(shù)C的減小,即相當(dāng)于正則化強(qiáng)度的增大,各個(gè)特征的得分都將趨于0,而在C約為0.18時(shí),所有特征的得分都為0,也就是沒有特征被選為重要特征,本實(shí)驗(yàn)的目的是篩選出7個(gè)重要特征,因此合適的C值是使得7個(gè)特征得分不為0.
實(shí)驗(yàn)發(fā)現(xiàn)當(dāng)C=1.6681時(shí),最重要的7個(gè)特征的得分不為0,其他特征得分都為0,因此使用此C值進(jìn)行RLR建模進(jìn)行特征選取,將每個(gè)特征的得分從高到低進(jìn)行排列后得到如下的表2,從表中很明顯能看出來斷層充水對(duì)煤礦是否突水影響最大,得分為1.0,說明在每次進(jìn)行特征選擇時(shí),斷層充水都會(huì)被選為最重要的特征,在斷層充水之后,突水征兆對(duì)煤礦突水也有較大影響,其次是裂隙帶充水、陷落柱、陷落柱充水、含水層水壓和裂隙帶.7個(gè)特征選取出來后,繼續(xù)增加影響因素?cái)?shù)量進(jìn)行實(shí)驗(yàn)后發(fā)現(xiàn),預(yù)測(cè)準(zhǔn)確率沒有發(fā)生變化,這說明可以繼續(xù)增加因素的數(shù)量,但因素?cái)?shù)量過多會(huì)導(dǎo)致預(yù)測(cè)時(shí)計(jì)算成本過高,收集數(shù)據(jù)時(shí)工作量變大,因此此處僅選擇7個(gè)最重要特征.但此次實(shí)驗(yàn)結(jié)果僅針對(duì)已收集到的數(shù)據(jù),有新的數(shù)據(jù)增加時(shí),還需再進(jìn)行實(shí)驗(yàn)來驗(yàn)證結(jié)果是否發(fā)生變化.
表2 重要突水因素及其得分
根據(jù)《礦區(qū)水文地質(zhì)工程地質(zhì)勘查規(guī)范》提出,與煤礦突水最相關(guān)的兩個(gè)因素為斷層充水以及含水層水壓,文獻(xiàn)[4]中根據(jù)PCA方法所篩選出的因素為斷層、構(gòu)造、含水層等,文獻(xiàn)[12-14]通過調(diào)查分析提出影響煤礦突水重要因素主要有斷層、陷落柱、水壓,由此可以看出本次實(shí)驗(yàn)所篩選的關(guān)鍵因素符合煤礦突水的整體研究.
經(jīng)過1.3中的特征選取,我們確定了與煤礦突水相關(guān)的7個(gè)重要的影響因素,為了確定這7個(gè)因素對(duì)于預(yù)測(cè)結(jié)果的準(zhǔn)確率是否有提高以及算法的穩(wěn)定性,本次實(shí)驗(yàn)使用隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)以及支持向量機(jī)3種典型機(jī)器學(xué)習(xí)算法構(gòu)建煤礦突水預(yù)測(cè)模型,使用特征選取前后的數(shù)據(jù)進(jìn)行建模,對(duì)比預(yù)測(cè)準(zhǔn)確率.
由表1(見2.1節(jié))可以看出煤礦突水樣本數(shù)據(jù)特征有離散型、連續(xù)型2種.離散型數(shù)據(jù)的數(shù)據(jù)類型為邏輯數(shù)據(jù)(以陷落柱充水為例,若充水則為1,若無則為0),連續(xù)型數(shù)據(jù)則是使用浮點(diǎn)型數(shù)據(jù)類型來表示具體的數(shù)字.因此在使用神經(jīng)網(wǎng)絡(luò)以及支持向量機(jī)進(jìn)行建模前需要對(duì)數(shù)據(jù)進(jìn)行處理,對(duì)于離散型數(shù)據(jù)需使用獨(dú)熱編碼,而連續(xù)型數(shù)據(jù)由于不同特征的值大小差別太大,因此需要進(jìn)行標(biāo)準(zhǔn)化處理將數(shù)據(jù)縮放到相同的區(qū)間以提高準(zhǔn)確率.
數(shù)據(jù)處理完成后,使用Python中train_test_split函數(shù)隨機(jī)將數(shù)據(jù)集劃分為訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,函數(shù)的第3個(gè)參數(shù)test_size用來設(shè)定測(cè)試集數(shù)據(jù)的多少,本實(shí)驗(yàn)將設(shè)定test_size=0.3,即1056例數(shù)據(jù)隨機(jī)選取70%為訓(xùn)練集數(shù)據(jù),其余30%為測(cè)試集數(shù)據(jù).
(1)隨機(jī)森林是由許多CART二叉樹所組成的預(yù)測(cè)模型,其中每一棵二叉樹是通過隨機(jī)選取的特征以及訓(xùn)練數(shù)據(jù)集建立的,因此每一棵二叉樹都是沒有關(guān)聯(lián)的并通過計(jì)算基尼指數(shù)來選擇屬性進(jìn)行建立,對(duì)于每一組測(cè)試數(shù)據(jù),每一個(gè)二叉樹都進(jìn)行預(yù)測(cè),最終通過投票機(jī)制得出最終的分類預(yù)測(cè)結(jié)果.隨機(jī)森林相當(dāng)于一個(gè)特殊的集成學(xué)習(xí)算法,它是由許多個(gè)弱的分類器即CART樹所組成的一個(gè)強(qiáng)分類器,因而預(yù)測(cè)準(zhǔn)確率較高.
(2)神經(jīng)網(wǎng)絡(luò)是一種有監(jiān)督學(xué)習(xí)方法,其結(jié)構(gòu)分為輸入層、隱藏層和輸出層.在進(jìn)行訓(xùn)練的過程中,主要分為2個(gè)部分:正向傳播和反向傳播.正向傳播過程是在輸入層進(jìn)行特征屬性的輸入,并設(shè)置神經(jīng)元之間的權(quán)值,通過若干隱藏層進(jìn)行前向計(jì)算,獲得每個(gè)神經(jīng)元的輸出.反向傳播過程是將正向傳播計(jì)算的結(jié)果與真實(shí)結(jié)果進(jìn)行對(duì)比,進(jìn)而反向計(jì)算調(diào)整權(quán)值和誤差,反復(fù)進(jìn)行調(diào)整,提高模型準(zhǔn)確率.
(3)支持向量機(jī)(SVM)也是一種有監(jiān)督的學(xué)習(xí)方法,在二分類問題中使用較多,對(duì)于線性可分問題,支持向量機(jī)運(yùn)用優(yōu)化算法實(shí)現(xiàn)最大化分類間隔;而對(duì)于非線性問題,支持向量機(jī)通過適當(dāng)?shù)暮撕瘮?shù)將輸入空間映射到高維空間,實(shí)現(xiàn)高維空間線性可分,將非線性問題轉(zhuǎn)化線性問題[15],然后在新空間中利用二次型尋優(yōu)算法尋找一個(gè)最優(yōu)超平面將兩類樣本分開,保證分類準(zhǔn)確率.
(1)隨機(jī)森林模型使用RandomForestClassifier來建立模型,參數(shù)n_estimator設(shè)置為100,即隨機(jī)森林中共建立100個(gè)決策樹進(jìn)行預(yù)測(cè);參數(shù)max_depth設(shè)置為4,即決策樹深度最大為4,實(shí)驗(yàn)中對(duì)決策樹進(jìn)行可視化后發(fā)現(xiàn),當(dāng)決策樹深度為4時(shí),所有數(shù)據(jù)基本上已經(jīng)分類完成,且準(zhǔn)確率高,因此可將決策樹深度減小來提高預(yù)測(cè)效率.
(2)神經(jīng)網(wǎng)絡(luò)將使用MLPClassifier來建立模型,參數(shù)hidden_layer_sizes設(shè)置為(50,50),即設(shè)置兩層隱藏層且每層神經(jīng)元個(gè)數(shù)為50,在特征選擇后其設(shè)置為(15,15),這是因?yàn)檩斎雽由窠?jīng)元個(gè)數(shù)不同,隱藏層相應(yīng)需要改變;參數(shù)slover權(quán)重優(yōu)化的求解器使用“l(fā)bfgs”,它對(duì)于小型數(shù)據(jù)集可以更快的收斂并且分類表現(xiàn)更好.
(3)支持向量機(jī)將使用SVC來建立模型,懲罰參數(shù)C通過循環(huán)建模發(fā)現(xiàn)當(dāng)C小于0.4,預(yù)測(cè)準(zhǔn)確率將會(huì)降低,因此設(shè)置為C=0.4,參數(shù)kernel通過實(shí)驗(yàn)得出使用‘linear’線性核函數(shù)分類更準(zhǔn)確.
使用3種模型的fit方法分別對(duì)特征選取前后的訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,之后使用訓(xùn)練好的模型對(duì)測(cè)試數(shù)據(jù)進(jìn)行預(yù)測(cè),從而得到表3中的預(yù)測(cè)結(jié)果對(duì)比.
表3 特征選取前后預(yù)測(cè)準(zhǔn)確率對(duì)比
從表3中可以看出在特征選取前后3種模型預(yù)測(cè)準(zhǔn)確率都很高,隨機(jī)森林模型在特征選取前后訓(xùn)練集準(zhǔn)確率都高達(dá)100%,而測(cè)試集在特征選取后準(zhǔn)確率提高至100%,神經(jīng)網(wǎng)絡(luò)模型和支持向量機(jī)模型在特征選取前后訓(xùn)練集以及測(cè)試集的準(zhǔn)確率雖然都沒有變化,但整體準(zhǔn)確率很高,可以看出,支持向量機(jī)模型是三者中最優(yōu)的,所有準(zhǔn)確率都達(dá)到100%.隨機(jī)森林在進(jìn)行預(yù)測(cè)時(shí),由于在構(gòu)建模型時(shí)已進(jìn)行了剪枝,從而減少了擬合且預(yù)測(cè)速度相對(duì)較快,準(zhǔn)確率較高;使用神經(jīng)網(wǎng)絡(luò)進(jìn)行分類時(shí),由于神經(jīng)網(wǎng)絡(luò)需進(jìn)行反復(fù)調(diào)整權(quán)重,因此其模型構(gòu)建速率相對(duì)較慢,使用神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)的分類結(jié)果實(shí)際上是連續(xù)性的,通過判斷其是否大于0.5決定預(yù)測(cè)結(jié)果為1或0,即突水或不突水,這種閾值判斷的方法使得預(yù)測(cè)結(jié)果相對(duì)較差;使用支持向量機(jī)進(jìn)行模型構(gòu)建時(shí),由于需要調(diào)整的參數(shù)較多,因此在構(gòu)建模型時(shí)時(shí)間較長(zhǎng),但一旦選擇正確的核函數(shù)之后,其泛化能力會(huì)達(dá)到最佳,預(yù)測(cè)準(zhǔn)確率高.
在此基礎(chǔ)上,本實(shí)驗(yàn)繼續(xù)使用交叉驗(yàn)證方法對(duì)特征選取的正確性進(jìn)行檢驗(yàn),使用cross_val_score方法對(duì)3種模型都進(jìn)行交叉驗(yàn)證,取參數(shù)cv=15,即進(jìn)行15輪的交叉驗(yàn)證,取15次預(yù)測(cè)準(zhǔn)確率的平均值,實(shí)驗(yàn)結(jié)果如表4所示.由表中可以看出,特征選取后準(zhǔn)確率有些許提高,沒有達(dá)到100%是因?yàn)?5次交叉驗(yàn)證中14次預(yù)測(cè)準(zhǔn)確率達(dá)到1,而僅有一次未達(dá)到1,由此可以看出利用選擇后的特征建立預(yù)測(cè)模型準(zhǔn)確率較高.
表4 特征選取前后交叉驗(yàn)證結(jié)果
為了進(jìn)一步確定特征選取后3種預(yù)測(cè)模型的穩(wěn)定性,我們繪制了3種模型的ROC曲線來評(píng)價(jià)模型性能,如圖2所示.
圖2 特征選取后各預(yù)測(cè)模型ROC曲線
從圖中可以很明顯看出,圖2(a)隨機(jī)森林和圖2(c)支持向量機(jī)模型都很穩(wěn)定,訓(xùn)練集以及測(cè)試集的真正類率和假正類率都達(dá)到最優(yōu),而圖2(b)神經(jīng)網(wǎng)絡(luò)模型相比下來略有不足,但穩(wěn)定性也算比較好.
由此可以看出在進(jìn)行特征選擇后,預(yù)測(cè)模型仍然非常穩(wěn)定,因此可以證明在第2節(jié)中所篩選影響煤礦突水的預(yù)測(cè)模型都很穩(wěn)定,由此得出實(shí)驗(yàn)所篩選的關(guān)鍵因素在進(jìn)行煤礦數(shù)據(jù)收集時(shí)是可進(jìn)行參考的.
本文通過穩(wěn)定性選擇的特征選取方法篩選影響煤礦突水結(jié)果的關(guān)鍵因素,并通過隨機(jī)森林等3種典型分類預(yù)測(cè)模型對(duì)選取前后預(yù)測(cè)準(zhǔn)確率進(jìn)行對(duì)比,發(fā)現(xiàn)準(zhǔn)確率都很高并且隨機(jī)森林以及支持向量機(jī)模型達(dá)到100%,通過ROC曲線的繪制也可看出特征選取后的關(guān)鍵因素是可取的.