王昕宇,楊 鵬,2,戴健非
(1.北京聯合大學北京市信息服務工程重點實驗室,北京 100101;2.北京科技大學土木與資源工程學院,北京 100083)
尾礦庫是選擇有利地形筑壩攔截谷口或圍地形成的具有一定容積、用以貯藏尾礦和尾礦澄清水的專用場地,是一種高勢能的人造泥石流危險源[1].尾礦壩是使尾礦庫形成一定容積,便于尾礦礦漿能堆存其中的一種由尾礦堆積碾壓而成的壩體,尾礦壩一旦潰壩,會嚴重威脅下游居民的生命安全,污染下游區域環境,造成大量經濟財產損失.其安全穩定對礦山生產、安全、環境保護至關重要[2].目前,自動化系統雖然能夠對尾礦壩主要指標進行監測,但安全監測僅是初步,能夠根據以往監測數據建立預測模型,了解其形變規律才是最重要的.因此,將尾礦壩壩體位移數據與數學模型相結合實現預測預警,對尾礦庫的安全穩定管理具有重要意義[3].
我國對于尾礦壩壩體位移預測起步相對較晚,借鑒了大量的大壩(水壩、堆石壩等)位移預測體系方法.目前國內外研究者圍繞壩體位移預測模型展開大量的研究,其中黃定川等[4]根據尾礦庫初期壩沉降數據為例構建BP神經網絡預測模型,重點研究其拓撲和學習算法;胡軍等[5]提出使用基于結構風險最小化的SVM算法進行預測學習,并通過種族魚群優化算法優化參數;李豐旭等[6]針對形變模型發生早熟、預測不穩定的現象,引入基于混沌搜索的多種群遺傳算法,改進遺傳參數的計算方式;甄明秀[7]以白巖尾礦壩為媒介,比較回歸模型、時序模型、灰色模型在形變預測中的適應能力;賈龍等[8]針對verhulst模型預測精度不足的問題,使用三類弱化緩沖算子處理數據,重新構建verhulst模型;鐘登華等[9]提出了基于自適應網絡模糊推理系統優化的灰色模型;文獻[10]提出了一種新的分布式時間序列演化預測方法,將變形預測的思想與結構化方法相結合,提高了變形預測的可靠性;文獻[11]針對回歸模型中擬合殘差序列的混沌特性,采用多尺度小波分析對殘差序列進行分解和重構,構建BP神經網絡模型.
上述研究對壩體的安全穩定管理有著重要意義,但并未充分涉及外部因素對形變的影響,僅考慮位移變化的時效性.合理的特征選擇能夠提升模型精度,降低時間復雜度.因此,本文提出建立特征遞歸消除(Recursive Feature Elimination,RFE)和隨機森林(Random Forest,RF)、極限梯度提升(Extreme Gradient Boosting,XGBoost)相融合的預測模型,并與BP神經網絡、LSTM神經網絡等模型進行了對比.本文對防止潰壩事故和礦山安全管理具有一定參考價值.
隨機森林是Cutler與Breiman于2001年提出的一種統計學習方法[12].RF是根據一定準則生成一定數量的決策樹并進行組合,在訓練決策樹的過程中隨機選擇特征以提高模型預測精度.可用于模擬多重非線性關系,該算法的實現步驟如下:
(1) 對含有m個樣本的數據集,使用自助法從數據集中隨機有放回的選取m個樣本.經過N次選取,產生N個bootstrap樣本集,對N個樣本集訓練構成N個回歸樹,而每次選取后的剩余樣本全部放入N個袋外數據(OBB)作為測試樣本.

