劉超 ,喬圣揚
河北地質大學a.城市地質與工程學院b.河北省高校生態環境地質應用技術研發中心,河北石家莊050031
泥石流是山區常見的一種地質災害,嚴重威脅到了人類的生命與財產安全[1-3],因此對泥石流開展危險性預測尤為重要。泥石流危險性的預測方法很多,如專家經驗法[4]、經驗公式計算法[5]、軟件模擬法[6]、GIS法[7]等。
近年來,隨著機器學習算法熱度的逐漸升高,許多學者將機器學習的方法引入到泥石流危險性等級預測中,常見的機器學習方法有隨機森林[8]、神經網絡[9-11]、支持向量機[12-13]等。劉永垚[14]等(2018)建立基于交叉驗證的隨機森林模型對泥石流易發性進行評價。張永宏[15]等(2018)使用平均影響值算法篩選主要影響指標,結合神經網絡算法預測泥石流易發程度。Qian X[16]等(2016)使用粒子群算法的支持向量機模型對泥石流危險性有較高的辨識精度。Shiuan W[17]等(2009)建立決策樹與支持向量機的混合模型對樣區發生泥石流的危險性類別進行預測,模型預測準確率為73%。寧志杰與周愛紅[18](2020)提出空間變異性會影響支持向量機模型的適用性,需要合理地選擇評價指標。
本文基于白龍江流域泥石流,通過主成分分析(Principle Component Analysis,PCA)提取3個互為獨立的主成分,進一步使用5折交叉驗證的方式抽取訓練樣本與預測樣本。聯合使用多分類支持向量機(Multi-classification Support Vector Machine,MSVM)對泥石流危險性類別進行分類,建立主成分分析與多分類支持向量機預測模型(PCAMSVM),可為預測白龍江流域泥石流危險性提供科學依據。
泥石流危險性通常被眾多指標所影響,而指標與指標中的信息會存在部分程度的相關性,使各指標間出現信息重疊問題,因此利用主成分分析把存在相關性的指標線性組合后,形成互為獨立的新綜合指標,從而達到降維目的。具體步驟如下:
(1)標準化原始數據
采集到的數據構成矩陣X,即:

式中,n為樣本個數,X1,X2,…,XP為涉及的P個指標。其中:

(2)計算相關系數矩陣
計算X*的相關系數矩陣:

(3)計算特征值與特征向量
計算相關系數矩陣R的p個特征值分別為λ1,λ2,…,λp,以及每個特征值λk(k=1,2,…,p)對應的特征向量為:

(4)選取主成分
主成分是原始指標的線性組合。通過主成分分析得到p個主成分,前m個主成分的累計方差貢獻率為:

在解決實際問題時,累計方差貢獻率通常選取大于85%時所確定的前m個主成分。
(5)計算主成分
主成分是通過選擇前m個特征值所對應的特征向量來計算的。計算的主成分為:

式中,把Yk稱為第k主成分。主成分的線性表達式寫為:

支持向量機是一種分類方法,常用的解決多分類問題(分類數大于2)的總體思路是把多分類轉化為若干個二分類。這樣可將具有N個分類的數據模型轉化為個二分類模型,即每兩個類別之間用二分類方法進行一次分類[19]。
在MSVM中將樣本分為訓練樣本與測試樣本。設訓練樣本為:

其中,xt為p維向量,p為指標數,yt為分類標簽,l為樣本個數。二分類的具體步驟如下:
(1)構造最優超平面
設二分類模型的兩個分類為i和j,構造最優超平面如圖1所示:

圖1 最優超平面示意圖Fig.1 Hyperplane diagram of optimal classification
圖1中,黑色小球表示分類i的樣本(分類標簽用1來表示),白色小球表示分類j的樣本(分類標簽為用-1來表示)。設H為最優超平面,H1、H2分別平行于H,是經過兩類樣本并且離H最近的面,H1與H2的平分面為H。最大分類間隔是指H1與H2之間的距離。因此H的方程不妨設為:

式中,ω和b為待求解的參數。圖1中,H1與H2的方程可以相應的設為:

有時兩類樣本中個別數據點不能精確地被最優超平面正確劃分,則引入松弛項tξ≥0,放寬約束條件,即:


式中,C為懲罰因子,是對錯誤分類樣本增加懲罰因素的參數。
為了求解上述凸二次規劃問題,構建拉格朗日函數,并對此函數進行求偏導,再轉化為對偶問題進行求解,可求得最優解w*、b*,確定分類函數[20]。對于非線性問題引入核函數,最終得到的分類函數為:

