張立欣,劉雨濛,賈世迎,王浩任,李明浩
(1.石家莊國有資本投資運營集團有限責任公司,河北 石家莊 050011;2.石家莊市軌道交通集團有限責任公司,河北 石家莊 050035;3.北京城建設計發(fā)展集團股份有限公司,北京 100037)
本論文分為工程案例事故大數(shù)據(jù)分析與明挖車站和盾構(gòu)區(qū)間安全評價兩個部分組成。
工程案例事故大數(shù)據(jù)分析基于工程事故案例歷史數(shù)據(jù),劃分明挖車站和盾構(gòu)區(qū)間工程事故案例數(shù)據(jù),在此基礎上,對明挖車站以及盾構(gòu)區(qū)間的典型安全事故類型進行劃分,利用隨機森林等機器學習算法挖掘不同安全事故類型下的影響因素(基坑圍護結(jié)構(gòu)形式、基坑規(guī)模、周邊環(huán)境、地質(zhì)參數(shù)等),并結(jié)合機制知識,篩選發(fā)生安全事故的主要影響因素[1]。
明挖車站和盾構(gòu)區(qū)間安全評價以明挖車站和盾構(gòu)區(qū)間安全事故的主要影響因素為輸入變量,明挖車站與盾構(gòu)區(qū)間安全性評價等級為輸出變量,基于標準化歐式距離算法,分別構(gòu)建明挖車站與盾構(gòu)區(qū)間安全性等級評價模型,對明挖車站與盾構(gòu)區(qū)間安全性等級進行預測[2]。
安全事故影響因素分析的所需數(shù)據(jù)主要包含以下3 個方面。
(1)勘察數(shù)據(jù)。包含工程概況數(shù)據(jù)、建筑物及地下管線調(diào)查報告、詳細的勘察報告數(shù)據(jù)等。
(2)設計數(shù)據(jù)。包含鉆孔數(shù)據(jù)、圍護結(jié)構(gòu)設計方案數(shù)據(jù)、土建方案設計數(shù)據(jù)、車站主體結(jié)構(gòu)主要構(gòu)件尺寸數(shù)據(jù)、防水設施參數(shù)數(shù)據(jù)、隧道埋深、隧道截面設計數(shù)據(jù)等。
(3)工程事故案例數(shù)據(jù)。包含事故的大概情況、具體情況、事故發(fā)展經(jīng)過、事故項目地質(zhì)勘察資料的數(shù)據(jù)記錄,圍護結(jié)構(gòu)設計數(shù)據(jù)等。
本模塊針對具體的事故類型,將根據(jù)影響因素分析得到的明挖車站安全事故關(guān)鍵影響因素和盾構(gòu)區(qū)間安全事故關(guān)鍵影響因素作為輸入數(shù)據(jù)。
主要結(jié)構(gòu)構(gòu)件尺寸如表1 所示。
2.2.1 安全事故影響因素分析
輸出對應安全事故類型的主要影響因素及量化指標,其次根據(jù)大數(shù)據(jù)分析算法尋找到與輸入數(shù)據(jù)最接近的事故案例數(shù)據(jù),給出經(jīng)驗數(shù)據(jù)中該車站可能發(fā)生的事故類型、處置過程,供用戶參考。
2.2.2 安全等級評價分析
根據(jù)具體的安全評價內(nèi)容,輸出相應事故的預測值,事故具體類型,并根據(jù)評價標準劃分,輸出車站及區(qū)間的安全等級。
字段類型分別為int,float,varchar,在已給樣本數(shù)據(jù)集中找到與目標樣本相似度最高的樣本。
針對后期要采用的算法,需要對數(shù)據(jù)進行相應的預處。
(1)可能會存在某些數(shù)據(jù)缺失的情況,對應缺失的數(shù)據(jù)統(tǒng)一用0 來填充。
(2)因為要進行數(shù)據(jù)計算,varchar 字符串字段需要進行數(shù)字轉(zhuǎn)化,例如,巖土名稱可以建立對應的映射表轉(zhuǎn)化{“缺失”:0,“A 巖土”:1,B 巖土:2}。
將對應的巖土名稱轉(zhuǎn)換成int 類型數(shù)據(jù)以供后續(xù)數(shù)據(jù)處理。
(3)針對int,float 數(shù)據(jù)進行數(shù)據(jù)標準化,將各維數(shù)據(jù)的分布統(tǒng)一化,避免因為數(shù)據(jù)分布的不同影響算法的結(jié)果,標準化的過程如下。
m:數(shù)據(jù)的均值。
s:數(shù)據(jù)的標準差。
X:需要標準的數(shù)據(jù)。
X*:標準化過后的數(shù)據(jù)。
標準化公式如式(1)所示。
標準化后的值=(標準化前的值-字段數(shù)據(jù)的均值)/字段數(shù)據(jù)的標準差。
樣本數(shù)據(jù)集大約有100 條數(shù)據(jù),目的是從這100 條數(shù)據(jù)中找到與目標數(shù)據(jù)最相近的樣本,可以通過回歸算法來計算數(shù)值來選取數(shù)值最詳盡的樣本,可以通過聚類算法來通過樣本分類來找到與之相近的數(shù)據(jù),但是這些常規(guī)的機器學習算法對于100 條數(shù)據(jù)來說可能沒有能力完成參數(shù)學習,所以這里推薦使用相似度計算方式,協(xié)同過濾的方式直接尋找與目標數(shù)據(jù)相近的數(shù)據(jù)。
(1)余弦距離。將樣本視為不同的向量,通過向量的余弦計算來選取最相似。
(2)歐式距離。計算樣本在歐式空間中的距離計算。
(3)曼哈頓距離。計算樣本的城市街區(qū)距離計算。
(4)切比雪夫距離。計算樣本的數(shù)值差的絕對值計算。
(5)馬氏距離。量綱無關(guān)的歐式空間距離計算。
(6)皮爾遜相關(guān)度。余弦相似度在維度值缺失情況下的一種改進計算。
(7)標準化歐式距離。標準化過后的歐式空間距離計算。
在上一步的數(shù)據(jù)標準化處理后進行計算。
視樣本為n 維向量(n 為樣本字段數(shù):91)。
xij:i 代表第i 個樣本;j 代表第j 個字段變量。
兩個n 維向量a(x11,x12,…,x1n)與b(x21,x22,…,x2n)間的標準化歐氏距離的公式如式(2)所示。
式中:d12——樣本1 與樣本2 之間的距離,后續(xù)記為d1:2。
現(xiàn)有100 個樣本數(shù)據(jù)集,與一個目標樣本。
通過數(shù)據(jù)處理后的標準化數(shù)據(jù),將這100 個樣本數(shù)據(jù)集和1 個目標樣本轉(zhuǎn)化為向量分別兩兩計算標準化歐式距離,目標樣本為101,求出來的結(jié)果如下。
d_array=[d101:1,d101:2,d101:3,d101:4,…d101:n,…d101:100]。
為避免距離最小結(jié)果只取一個可能會導致由于數(shù)據(jù)同一字段的差值又不同字段相似來彌補造成的誤差,所以建議最后取3 個與目標函數(shù)距離最近的樣本。
Min(d_array,3)。
取d_array 中距離最小的3 個樣本,為我們需要的與目標樣本最近的樣本。
選用標準化歐式距離的原因主要是因為我們的目的是在一個多維空間中找到一個與目標樣本距離最近,相似度最高的樣本,但是由于不同維度的數(shù)據(jù)可能存在不同的分布如果某一個維度的數(shù)據(jù)取值很大,那么結(jié)果很可能就被這個維度的數(shù)據(jù)所決定,所以需要解決不同維度數(shù)據(jù)分布的問題,針對這個問題選擇使用標準化的歐式距離,在進行標準化過后的數(shù)據(jù)滿足數(shù)學期望為0,方差為1,這樣各個維度的數(shù)據(jù)相當于有了相同的數(shù)據(jù)分布,那么在多維空間中,每個維度對于距離的貢獻度就變成了一致的,不會受某幾個維度產(chǎn)生過大的干擾,標準化歐氏距離也稱為加權(quán)歐氏距離(weighted euclidean distance),也可以理解為是在歐式距離上的一種加權(quán)算法,區(qū)別在于這個加權(quán)值是通過數(shù)據(jù)本身的特性計算出來的。
余弦距離:主要是為了考慮維度的相同趨勢的相似度計算,但是在安全分析數(shù)據(jù)需求中我們針對單一維度的數(shù)據(jù)是相似的,不存在數(shù)據(jù)整體上浮和整體下浮,我們想要的只是多維空間中距離最近的樣本。
(1)歐式距離。容易被少數(shù)大數(shù)值的維度所影響。
(2)曼哈頓距離。計算樣本的非直接距離,在目前需求中我們只需要考慮直接距離。
(3)切比雪夫距離。計算樣本的數(shù)值差的絕對值計算。
(4)馬氏距離。在協(xié)方差矩陣是對角陣的情況下就是標準化歐氏距離,考慮計算復雜度,沒有必要使用。
(5)皮爾遜相關(guān)度。余弦相似度在維度值缺失情況下的一種改進計算,主要作用于余弦距離相似。
(6)聚類算法。通常是一類數(shù)據(jù)的聚合,針對單一數(shù)據(jù)相似計算與上述距離算法類似,基于需求選取此算法并不合適,并且由于樣本數(shù)據(jù)集數(shù)據(jù)量問題,可能沒有很好的效果表現(xiàn)。
(7)其余機器學習算法。不符合需求,且由于數(shù)據(jù)量問題可能沒有辦法充分學習參數(shù),影響結(jié)果表現(xiàn)[3]。
數(shù)據(jù)集datas=[X1,X2,X3……X100]
目標數(shù)據(jù)target=X101。
映射集dict1={“A 名稱”:1,“B 名稱”:2}。
距離結(jié)果集d_array=(100)[float]長度為100 的浮點距離結(jié)果集。
標準化函數(shù)normal_function(column_data)參數(shù)為對應字段所有的數(shù)據(jù)。
標準化歐式距離計算函數(shù)distance_function(data1,data2)參數(shù)為待求距離的兩個樣本數(shù)據(jù)。
最小值函數(shù)min(d_array,n)參數(shù)1 為距離結(jié)果集,參數(shù)2 為number 為從小到大排序前n 個值。
Step1:
for data in datas: #對現(xiàn)有數(shù)據(jù)進行循環(huán)計算
for column in data: #對每條數(shù)據(jù)的每個字段進行循環(huán)計算
If data[column]is null:#對空值進行處理
data[column]= 0
If data[column].type is varchar:
data[column]= dict1.get(data[column]) # 根據(jù)字符串字段值轉(zhuǎn)換為對應int
Step2:
for data in datas: #對現(xiàn)有數(shù)據(jù)進行循環(huán)計算
for column in data: #對每條數(shù)據(jù)的每個字段進行循環(huán)計算
data[column]= normal_function(datascolumns)#對樣本的對應字段標準化計算
Step3:
for data in datas:
distance = distance_function(data,target)
d_array += distance
Step4:
data1,data2,data3 = min(d_array,3)
data1,data2,data3 為需求結(jié)果
安全性評價可視化界面包含3 部分:①安全事故影響因素分析。②事故預警分析。③安全等級評價分析。
安全事故影響因素分析可視化實施主函數(shù)為Influence_Factor_Analysis,該函數(shù)主要利用隨機森林算法對安全事故進行影響因素分析,得到造成安全事故的關(guān)鍵因素,并確定其關(guān)鍵影響指標和權(quán)重排序。最終可視化輸出為不同類型安全事故的關(guān)鍵影響因素以及關(guān)鍵因素的影響指標和權(quán)重[4]。
安全事故預警分析可視化實施主函數(shù)為Accident_Warning_Analysis,該函數(shù)主要利用支持向量機算法對安全事故進行預警分析,得到某一類型安全事故發(fā)生的概率,并確定該類型安全事故發(fā)生與否。最終可視化輸出為不同類型安全事故的發(fā)生概率。
安全性等級評價分析可視化實施主函數(shù)為Security_Level_Assessment,該函數(shù)主要利用XGBoost 算法對車站和區(qū)間變形量進行預測分析,并根據(jù)變形安全性標準將變形量劃分為若干個安全性等級,得到車站和區(qū)間預測變形量對應的安全性等級。最終可視化輸出為明挖車站和盾構(gòu)區(qū)間的安全性等級[5]。
通過BIM 數(shù)據(jù)集成平臺,以單位工程(車站或區(qū)間)的數(shù)據(jù)ID 關(guān)聯(lián)模型,進行定位展示。
在對樣本數(shù)據(jù)進行了空值處理,字符串轉(zhuǎn)化,標準化過后,通過選取與目標樣本標準化距離最小的3 個樣本為最終結(jié)果。
后續(xù)可根據(jù)樣本數(shù)量的增加可以選擇相應的回歸算法進行相似度計算,并且由于字段過多可以進行pca 降維對數(shù)據(jù)進行預處理,來對線性相關(guān)的維度進行降維處理,減少計算復雜度,避免數(shù)據(jù)維度相關(guān)的影響。