(3) 每個回歸樹自上往下遞歸分支,設定隨機森林中回歸樹的個數作為回歸樹生長的停止條件.
(4) 綜合N個回歸樹并取其平均值構成隨機森林回歸模型,公式為
(1)
式中:f(x)表示隨機森林模型,Tj(x)是單個回歸樹模型,j=1,2,…,N,使用OBB中的樣本作為測試集并根據回歸分析的相關評估指標來判斷模型的預測效果.
自助法是一種非參數統計方法,也被稱作bootstrap,其基本步驟如下:
(1) 從樣本中抽取一定量樣本,允許重復抽樣(抽取數量自擬).
(2) 統計抽取的樣本以計算待估計統計量M.
(3) 重復抽取N次,計算N個統計量M.
(4) 根據N個統計量M的方差估計統計量M的方差.
特征遞歸消除是一種基于wrapper包裹型模式下的后向搜索算法,常用于特征選擇[13].相較于filter型算法,wrapper將特征選擇問題轉化為特征子集搜索問題,篩選多個特征子集,使用一個機器學習模型評估效果,重復該過程直至產生最優的特征子集,RFE算法是在該方法基礎上的簡化,基本步驟如下:
(1) 選擇全部特征并構造初始特征集.
(2) 在特征集上訓練一個機器學習模型,本文采用隨機森林算法構建回歸模型.
(3) 依據平均不純度的減少程度評估各特征的重要性,并由高到低排列.回歸樹模型以方差或最小二乘法作為不純度條件,公式為:
(2)

(3)

(4) 剔除重要性最低的特征,構造新的特征集.
(5) 重復步驟2到步驟4,直到特征集沒有進一步的特征可供保持,特征被剔除的順序是特征選擇的依據,越早被剔除的特征越應舍棄,越晚被剔除的特征越應保留.
極限梯度提升是陳天奇博士于2016年提出的一種集成學習方法,以CART回歸樹和隨機森林為基礎的一種擴展延伸,屬于Boosting方法中的一種提升算法[14].Boosting是將多個弱學習器提升為強學習器的一種方法,先訓練第1個弱學習器,根據弱學習器的誤差表現改變訓練樣本權重,使訓練誤差大的樣本受到更多的關注.將改變權重的訓練樣本導入第2個弱學習器,再根據訓練誤差調整權重,如此反復,直到弱學習器的數量達到某一指定值n,將n個弱學習器整合為強學習器.XGBoost在Boosting的基礎上使用增量學習并增加L1和L2正則化項,提升泛化能力,減小過擬合,基本算法如下:
(4)

目標函數為
(5)

RFE-RF-XGBoot預測模型構建流程如下:
(1) 數據集整理,刪除缺失值,數據做最小-最大標準化(Min-Max Normalization)處理.
(2) 壩體垂直沉降作為輸出,其余特征作為輸入,導入RFE-RF模型進行特征選擇.
(3) 按特征重要度重建數據集,采用留出法交叉驗證(Holdout Cross Validation),將數據依照時間順序劃分為訓練集(60%)、驗證集(20%)、測試集(20%).
(4) 設定XGBoost模型的初始參數對訓練集擬合,利用驗證集計算誤差指標并配合網格搜索與模型歷史最優指標對比.
(5) 若模型預測精度提高,則當前指標為新的歷史最優指標,繼續調整參數,以此反復.反之,若模型預測精度低于歷史最優指標,則說明模型出現過擬合現象,停止調整參數.
(6) 測試樣本導入模型計算預測誤差,查看模型預測效果.基本流程如圖1所示.
本文使用平均絕對誤差(Mean Absolute Error,MAE)和相對誤差(Relative Error,RE)作為模型的評估指標,MAE也被稱作平均絕對離差即絕對誤差的平均值,是參數估計值與參數真值之差絕對值的期望值.MAE可以評價模型預測的絕對準確度,MAE的值越小,說明預測模型描述整體實驗數據具有更好的精確度,模型更穩定[16].其公式為
(6)

相對誤差RE是指被測量的真實值與預測值的絕對誤差與被測量真實值之比乘以100%所得的數值,以百分數表示.其公式為
(7)


