楊晨蕾,包騰飛
(1.河海大學(xué) 水利水電學(xué)院,南京 210098;2.河海大學(xué) 水文水資源與水利工程科學(xué)國(guó)家重點(diǎn)實(shí)驗(yàn)室,南京 210098; 3.三峽大學(xué) 水利與環(huán)境學(xué)院,湖北 宜昌 443002)
大壩是一個(gè)復(fù)雜的非線性動(dòng)力系統(tǒng),變形值是反映壩體結(jié)構(gòu)是否安全最直觀的指標(biāo),對(duì)變形監(jiān)測(cè)資料進(jìn)行分析并作出合理預(yù)報(bào),是水庫(kù)安全運(yùn)行的重要保障。隨著技術(shù)的發(fā)展,大壩變形監(jiān)測(cè)系統(tǒng)日趨完善,監(jiān)測(cè)頻率逐步提高,積累了大量的監(jiān)測(cè)數(shù)據(jù),若對(duì)全部測(cè)點(diǎn)逐個(gè)建模分析,將不利于及時(shí)反饋信息,難以得到大壩的真實(shí)運(yùn)行狀況[1];若建立單一模型分析所有測(cè)點(diǎn),則預(yù)測(cè)精度往往無(wú)法滿足要求。因此,如何平衡大壩變形預(yù)測(cè)效率和精度之間的關(guān)系,已成為一項(xiàng)重要的研究課題。
為了提高預(yù)測(cè)效率,并盡可能降低對(duì)精度的損失,本文首先引入聚類算法對(duì)變形測(cè)點(diǎn)分區(qū),然后針對(duì)各個(gè)分區(qū)建模預(yù)測(cè),這種方法因介于單一建模和逐個(gè)建模之間,能較大限度兼顧兩者的關(guān)系。聚類是一種無(wú)監(jiān)督學(xué)習(xí)算法,指按照特定標(biāo)準(zhǔn)把數(shù)據(jù)集劃分為不同的類或簇。典型的聚類算法如K-means算法[2]計(jì)算速度快、操作簡(jiǎn)單,但聚類結(jié)果易受離群點(diǎn)的影響;基于層次的BIRCH算法[3]適用于大數(shù)據(jù)集的處理、時(shí)間和空間利用率高,但對(duì)非球形簇分類效果不佳;基于密度的DBSCAN算法[4]可以處理任意形狀的類,但計(jì)算時(shí)間長(zhǎng)、復(fù)雜度高??紤]到大壩的整體性,各變形測(cè)點(diǎn)之間往往存在某種內(nèi)在關(guān)聯(lián),即離群點(diǎn)出現(xiàn)的概率很小,同時(shí)顧及到有些測(cè)點(diǎn)之間可能沒有明顯的類別界限,適合模糊聚類方法分析,因此本文引入融合了模糊數(shù)學(xué)理論和K-means算法的模糊C-均值聚類算法(FCM)來(lái)實(shí)現(xiàn)大壩變形測(cè)點(diǎn)的分區(qū)。
傳統(tǒng)的大壩變形監(jiān)測(cè)模型有統(tǒng)計(jì)模型、確定性模型和混合模型,這3種模型在非線性特征的處理上表現(xiàn)不佳,無(wú)法真實(shí)模擬大壩變形量與環(huán)境量之間的關(guān)系。為了彌補(bǔ)傳統(tǒng)模型的不足,機(jī)器學(xué)習(xí)算法如BP神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)(SVM)逐漸被引入到大壩安全監(jiān)控領(lǐng)域[5],之后很長(zhǎng)時(shí)間學(xué)者們致力于對(duì)這2種模型優(yōu)化,取得了一定成果。例如,齊銀峰等[6]針對(duì)傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)收斂速度慢的缺陷,通過(guò)改進(jìn)的粒子群算法進(jìn)行優(yōu)化,提出了一種改進(jìn)的IPSO-BP模型;李澗鳴等[7]在傳統(tǒng)SVM模型的基礎(chǔ)上引入不敏感函數(shù),并選用改進(jìn)的混合蛙跳算法對(duì)參數(shù)尋優(yōu),達(dá)到了改善參數(shù)敏感性的目的。隨后發(fā)展起來(lái)的隨機(jī)森林算法,由于其具備更強(qiáng)的泛化能力和抗噪聲能力,也被引入到大壩變形預(yù)測(cè)中,如羅浩等[8]建立了拱壩變形測(cè)點(diǎn)的隨機(jī)森林預(yù)測(cè)模型,驗(yàn)證了它在預(yù)測(cè)精度上優(yōu)于BP神經(jīng)網(wǎng)絡(luò)和SVM模型。然而,由于隨機(jī)森林模型的訓(xùn)練集不能有缺失值,常常需要先進(jìn)行缺失值填充處理,這也使得它的建模效率受到影響。
極端梯度提升XGBoost(eXtreme Gradient Boosting)算法是一種基于Boosting的集成學(xué)習(xí)算法[9],尤其適用于處理大壩變形這種原始數(shù)據(jù)多的大規(guī)模數(shù)據(jù)集,而且它的計(jì)算復(fù)雜度低,運(yùn)行速度快、準(zhǔn)確度高,可以同時(shí)滿足對(duì)大壩變形預(yù)測(cè)時(shí)效性和準(zhǔn)確性的要求。它還建立了對(duì)缺失值的自動(dòng)處理機(jī)制,可以更好地解決大壩變形監(jiān)測(cè)資料數(shù)據(jù)缺失的問(wèn)題。該算法目前已在電力短期負(fù)荷預(yù)測(cè)[10]、鐵路旅客退票率預(yù)測(cè)[11]等多個(gè)領(lǐng)域得到應(yīng)用,并取得了不錯(cuò)的效果。綜上,本文提出一種基于FCM-XGBoost的大壩變形預(yù)測(cè)模型,在提高預(yù)測(cè)精度的同時(shí),也大大提高了預(yù)測(cè)效率。
大壩的變形測(cè)點(diǎn)在水位、溫度、時(shí)效等因素的作用下,在變化規(guī)律上具有一定的相似性,但是因?yàn)槲挥趬误w的不同部位,又使它們之間存在差異。本文采用FCM對(duì)變形測(cè)點(diǎn)進(jìn)行聚類分析,通過(guò)對(duì)目標(biāo)函數(shù)的優(yōu)化,得到每個(gè)變形測(cè)點(diǎn)相對(duì)于所有類中心點(diǎn)的隸屬度,根據(jù)同一簇內(nèi)的測(cè)點(diǎn)相似性盡可能大、不同簇間的測(cè)點(diǎn)差異性盡可能大的原則[12],確定變形測(cè)點(diǎn)的所屬類別,從而達(dá)到對(duì)壩體分區(qū)的目的。
設(shè)X={x1,x2,…,xn}為n個(gè)變形測(cè)點(diǎn),c為聚類中心數(shù)(1 (1) 約束條件為 (2) 大壩變形監(jiān)測(cè)資料數(shù)據(jù)量大,而且受人為或其他因素影響,常常有數(shù)據(jù)缺失現(xiàn)象,為了適應(yīng)上述特征,并以提高建模效率和預(yù)測(cè)精度為前提,本文引入XGBoost算法建立大壩變形預(yù)測(cè)模型。XGBoost算法是一種集成學(xué)習(xí)算法,它的基本思想是通過(guò)加入新的弱學(xué)習(xí)器去擬合前一次弱學(xué)習(xí)器訓(xùn)練的殘差,并在訓(xùn)練結(jié)束時(shí)得到每個(gè)樣本的預(yù)測(cè)分?jǐn)?shù),最后將所有弱學(xué)習(xí)器中的預(yù)測(cè)分?jǐn)?shù)相加即樣本的預(yù)測(cè)值。它是基于梯度提升樹(GBDT)的改進(jìn)算法,主要體現(xiàn)在:①對(duì)損失函數(shù)由一階泰勒展開變?yōu)槎A,提高了模型的精度;②加入正則項(xiàng)控制模型的復(fù)雜度,可以防止過(guò)擬合現(xiàn)象;③對(duì)特征值缺失的樣本,采用稀疏感知算法自動(dòng)學(xué)習(xí)它的分裂方向;④支持列抽樣,提高了計(jì)算速度。 設(shè)某變形測(cè)點(diǎn)有n個(gè)樣本,每個(gè)樣本有m個(gè)特征值,將該測(cè)點(diǎn)的變形監(jiān)測(cè)資料表示為M={(xi,yi)}(xi∈Rm,yi∈R,i=1,2,…,n)。由于大壩變形預(yù)測(cè)是回歸問(wèn)題,本文選用回歸決策樹作為弱學(xué)習(xí)器,假設(shè)樣本i在第j棵決策樹中葉子節(jié)點(diǎn)的分?jǐn)?shù)為ωij,則經(jīng)t棵決策樹迭代后,該樣本的預(yù)測(cè)值表示為 (3) 以3棵決策樹為例,求解樣本i變形預(yù)測(cè)值的XGBoost模型示意見圖1。 圖1 XGBoost模型示意圖Fig.1 Flow chart of XGBoost model 圖1中虛線框內(nèi)為回歸決策樹的簡(jiǎn)化流程,特征選擇及最優(yōu)切分點(diǎn)有其相應(yīng)的計(jì)算法則(此處不作詳述);圖1中僅列出了樣本i的分?jǐn)?shù),實(shí)際模型中將包含參與訓(xùn)練的所有樣本的分?jǐn)?shù)。 為了得到上述模型中樣本在每棵樹的分?jǐn)?shù),需要設(shè)置一個(gè)目標(biāo)函數(shù),即 (4) 對(duì)式(4)中的損失函數(shù)進(jìn)行二階泰勒展開,則 (5) 在XGBoost模型中,單棵決策樹的復(fù)雜度表示為 (6) 式中:T為葉子節(jié)點(diǎn)的數(shù)量;γ為葉子節(jié)點(diǎn)數(shù)量的懲罰項(xiàng);ωk為第k個(gè)葉子結(jié)點(diǎn)的分?jǐn)?shù);λ是L2正則懲罰項(xiàng),用來(lái)控制泛化誤差,防止過(guò)擬合。那么t棵決策樹組成的復(fù)雜度函數(shù)表示為 (7) 式中:Ω(ft)是第t棵決策樹的復(fù)雜度;const表示前t-1棵決策樹的復(fù)雜度之和,是已知常數(shù)。 考慮到常數(shù)項(xiàng)對(duì)函數(shù)的優(yōu)化不會(huì)產(chǎn)生影響,那么在t次迭代后,目標(biāo)函數(shù)簡(jiǎn)化為 (8) 由式(8)可知,目標(biāo)函數(shù)其實(shí)就是關(guān)于葉子節(jié)點(diǎn)分?jǐn)?shù)的函數(shù),而每個(gè)葉子節(jié)點(diǎn)的分?jǐn)?shù)都是去擬合上一次訓(xùn)練的殘差,因此目標(biāo)函數(shù)的值越小,殘差越小,表明求得的預(yù)測(cè)值越接近樣本的真實(shí)位移值。 本文以拱壩垂線徑向變形監(jiān)測(cè)資料為例,首先利用FCM聚類算法對(duì)壩體所有變形測(cè)點(diǎn)分區(qū),然后隨機(jī)選取該分區(qū)內(nèi)某個(gè)測(cè)點(diǎn),以該測(cè)點(diǎn)為例,建立XGBoost變形預(yù)測(cè)模型,進(jìn)而將該參數(shù)建立的XGBoost模型推廣,應(yīng)用到所在分區(qū)內(nèi)其他測(cè)點(diǎn)的變形預(yù)測(cè)。模型流程圖見圖2。 圖2 基于FCM-XGBoost的大壩變形預(yù)測(cè)模型Fig.2 Dam deformation prediction model based on FCM-XGBoost 某混凝土雙曲拱壩最大壩高305 m,2012年11月30日正式蓄水。為監(jiān)測(cè)壩體徑向位移和切向位移,在5#、9#、11#、13#、16#、19#壩段的1 885、1 829、1 778、1 730、1 664、1 601 m高程上共布置了32個(gè)正、倒垂線測(cè)點(diǎn)。測(cè)點(diǎn)分布見表1。 表1 變形測(cè)點(diǎn)分布Table 1 Distribution of deformation measuring points FCM的聚類中心數(shù)c需要人為確定,c的取值將直接影響聚類結(jié)果的好壞,本文引入輪廓系數(shù)S來(lái)確定c的最佳取值。單個(gè)測(cè)點(diǎn)xi的輪廓系數(shù)定義為 (9) 式中:a(xi)是xi到所在簇內(nèi)其他測(cè)點(diǎn)的平均距離,表示同一簇內(nèi)測(cè)點(diǎn)的相似度;b(xi)是xi到其最鄰近簇內(nèi)所有測(cè)點(diǎn)的平均距離,表示不同簇間測(cè)點(diǎn)的離散度。從式(9)可以看出,當(dāng)輪廓系數(shù)S落在[0,1]之間且越接近1時(shí),表示聚類效果越好。 選取2018年8月1日至8月31日期間32個(gè)正、倒垂線測(cè)點(diǎn)的徑向位移作為訓(xùn)練樣本的輸入值,當(dāng)聚類中心數(shù)c為3~8時(shí)的輪廓系數(shù)見圖3。 圖3 不同聚類中心數(shù)的輪廓系數(shù)Fig.3 Silhouette coefficient of different clustering centroids 由圖3可知,當(dāng)聚類中心數(shù)c為5時(shí),聚類效果最好,因此,選取c=5,得到的拱壩變形測(cè)點(diǎn)分區(qū)結(jié)果見表2。 表2 拱壩變形測(cè)點(diǎn)分區(qū)結(jié)果Table 2 Partition results of deformation measuring points for arch dam 由表2可以看出,Ⅳ區(qū)內(nèi)全部為正垂線測(cè)點(diǎn),Ⅲ區(qū)內(nèi)同時(shí)包含正垂線測(cè)點(diǎn)和倒垂線測(cè)點(diǎn),為了驗(yàn)證不同類型垂線測(cè)點(diǎn)的適用性,本文以Ⅲ區(qū)內(nèi)倒垂線測(cè)點(diǎn)IP11-1和Ⅳ區(qū)內(nèi)正垂線測(cè)點(diǎn)PL13-4為例,選取2012年12月7日至2018年12月31日壩體徑向變形監(jiān)測(cè)資料進(jìn)行研究,其中前80%作為訓(xùn)練集(2012年12月7日至2018年4月4日),后20%作為測(cè)試集(2018年4月5日至2018年12月31日)。Ⅲ區(qū)及Ⅳ區(qū)內(nèi)所有測(cè)點(diǎn)的實(shí)測(cè)位移過(guò)程線見圖4。 圖4 測(cè)點(diǎn)實(shí)測(cè)位移過(guò)程線Fig.4 Process lines of measured displacement at measuring points 由圖4可以看出,除少數(shù)跳躍點(diǎn)外,分區(qū)內(nèi)所有測(cè)點(diǎn)的變形規(guī)律基本一致,可以初步判定,聚類對(duì)壩體測(cè)點(diǎn)分區(qū)的結(jié)果是有意義的。 4.3.1 模型輸入及輸出變量的選擇 4.3.2 模型的參數(shù)調(diào)優(yōu) 模型基于Python3.7的XGBoost庫(kù)進(jìn)行,提取不同參數(shù)下模型的均方根誤差RMSE作為評(píng)價(jià)指標(biāo),均方根誤差的計(jì)算公式為 (10) 調(diào)參結(jié)果見表3。其中,num_round是決策樹的數(shù)量,max_depth是決策樹的最大深度,eta是學(xué)習(xí)率,模型其余參數(shù)為默認(rèn)值。 表3 XGBoost調(diào)參結(jié)果Table 3 Selection of parameters for XGBoost model 4.3.3 模型的預(yù)測(cè)結(jié)果及推廣 將IP11-1測(cè)點(diǎn)和PL13-4測(cè)點(diǎn)的調(diào)參結(jié)果分別應(yīng)用到Ⅲ區(qū)和Ⅳ區(qū)內(nèi)其他測(cè)點(diǎn),并建立XGBoost變形預(yù)測(cè)模型,比較不同測(cè)點(diǎn)的相關(guān)系數(shù)R和均方根誤差RMSE,得到預(yù)測(cè)精度見表4、表5。 表4 Ⅲ區(qū)測(cè)點(diǎn)預(yù)測(cè)精度Table 4 Prediction accuracy of measuring points in zone Ⅲ 表5 Ⅳ區(qū)測(cè)點(diǎn)預(yù)測(cè)精度Table 5 Prediction accuracy of measuring points in zone Ⅳ 由表4、表5可以看到,測(cè)點(diǎn)IP11-1所在的Ⅲ區(qū)及測(cè)點(diǎn) PL13-4所在的Ⅳ區(qū)內(nèi)所有測(cè)點(diǎn),R的值均在0.94之上,RMSE的值最高為0.827 36,效果很好,說(shuō)明在同一分區(qū)內(nèi)的所有測(cè)點(diǎn),因其具有相似的變化規(guī)律,可以建立同一預(yù)測(cè)模型進(jìn)行分析。 為了檢驗(yàn)預(yù)測(cè)模型對(duì)其它分區(qū)測(cè)點(diǎn)的無(wú)效性,本文選?、髤^(qū)內(nèi)的測(cè)點(diǎn)PL16-4,建立了在Ⅳ區(qū)參數(shù)結(jié)果下的XGBoost預(yù)測(cè)模型,得到的R和RMSE結(jié)果分別為0.924 02和2.660 46??梢钥闯觯m然預(yù)測(cè)結(jié)果的相關(guān)性較高,但均方根誤差表現(xiàn)較差,效果一般,這也說(shuō)明了對(duì)于不同變化規(guī)律的測(cè)點(diǎn)應(yīng)分別建模分析。 4.3.4 與隨機(jī)森林的預(yù)測(cè)結(jié)果對(duì)比 本文研究的XGBoost算法是集成學(xué)習(xí)中Boosting的代表算法,而隨機(jī)森林是另一種算法Bagging算法的典型代表。目前已有學(xué)者將隨機(jī)森林算法應(yīng)用在大壩變形預(yù)測(cè)中,無(wú)論在運(yùn)算時(shí)間還是預(yù)測(cè)精度上,都較傳統(tǒng)機(jī)器學(xué)習(xí)算法有很大的進(jìn)步。因此,本文建立隨機(jī)森林預(yù)測(cè)模型與XGBoost模型作對(duì)比。 不同于XGBoost模型,建立隨機(jī)森林預(yù)測(cè)模型時(shí),必須先對(duì)輸入變量進(jìn)行缺失值處理。本文僅以Ⅳ區(qū)測(cè)點(diǎn)PL13-4為例,首先采取隨機(jī)森林回歸的方式對(duì)其輸入變量進(jìn)行缺失值填充,該方式可以保留更多有效信息,然后在此基礎(chǔ)上建立隨機(jī)森林預(yù)測(cè)模型,調(diào)參結(jié)果見表6。其中n_estimators是決策樹的數(shù)量,min_samples_leaf是葉子節(jié)點(diǎn)的最少樣本量,模型其余參數(shù)為默認(rèn)值。 表6 隨機(jī)森林調(diào)參結(jié)果Table 6 Selection of parameters for random forest model XGBoost模型和隨機(jī)森林模型的調(diào)參時(shí)間(以決策樹的數(shù)量這個(gè)參數(shù)進(jìn)行一次試算為例)、預(yù)測(cè)精度對(duì)比結(jié)果見表7,預(yù)測(cè)誤差對(duì)比見圖5。 表7 兩種模型對(duì)比結(jié)果Table 7 Comparison of two models 圖5 模型預(yù)測(cè)誤差對(duì)比Fig.5 Comparison of prediction errors amongthree models 由表7可知,XGBoost模型較隨機(jī)森林模型,在預(yù)測(cè)精度上有所提高,而且在運(yùn)行時(shí)間上也表現(xiàn)出了絕對(duì)的優(yōu)勢(shì)。觀察圖5可以看到,統(tǒng)計(jì)模型的預(yù)測(cè)誤差相對(duì)較高,隨機(jī)森林模型的預(yù)測(cè)誤差在某一時(shí)間段出現(xiàn)了突變,說(shuō)明它在預(yù)測(cè)過(guò)程中不夠穩(wěn)定,而XGBoost模型整體表現(xiàn)平穩(wěn),且預(yù)測(cè)誤差始終保持在一個(gè)較低值狀態(tài)。綜上,XGBoost算法無(wú)論是在預(yù)測(cè)結(jié)果還是建模時(shí)間上,都表現(xiàn)得更為優(yōu)秀。 針對(duì)大壩變形中預(yù)測(cè)效率和預(yù)測(cè)精度不平衡的問(wèn)題,基于FCM聚類和XGBoost算法,建立了一種FCM-XGBoost大壩變形預(yù)測(cè)模型。通過(guò)工程實(shí)例驗(yàn)證,得出以下結(jié)論: (1)將FCM聚類算法應(yīng)用于拱壩的變形測(cè)點(diǎn)分區(qū),解決了測(cè)點(diǎn)分別建模的復(fù)雜性以及所有測(cè)點(diǎn)建立同一模型不準(zhǔn)確性的問(wèn)題,從分區(qū)結(jié)果來(lái)看,該方法具有一定的合理性。 (2)與隨機(jī)森林模型相比,XGBoost模型不僅在預(yù)測(cè)精度上表現(xiàn)更好,在時(shí)效上也顯現(xiàn)出明顯的優(yōu)勢(shì),除了能實(shí)現(xiàn)缺失值的自動(dòng)處理,在建模時(shí)間上也有很大提升,說(shuō)明XGBoost算法應(yīng)用于大壩安全監(jiān)控領(lǐng)域是有意義的。2.2 XGBoost算法
3 基于FCM-XGBoost的大壩變形預(yù)測(cè)模型
4 實(shí)例分析
4.1 工程概況
4.2 基于FCM的拱壩變形測(cè)點(diǎn)分區(qū)
4.3 XGBoost大壩變形預(yù)測(cè)模型
5 結(jié) 論