邵 健 王 霄,2 昌文峰 陳 曦 張 譯
(1.貴州大學電氣工程學院 貴陽 550025)(2.貴州省互聯(lián)網(wǎng)+協(xié)同智能制造重點實驗室 貴陽 550025)
滑坡是地質構造發(fā)生嚴重形變的過程,是由降雨、山體水系和人工活動等共同因素影響下,朝著斜坡方向向下的滑動的地質過程與自然現(xiàn)象。是引起人們損失的地質災害主要災害之一,滑坡災害的嚴重程度和損害系數(shù)僅比地震引起的損失稍小,研究滑坡災害模型具有重要意義。
隨著數(shù)據(jù)采集與地理信息系統(tǒng)的快速發(fā)展,利用機器學習進行地質災害相關的研究成為熱點。黃發(fā)明等[1]以支持向量機和隨機森林為例,提出“權重均值法”計算出更準確的滑坡主控因子;羅路廣[2]等采用邏輯回歸模型構建九寨溝國家地質公園內地震滑坡模型;潘李含等[3]以江西省南康區(qū)為例,采用半監(jiān)督卡方自交互偵測決策樹和半監(jiān)督反向傳播神經(jīng)網(wǎng)絡進行滑坡易發(fā)性預測。王偉等[4]提出了卡方檢驗與多重共線性分析聯(lián)合篩選的方法對敏感因子進行篩選,基于不同的機器學習算法構建了滑坡敏感性評價模型。Osman Orhan[5]等利用人工神經(jīng)網(wǎng)絡(ANN)和邏輯回歸制作和比較滑坡易感性圖。Huang[6]等選取中國江西省旬武縣作為研究區(qū),提出了半監(jiān)督多層感知器構建滑坡模型。Li[7]等提出了基于數(shù)據(jù)驅動的滑坡位移監(jiān)測與預測方法,以三峽庫區(qū)滑坡為例,驗證了該方法的有效性和實用性。Wu[8]等應用一種半監(jiān)督學習方法在中國中北部黃土高原研究區(qū)生成滑坡易感性圖。Liao[9]等提出了一種基于灰狼優(yōu)化核極限學習機(GWO-KELM)的階梯式位移預測模型,并將其應用于白水河滑坡。
本文通過收集研究區(qū)數(shù)據(jù)與查閱大量資料,結合貴州大方縣地理環(huán)境、地質情況等特點,選取高程、坡度、坡向、年降雨量、歸一化植被覆蓋指數(shù)、剖面曲率、距水系距離、距道路距離、地表起伏度、土地利用類型、地層巖性、距斷層距離、人類活動強度等13 個滑坡因子構建滑坡敏感性分析。首先針對收集到的滑坡非平衡數(shù)據(jù)集的問題,采用Borderline-SMOTE 算法進行數(shù)據(jù)采樣生成平衡數(shù)據(jù)集,然后對數(shù)據(jù)進行數(shù)據(jù)清洗、分桶等處理,最后采用CatBoost 對歷史災害數(shù)據(jù)進行滑坡模型的構建及主要影響因素的分析。通過實驗發(fā)現(xiàn),以貴州省大方縣為研究地區(qū),CatBoost 算法在滑坡敏感性預測效果比SVM、LR 模型效果更優(yōu)。研究區(qū)高程及滑坡點如圖1所示。
圖1 研究區(qū)高程圖
非平衡數(shù)據(jù)集在日常生活或產(chǎn)生過程中是很常見的,即多數(shù)類與少數(shù)類的比例嚴重失衡,非平衡數(shù)據(jù)對機器學習算法的學習造成非常大的障礙,從而導致模型的欠擬合或預測效果不佳[10~11]。對于某片區(qū)域而言,產(chǎn)生滑坡災害地區(qū)的數(shù)量明顯少于非滑坡的情況,并且由于滑坡數(shù)據(jù)本身的采集難度,從而造成了滑坡類別與非滑坡類別在比例上的嚴重失衡,顯然滑坡歷史數(shù)據(jù)集屬于典型的非平衡數(shù)據(jù)集。因此,對滑坡數(shù)據(jù)集利用改進的SMOTE算法進行采樣。
面對非平衡數(shù)據(jù)集,現(xiàn)有技術主要分為欠采樣、過采樣以及先基于原始數(shù)據(jù)進行學習,然后在預測是進行“再縮放”策略進行調整等三種方法。SMOTE[12]是過采樣的典型算法,是基于隨機過采樣的一種改進算法。在此基礎上,為了解決SMOTE 算法采樣帶來的樣本重合問題,Borderline-SMOTE[13]對此進一步改進,基本思想如下:1)根據(jù)歐式距離將少數(shù)類樣本分為三類,分別為Safe、Danger 和Noise(Safe 表示近鄰樣本超過一般為少數(shù)類;Danger表示近鄰樣本超過一半為多數(shù)類別樣本;Noise 表示近鄰樣本全部都為多數(shù)類別樣本),得到Danger少數(shù)類別樣本,其樣本類別劃分如圖2 所示;2)根據(jù)不平衡比例設置采樣比例以確定采樣倍率,對每個Danger 少數(shù)類樣本,從其近鄰樣本中隨機選擇若干個樣本;3)對每一個隨機選出的近鄰樣本,利用合成公式得到合成樣本,合成公式如下:
圖2 樣本類型劃分
其中,xnew為“人工合成”樣本,x?為少數(shù)類樣本,xi為選取的K 鄰近樣本,rand(0,1)產(chǎn)生0~1 之間的隨機數(shù)。
Borderline-SMOTE 又分為兩類,Borderline-SMOTE1 在對Danger 點生成新樣本時,在K 近鄰隨機選擇少數(shù)類樣本,Borderline-SMOTE2 則是在K 近鄰中任意一個樣本,即不關注樣本類別,本文經(jīng)過實驗,最終采用Borderline-SMOTE2 進行過采樣。
隨著大數(shù)據(jù)時代的到來,傳統(tǒng)機器學習算法在計算能力與精度方面展現(xiàn)出了一定的劣勢,同時出現(xiàn)一些基于boosting 族的強大的機器學習算法,如XGBoost、LightGBM 等。CatBoost 是Yandex[14]在開源的機器學習庫,是boosting族算法的一種,也是在GBDT(gradient boost decision tree)算法框架下的一種改進實現(xiàn)。XGBoost 被廣泛地應用于工業(yè)界,LightGBM 有效地提升了GBDT 的計算效率,Cat-Boost 比XGBoost、LightGBM 在算法準確率等方 面表現(xiàn)更為優(yōu)秀。
CatBoost 是一種基于對稱決策樹(oblivious trees)為基學習器實現(xiàn)的參數(shù)較少、支持類別變量和高準確性的GBDT 框架,主要解決的痛點是高效合理地處理類別型特征,此外,還解決了梯度偏差以及預測偏移的問題,從而減少過擬合的發(fā)生,進而提高算法的準確性和泛化能力。從算法名字上可 以 發(fā) 現(xiàn),CatBoost 是 由Categorical 和Boosting 組成,該算法設計初衷是為了更好地處理GBDT 特征中的類別型特征[15]。在處理GBDT 特征中的類別型特征時,最簡單的方法是使用類別型特征對應的標簽的平均值來替換,在決策樹中,標簽平均值將作為節(jié)點分裂的標準,該方法被稱為貪婪的目標變量統(tǒng)計(Greedy Target-based Statistics,Greedy TS),用公式表示為
這種方法具有顯而易見的缺陷,即通常特征比標簽包含更多的信息,如果強行用標簽的平均值來表示特征,當訓練數(shù)據(jù)集和測試數(shù)據(jù)集數(shù)據(jù)結構和分布不一致時會出現(xiàn)條件偏移問題,一個標準的改進Greedy TS 的方式是添加先驗分布項,減少噪聲和低頻率類別型數(shù)據(jù)對于數(shù)據(jù)分布的影響,公式表示為
其中p是添加的先驗項,a通常是大于0 的權重系數(shù),對于分類問題,先驗項是正例的先驗概率;同時該算法會自動組合類別型特征為新的特征,更進一步提升模型的表達能力。針對CatBoost 算法上述優(yōu)點,滑坡數(shù)據(jù)集本身多為類別型特征,運用該算法能夠最大程度地學習到更多的信息,從而進一步提升模型表達能力。
3.1.1 數(shù)據(jù)來源
利用機器學習構建模型分析需要大量的樣本及豐富的滑坡特征數(shù)據(jù),而模型的好壞又與這些數(shù)據(jù)密切相關,因此數(shù)據(jù)的收集是一個長期、持續(xù)的過程。高程數(shù)據(jù)來自地理空間數(shù)據(jù)云的ASTER GDEM 數(shù)據(jù),該數(shù)據(jù)由美國NASA 和日本METI 共同開發(fā),是唯一能夠覆蓋全球陸地的高分辨率高程數(shù)據(jù);滑坡災害來自于貴州省自然資源廳,數(shù)據(jù)詳細統(tǒng)計了滑坡發(fā)生時間與滑坡名。
通過不同數(shù)據(jù)來源收集滑坡數(shù)據(jù)1018 例,其中包括滑坡樣本200例,非滑坡樣本818例,滑坡特征13 個,滑坡特征分別為高程、坡度、坡向、年降雨量、歸一化植被覆蓋指數(shù)、剖面曲率、距水系距離、距道路距離、地表起伏度、土地利用類型、地層巖性、距斷層距離、人類活動強度。基本數(shù)據(jù)來源見表1所示。
表1 數(shù)據(jù)來源情況
3.1.2 數(shù)據(jù)處理
根據(jù)不同數(shù)據(jù)平臺采集的滑坡數(shù)據(jù)集往往存在重復值、異常值、缺失值等不合理的數(shù)據(jù),同時不同滑坡特征數(shù)據(jù)的量綱不統(tǒng)一等這些問題,會對滑坡模型預測精度產(chǎn)生較大的影響,甚至直接導致失敗。本文對數(shù)據(jù)集的清洗工作包括:1)刪除重復數(shù)據(jù);2)缺失值的填充,對連續(xù)特征采用平均值,對類別特征采用眾數(shù);3)數(shù)據(jù)分桶,根據(jù)數(shù)據(jù)分布按分位點對連續(xù)特征進行分桶并標簽編碼,類別特征直接進行標簽編碼。
本文采用多個評估指標對滑坡模型進行評估:查準率(Precision)是指分類正確的正樣本個數(shù)占分類器判定為正樣本的樣本個數(shù)的比例;召回率(Recall)是指分類正確的正樣本個數(shù)占真正的正樣本個數(shù)的比例;F1-score 是查準率和召回率的調和平均數(shù),定義為
AUC 是指ROC 曲線(Receiver Operating Characteristic Curve)線下面積,一般介于0.5~1 之間,AUC值越大說明模型泛化能力越好。
實驗環(huán)境為Jupyter Notebook,package 主要包括python3.8,numpy,pandas,scikit-learn,imblearn等。原始滑坡數(shù)據(jù)集為1018例,滑坡特征數(shù)13個,對經(jīng)過清洗后的原始數(shù)據(jù)進行Bootstrap 和Borderline-SMOTE 方法得到所需的平衡數(shù)據(jù)集,數(shù)據(jù)集情況對比如表2所示。
表2 數(shù)據(jù)集情況對比
對數(shù)據(jù)集進行劃分訓練集70%、測試集30%,使用CatBoost 算法構建大方縣滑坡模型,與傳統(tǒng)機器學習(LR、SVM)進行實驗對比,為保證實驗結果置信度,避免單次實驗結果偶然性,本文多次實驗結果如表3與圖3,各模型AUC值對比如圖4所示。
圖3 各模型實驗結果誤差分析圖
圖4 AUC值實驗對比圖
表3 各模型的評估指標實驗對比
通過實驗對比,基于CatBoost 算法的滑坡模型在多個評估指標上優(yōu)于LR、SVM 等傳統(tǒng)機器學習模型,尤其在AUC 指標上表現(xiàn)尤為突出,模型效果提升分別為8.48%、4.92%。利用CatBoost模型的特征重要性排序,可以發(fā)現(xiàn)各個滑坡因素對模型的重要性或貢獻度,如圖5 所示??梢詮闹型恋乩妙愋?、地層巖性、距水系距離、距斷層距離表現(xiàn)出更高的重要性,從可解釋性出發(fā),上述滑坡特征對滑坡災害的發(fā)生有著更加重要、直接的影響。
圖5 滑坡特征重要性
本文通過收集不同來源的數(shù)據(jù),構成大方縣滑坡數(shù)據(jù)集,利用Borderline-SMOTE算法對數(shù)據(jù)進行有效的過采樣,一定程度上解決了非平衡數(shù)據(jù)集對滑坡模型預測效果的影響,然后采用CatBoost 算法構建滑坡敏感性模型,從數(shù)據(jù)集的特點出發(fā),該算法充分挖掘數(shù)據(jù)信息,讓模型學習更加充分、滑坡模型預測效果更加準確,對比傳統(tǒng)機器學習算法有著明顯的提升,同時也證明了Borderline-SMOTE算法的有效性。但滑坡模型的預測效果還需要進一步的提升,且單一滑坡模型的效果不具備較好的魯棒性,因此,進一步收集滑坡特征數(shù)據(jù),提高滑坡數(shù)據(jù)集的質量以及融合多模型進行滑坡災害的建模將會是未來的研究方向。