圖1 RFE-RF-XGBoost模型構建流程
本文采用某尾礦庫安全監測系統采集的2017年11月至2019年8月共7 000條實時數據進行預測實驗.該尾礦庫規劃用地面積約1.76 km2.尾礦庫區匯水面積3.91 km2,屬于二級尾礦庫,尾礦庫初期壩屬透水堆石壩,初期壩設計標高為450.00 m,高度約35 m,最終堆積標高為647.00 m.尾礦堆積壩采用上游式堆筑法,即平行初期壩軸方向外尾礦庫內逐級填筑堆積壩,增加庫容排放尾礦.尾礦堆積壩每級高度2 m,內外坡比1∶2∶5,頂寬2 m,堆積壩總高度為197 m.特征包括3個監測點處的浸潤線埋深(JRX1-1、JRX1-2、JRX1-3)、庫水位高度(KSW)、降雨量(RAIN)、壩體表面平行壩軸線位移(BMWY-X)、垂直壩軸線位移(BMWY-Y)、垂直沉降(BMWY-Z),部分樣本特征數據如表1所示.

表1 部分實驗樣本特征
憑借PyCharm搭配Anaconda開源包、環境管理器,利用python3語言編寫.以3點浸潤線埋深、庫水位高度、降雨量、壩體表面平行壩軸線位移、垂直壩軸線位移作為輸入,壩體垂直沉降作為輸出.首先調用preprocessing模塊的scale函數對輸入輸出特征進行快速Min-Max標準化,然后導入ensemble模塊中的RandomForestRegressor函數,默認決策樹數值為100并擬合數據,計算輸入特征重要性.結果表明庫水位重要性占比為0.399,其次為兩點浸潤線埋深,分別占0.184和0.176.壩體表面平行壩軸線位移、垂直壩軸線位移分別占0.065和0.092.降雨量占比最低,為0.020,第一次篩選結果如圖2所示.

圖2 第一次特征篩選
待剔除降雨量特征后,數據重新導入模型并計算重要性,重要性占比發生變化:浸潤線埋深1-2和1-3占比降低,分別為0.063和0.173,第二次篩選結果如圖3所示.
經多次篩選,重要性排名從高到低依次是庫水位、浸潤線埋深1-1、浸潤線埋深1-3、垂直壩軸線位移、平行壩軸線位移、浸潤線埋深1-2、降雨量.其中庫水位重要性最高,通過mic函數計算相關性為0.530,表明庫水位與垂直沉降具有強非線性相關性.本文選擇浸潤線埋深1-1、浸潤線埋深1-3、庫水位、垂直沉降、降雨量為特征重建新數據集,為預測t時刻的垂直沉降,以t-dt時刻的浸潤線埋深、庫水位、垂直沉降、降雨量為輸入,其中dt為1,2,3 d,新數據集部分樣本如表2所示,通過特征選擇可有效減少預測過程中的特征冗余,避免特征間的負面影響.

圖3 第二次特征篩選

表2 新數據集部分樣本特征
根據RFE-RF特征選擇排列重建新數據集后,數據集采用留出法交叉驗證,依照時間順序劃分為訓練集(60%)、驗證集(20%)、測試集(20%),其中訓練集導入XGBoost框架的XGBRegressor函數中訓練擬合,驗證集為模型泛化能力驗證指標,測試集用于檢驗模型預測效果.XGBoost模型參數主要包括:回歸樹數量(n_estimators)、回歸樹最大深度(max_depth)、回歸樹最小葉子節點樣本權重和(min_child_weight)、損失函數減小閾值(gamma)、回歸樹隨機采樣率(subsample)、回歸樹特征采樣率(colsample_bytree)、L1正則化權重(reg_alpha)、L2正則化權重(reg_lambda)、學習率(learning_rate).本文根據驗證集預測指標,配合網格搜索方法逐步調整模型參數,過程如下:
(1) 調整回歸樹數量,n_estimators從[10,300]之間取值計算驗證集誤差指標,結果如圖4所示.[10,40]區間內誤差曲線呈下降趨勢,當n_estimators=40時,誤差最小,MAE=0.072,[50,100]區間內誤差曲線逐漸增高,泛化能力降低.