式中,sgn(·)為符號函數,x為預測樣本,yt為分類標簽,at*為對偶變量最優解,K(xt ,x)為核函數。
(3)判別分類
經過對相鄰玻璃折彎角度多次進行計算機三維實體建模及實體渲染。總結出玻璃折彎角度應控制在不小于170°,使玻璃之間光線折射效果可以得到有效的緩解,且觀感效果極佳(見圖2)。
通過分類函數判斷類別,f(x)=1時,判斷類別為分類i,f(x)=-1時,判斷類別為分類j。對于多分類問題,應用MSVM進行分類,對于每一個樣本數據進行CN2次二分類,采用投票法判別最終分類。即在i、j分類時,分類函數判斷為i類,就在i類上加一票,判斷為j類,在j類加一票,然后進行其他二分類,直到所有分類函數都完成判別后,再判別樣本所屬分類,樣本所屬分類是根據最后統計類別票數最多而確定的。
以白龍江流域泥石流為例[20],聯合使用主成分分析和多分類支持向量機的方法,利用Matlab軟件編譯程序,進行泥石流危險性預測。
白龍江流域位于青藏高原與四川盆地的過渡區,該地區高差大,縱坡陡峭,山坡坡度較大,降雨具有強度大、歷時短、突發性等特點[21]。此流域極易發生泥石流,給當地造成了嚴重的危害,特別是2010年舟曲發生了特大泥石流災害,縣城幾乎被泥石流摧毀殆盡,死亡和失蹤人數超過兩千余人[3]。
以文獻[20]中白龍江流域泥石流30組數據為例,選取7個指標作為評價因子,如表1所示。泥石流危險性等級分為四類,低度危險用標簽“1”表示、中度危險用標簽“2”表示、高度危險用標簽“3”表示、極高危險用標簽“4”表示[22]。

表1 白龍江流域泥石流原始數據[20]Table 1 Primary data of debris flow in Bailong River basin
對原始數據進行標準化,進一步根據式(6)可得到相關系數矩陣。

式中,相關系數越接近1表明指標與指標之間越相關,表明各指標間存在大量重疊信息。因此通過PCA提取主要信息。
然后計算相關系數矩陣的特征值及相應的貢獻率,如表2所示。從表2中可以看出,前3個主成分累計貢獻率達到85.512%,因此提取前3個主成分。

表2 特征值、貢獻率及累計貢獻率Table 2 Eigenvalue, contribution rate and cumulative contribution rate

其中,X1*、X2*、X3*、X4*、X5*、X6*、X7*分別表示流域面積、松散固體物質總量、爆發規模、工程治理攔砂量、溝床平均比降、流域切割密度及不穩定溝床比這7個指標標準化之后的數值。主成分的計算結果如表3所示。

表3 主成分的計算結果Table 3 Principal component calculation results
MSVM模型選取5折交叉驗證方法抽取訓練樣本與測試樣本,再進行MSVM預測。將30個樣本按序號等分為5個子集,每個子集6個樣本。在每次實驗中,按照順序選擇其中1個子集作為預測樣本,另外4個子集作為訓練樣本,進行模型的訓練與預測,得到預測的準確率。同樣的實驗再進行4次,模型準確率取5次預測的準確率平均值。
其具體過程如圖2所示。

圖2 5折交叉驗證示意圖Fig.2 5-fold cross validation schematic diagram
MSVM模型中選取高斯核函數,參數尋優算法選取粒子群算法。
按照5折交叉驗證方法進行PCA-MSVM預測,預測結果如圖3和表4所示。由圖3可知,在第2次實驗、第3次實驗以及第5次實驗各有1次誤判。由表4可知,PCA-MSVM模型準確率達到了90%,能夠滿足實際工程的需求。

表4 基于交叉驗證的PCA-MSVM模型預測結果統計Table 4 Prediction result statistics of PCA-MSVM model based on cross validation

圖3 基于5折交叉驗證的PCA-MSVM模型預測結果Fig.3 Prediction results of PCA-MSVM model based on 5-fold cross validation
基于白龍江流域泥石流30組數據,對比單獨MSVM和PCA-MSVM模型預測的準確率,預測結果如圖4所示。

圖4 PCA-MSVM模型與MSVM模型預測結果對比Fig.4 Comparison of prediction results between PCAMSVM model and MSVM model
由圖4可知,PCA-MSVM模型準確率可達90%,MSVM模型準確率僅為76.67%,PCA-MSVM模型明顯優于MSVM模型。在建立MSVM模型之前,對原始數據進行主成分分析,可以去除原始變量之間的相關性,達到一定的降維效果,建立互不相關且保留原有信息的綜合指標,可有效提高預測性能。
在基于PCA-MSVM模型下分析模型預測準確率隨K值的變化,如圖5所示。

圖5 模型準確率隨K值的變化Fig.5 Model accuracy varies with K value
由圖5可知,模型準確率隨著K值增大而增加,當K≥5時,模型準確率可以達到最大值90%。K值較小時,訓練樣本數量較少,訓練出的模型泛化能力較差,導致模型準確率較低。隨著K值的增大,模型泛化能力增強,模型準確率也隨之提高。K值大于5時,模型準確率隨K值增大變化并不明顯。K值增大會加大程序運行時間與運算復雜程度,因此上文預測模型中選取了K為5,即5折交叉驗證。
本文選取白龍江流域泥石流為例,通過主成分分析對原始數據進行處理,提取主成分,基于交叉驗證提取訓練樣本與預測樣本,聯合多分類支持向量機算法對泥石流危險性進行預測,可以得到以下結論:
(1)PCA-MSVM模型能夠很好的預測泥石流危險性,以白龍江流域泥石流30組數據為例,使用5折交叉驗證的PCA-MSVM模型進行預測,模型準確率可達90%。
(2)通過MSVM模型與PCA-MSVM模型的對比分析,PCA-MSVM模型準確率較高。引入PCA可以起到降維作用,減少相關性,提高MSVM模型準確率。
(3)模型準確率隨交叉驗證折數K增大而增加,當K達到某一值后,模型準確率趨于平緩。本文中,K<5時,模型準確率較低,并隨著K增大而增加,K≥5時,K值達到最大為90%,趨于穩定。在程序計算過程中,隨著K的增大運算時間增加。