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