圖4 回歸樹數量對MAE的影響
(2) 調整回歸樹最大深度和最小葉子節點樣本權重和,max_depth調整區間為[0,10],min_child_weight調整區間為[0,20],結果如圖5所示.max_depth=6,min_child_weight=19時,誤差最小,MAE=0.068.
(3) 調整損失函數減小閾值,gamma調整區間為[0,1],gamma=0.05時,誤差最小,MAE=0.067.
(4) 調整回歸樹隨機采樣率和回歸樹特征采樣率,subsample和colsample_bytree調整區間為[0,1],subsample=0.5,colsample_bytree=0.9時,誤差最小,MAE=0.065.

圖5 回歸樹最大深度與最小葉子節點
(5) 調整L1正則化權重和L2正則化權重,reg_alpha和reg_lambda調整區間為[0,7],reg_alpha=0.06,reg_lambda=0.1時,誤差最小,MAE=0.062.
(6) 調整學習率,learning_rate調整區間為[0,1],learning_rate=0.2時,誤差最小,MAE=0.059.
經多輪參數調整,最小平均絕對誤差MAE=0.059.表3為驗證集的10組樣本預測結果和相對誤差,可知垂直沉降預測最大相對誤差為7.21%,最小相對誤差為0.17%.

表3 RFE-RF-XGBoost對驗證集樣本預測結果
本文使用tesorflow神經網絡框架對BP神經網絡編寫及測試,網絡結構包括輸入層、隱藏層、輸出層.其中隱藏層激活函數為tanh函數,輸出層激活函數為線性函數.輸入層神經單元數為24,壩體表面垂直沉降為輸出,輸出單元個數為1.使用SGD優化器實現權重、閾值更新.學習率為0.01,Dropout為0.2,迭代3 000次.BP神經網絡的隱藏層神經元個數一般是根據以往經驗和反復的試驗選取,為尋找預測效果最好的網絡結構,本文通過Kolmogorov定理計算隱含層神經元個數,公式為
h=2m+1.
(8)
其中:m為輸入層神經元個數,h為隱含層神經元個數,網絡結構為24-49-1時,預測誤差MAE=0.133.
作為傳統深度學習模型代表之一,LSTM神經網絡模型通過keras深度學習框架搭建,網絡結構包括輸入層、LSTM層、全連接層、輸出層[18].輸入層神經元24個,LSTM層神經元60個,輸出層神經元1個.LSTM層激活函數為tanh,輸出層激活函數為線性函數.優化器是Adam,學習率為0.01.Dropout=0.2,batch size=64,epochs=46時,預測誤差MAE=0.078.SVR預測模型通過sklearn模塊的SVR函數構建,算法使用高斯核函數,正則化系數為0.8時,MAE=0.080[19].圖6與表4為RFE-RF-XGBoost、XGBoost、LSTM神經網絡、BP神經網絡、SVR預測結果對比.

表4 多方法預測結果

圖6 多方法預測結果對比
表4為各模型樣本預測結果和相對誤差,由表4可知:RFE-RF-XGBoost模型最小相對誤差為1.01%,最大相對誤差為6.79%.XGBoost模型最小相對誤差為3.02%,最大相對誤差為12.84%.各模型MAE依次為0.060,0.062,0.080,0.133,0.078,平均相對誤差分別為3.60%,7.53%,11.20%,16.76%,9.25%,其中RFE-RF-XGBoost預測效果最好,平均相對誤差低于XGBoost3.93%.
本文以某尾礦庫2017年11月至2019年8月的歷史數據為實驗樣本,提出使用隨機森林配合特征遞歸消除與極限梯度提升模型相融合.實驗結果表明:庫水位與垂直沉降重要性最高,非線性相關性為0.530.RFE-RF-XGBoost對比XGBoost模型平均絕對誤差降低了0.2%,平均相對誤差降低了3.93%.所提出模型能夠提高壩體位移的預測精度,總體精度高于XGBoost模型、SVR模型、BP神經網絡、LSTM神經網絡.借助RFE-RF-XGBoost預測模型,礦山管理部門可依據預測結果及早實施相應安全措施,對于礦山施工決策、安全管理,減少潰壩事故具有參考意義.