趙 炯 王鵬峰 周奇才 張 恒 陳傳林
1同濟(jì)大學(xué)機(jī)械與能源工程學(xué)院 上海 201804 2上海地鐵盾構(gòu)設(shè)備工程有限公司 上海 200120
隨著我國(guó)經(jīng)濟(jì)社會(huì)的發(fā)展和城市化進(jìn)程步伐的加快,地鐵盾構(gòu)成為各個(gè)主要城市交通發(fā)展的方向,全世界生產(chǎn)的盾構(gòu)機(jī)已累計(jì)超過(guò)1萬(wàn)余臺(tái)[1],地鐵也在緩解地上交通的壓力、促進(jìn)提升自然資源利用率等方面起到越來(lái)越重要的作用。由于地上交通資源日趨緊張,相比地上交通的出行方式,地鐵出行的出行時(shí)間相對(duì)穩(wěn)定,地鐵出行成為交通擁堵城市人們出行的重要選擇。地鐵的建設(shè)促進(jìn)了我國(guó)社會(huì)的交通方式變革,也對(duì)我國(guó)的經(jīng)濟(jì)社會(huì)發(fā)展起到了極大的促進(jìn)作用[2]。
自從2008年我國(guó)制造了中國(guó)第一臺(tái)具有自主知識(shí)產(chǎn)權(quán)的復(fù)合式土壓平衡盾構(gòu)機(jī)——中國(guó)中鐵1號(hào)以來(lái),我國(guó)地鐵盾構(gòu)技術(shù)飛速發(fā)展[3]。但是,在當(dāng)今時(shí)代的要求下,盾構(gòu)技術(shù)需要結(jié)合信息化技術(shù)才能緊跟時(shí)代步伐,實(shí)現(xiàn)盾構(gòu)信息化、數(shù)字化的發(fā)展是當(dāng)今需要解決的時(shí)代問(wèn)題。其中地鐵盾構(gòu)中重要的一環(huán)就是螺旋機(jī)的控制,利用盾構(gòu)施工參數(shù)和數(shù)據(jù)研究螺旋機(jī)的轉(zhuǎn)速控制機(jī)理對(duì)于實(shí)現(xiàn)盾構(gòu)施工作業(yè)的數(shù)字化發(fā)展具有重要意義[4]。盾構(gòu)施工的智能化和數(shù)字化對(duì)于未來(lái)城市的數(shù)字化建設(shè)和管理等進(jìn)程也具有非常重要的促進(jìn)作用。
現(xiàn)代盾構(gòu)機(jī)普遍采用PLC進(jìn)行控制和參數(shù)監(jiān)測(cè),同時(shí)盾構(gòu)已經(jīng)能夠?qū)崿F(xiàn)遠(yuǎn)程監(jiān)控盾構(gòu)過(guò)程中的各種施工參數(shù),并將這些參數(shù)通過(guò)以太網(wǎng)傳送到遠(yuǎn)程數(shù)據(jù)中心進(jìn)行存儲(chǔ)。盾構(gòu)歷史數(shù)據(jù)需要從盾構(gòu)機(jī)的遠(yuǎn)程數(shù)據(jù)庫(kù)中導(dǎo)出,具體可以通過(guò)遠(yuǎn)程登錄連接傳輸或物理復(fù)制等手段取得。
國(guó)內(nèi)某地鐵盾構(gòu)公司的盾構(gòu)機(jī)施工數(shù)據(jù)采用每臺(tái)盾構(gòu)機(jī)一張數(shù)據(jù)表的形式存儲(chǔ),每一列存儲(chǔ)一種參數(shù),每一行存儲(chǔ)當(dāng)前時(shí)刻采集到的各種參數(shù)的數(shù)據(jù)。不同廠家生產(chǎn)的盾構(gòu)機(jī)型號(hào)有所差別,傳感器的安裝也不完全統(tǒng)一,不同的盾構(gòu)機(jī)數(shù)據(jù)表會(huì)有差異,如參數(shù)順序不同、參數(shù)種類(lèi)不同、參數(shù)命名方法不同、同一類(lèi)別參數(shù)的個(gè)數(shù)不同等。此外,盾構(gòu)數(shù)據(jù)在傳感器檢測(cè)采集、傳輸過(guò)程和存儲(chǔ)過(guò)程等各個(gè)環(huán)節(jié)都有可能出現(xiàn)疏漏,數(shù)據(jù)會(huì)有缺失和異常等各種情況,并且數(shù)據(jù)中存在很多無(wú)效數(shù)據(jù),故數(shù)據(jù)處理是一項(xiàng)極其復(fù)雜和艱巨的任務(wù)。
地鐵盾構(gòu)的歷史數(shù)據(jù)被保存到MySQL數(shù)據(jù)庫(kù)中,原始數(shù)據(jù)結(jié)構(gòu)如圖1所示。圖1舉例展示的盾構(gòu)機(jī)的歷史原始數(shù)據(jù)共有64 035行,504列。
圖1 原始數(shù)據(jù)
本文采用Python語(yǔ)言開(kāi)展相關(guān)問(wèn)題研究,使用Python的一個(gè)開(kāi)源發(fā)行版本Anaconda進(jìn)行本文編程環(huán)境的構(gòu)建,程序的運(yùn)行和調(diào)試在Anaconda的Jupyter lab交互式開(kāi)發(fā)環(huán)境中進(jìn)行。本文全程采用Python進(jìn)行數(shù)據(jù)處理,通過(guò)SQLyog軟件將數(shù)據(jù)導(dǎo)出為csv格式方便后續(xù)處理,研究的目標(biāo)為利用機(jī)器學(xué)習(xí)算法對(duì)盾構(gòu)螺旋輸送機(jī)轉(zhuǎn)速進(jìn)行預(yù)測(cè),其余數(shù)據(jù)為此研究目標(biāo)的特征數(shù)據(jù)。
數(shù)據(jù)處理的具體過(guò)程為:數(shù)據(jù)處理首先經(jīng)過(guò)一次人工篩選,將如數(shù)據(jù)上傳時(shí)間、數(shù)據(jù)接收時(shí)間、PLC的通訊狀態(tài)等明顯與盾構(gòu)螺旋輸送機(jī)轉(zhuǎn)速預(yù)測(cè)目標(biāo)無(wú)關(guān)的特征刪除;本文所研究的是盾構(gòu)螺旋輸送機(jī)轉(zhuǎn)速的預(yù)測(cè),螺旋機(jī)轉(zhuǎn)速為零的樣本數(shù)據(jù)應(yīng)被視為無(wú)效數(shù)據(jù),故可刪除螺旋機(jī)轉(zhuǎn)速為零的無(wú)效樣本數(shù)據(jù);獲得的數(shù)據(jù)中有很多空值,尤其是開(kāi)關(guān)量D1-D200中有很多為空值,故可刪除這些全部為空值的開(kāi)關(guān)量;刪除后只剩下2個(gè)開(kāi)關(guān)量特征——D49和D129,經(jīng)過(guò)查詢(xún)?nèi)鐖D2所示的盾構(gòu)公司提供的盾構(gòu)機(jī)參數(shù)資料,D49為膨潤(rùn)土泵1變頻器故障,出現(xiàn)此故障時(shí)應(yīng)停機(jī)檢修,故可刪除此特征;D129為外密封后腔計(jì)數(shù)不夠報(bào)警,只存在2個(gè)值為非缺失值(見(jiàn)圖3),且對(duì)整體的影響而言相對(duì)較小,故可刪除此特征。經(jīng)過(guò)描述性統(tǒng)計(jì)發(fā)現(xiàn),很多特征的所有樣本的值都相同,故可利用方差過(guò)濾法將特征方差值為零的特征刪除。需要說(shuō)明的是,此時(shí)不可通過(guò)方差過(guò)濾將方差小于閾值的特征刪除或根據(jù)方差的大小進(jìn)行特征選擇,因?yàn)槎軜?gòu)掘進(jìn)數(shù)據(jù)的量綱沒(méi)有統(tǒng)一,如果通過(guò)以上方差過(guò)濾法進(jìn)行特征選擇,會(huì)將值本來(lái)就很小的有用特征篩選掉,對(duì)后續(xù)螺旋機(jī)轉(zhuǎn)速的預(yù)測(cè)可能產(chǎn)生不利影響;在進(jìn)行完上述的數(shù)據(jù)處理過(guò)程之后,對(duì)數(shù)據(jù)進(jìn)行描述性統(tǒng)計(jì)(見(jiàn)圖4),其中count表示數(shù)據(jù)集中該特征的有效數(shù)值個(gè)數(shù),即去除空值后的該特征數(shù)據(jù)個(gè)數(shù),mean為該特征的平均值,std表示該特征的標(biāo)準(zhǔn)差,min表示該特征的最小值,max表示該特征的最大值,其余的百分比數(shù)值表示將該特征的數(shù)值從小到大排列后對(duì)應(yīng)的百分比位置的數(shù)值大小,利用描述性統(tǒng)計(jì)能夠找出數(shù)據(jù)異常的特征,經(jīng)分析刪除了部分異常特征(如A16為底部土倉(cāng)壓力,其值從小到大排列后只有10%的數(shù)值與其余數(shù)值不同,因此本文認(rèn)為底部土倉(cāng)壓力數(shù)值異常)。
圖2 盾構(gòu)機(jī)掘進(jìn)參數(shù)
圖3 缺失值統(tǒng)計(jì)
圖4 描述性統(tǒng)計(jì)
經(jīng)過(guò)上述數(shù)據(jù)預(yù)處理過(guò)程,得到了可供算法分析的初始數(shù)據(jù),數(shù)據(jù)集包含3 177個(gè)樣本和163個(gè)特征(見(jiàn)圖5)。在實(shí)際建模過(guò)程中,由于不同模型對(duì)于數(shù)據(jù)集的要求不同,還需要對(duì)數(shù)據(jù)集進(jìn)行無(wú)量綱化處理,如標(biāo)準(zhǔn)化和歸一化等縮放處理,以求模型在數(shù)據(jù)集上能有更好的表現(xiàn)[5]。
圖5 數(shù)據(jù)預(yù)處理
本文采用機(jī)器學(xué)習(xí)算法對(duì)盾構(gòu)數(shù)據(jù)進(jìn)行研究,機(jī)器學(xué)習(xí)算法可以分為分類(lèi)算法和回歸算法。盾構(gòu)機(jī)施工數(shù)據(jù)由于機(jī)型的不同,螺旋輸送機(jī)的轉(zhuǎn)速值的記錄也有所不同,一部分采用整數(shù)值對(duì)螺旋輸送機(jī)的轉(zhuǎn)速進(jìn)行記錄,而另一些則采用浮點(diǎn)數(shù)對(duì)轉(zhuǎn)速值進(jìn)行記錄。本文研究的土壓平衡盾構(gòu)機(jī)采用整數(shù)記錄螺旋輸送機(jī)的轉(zhuǎn)速,轉(zhuǎn)速值的范圍為0~14,并且分布不均衡。因此,采用Sklearn中的分類(lèi)算法對(duì)盾構(gòu)螺旋輸送機(jī)的轉(zhuǎn)速進(jìn)行分析訓(xùn)練和預(yù)測(cè)。Sklearn中的分類(lèi)算法主要包含分類(lèi)決策樹(shù)、分類(lèi)隨機(jī)森林、邏輯回歸、支持向量機(jī)(Support Vector Machines,SVM)、樸素貝葉斯、極端梯度提升(eXtreme Gradient Boosting,XGBoost)和分類(lèi)神經(jīng)網(wǎng)絡(luò)等。本文主要采用決策樹(shù)、隨機(jī)森林、支持向量機(jī)和神經(jīng)網(wǎng)絡(luò)4種算法對(duì)盾構(gòu)螺旋輸送機(jī)轉(zhuǎn)速進(jìn)行訓(xùn)練和預(yù)測(cè)。
作為一種有監(jiān)督學(xué)習(xí)的分類(lèi)模型,決策樹(shù)能夠在包含標(biāo)簽和數(shù)據(jù)特征的數(shù)據(jù)集中做出決策,其原理易于理解,并且能夠畫(huà)出決策樹(shù)的樹(shù)狀圖,能夠很直觀地體現(xiàn)決策過(guò)程,同時(shí)決策樹(shù)也能處理多分類(lèi)問(wèn)題,并且對(duì)于數(shù)據(jù)的規(guī)范化要求不是很?chē)?yán)格,因此其在各行業(yè)中得到了廣泛應(yīng)用。
使用決策樹(shù)來(lái)對(duì)盾構(gòu)螺旋輸送機(jī)轉(zhuǎn)速進(jìn)行預(yù)測(cè),需要對(duì)作為標(biāo)簽數(shù)據(jù)的螺旋機(jī)轉(zhuǎn)速數(shù)據(jù)進(jìn)行編碼處理,使其能夠被用來(lái)進(jìn)行分類(lèi)。本文采用Sklearn.Preprocessing庫(kù)中的LabelEncoder模塊對(duì)標(biāo)簽進(jìn)行編碼。本文基于的數(shù)據(jù),其原始螺旋機(jī)轉(zhuǎn)速的值為整數(shù)數(shù)值。經(jīng)過(guò)數(shù)據(jù)預(yù)處理的數(shù)據(jù)包含有162個(gè)特征,這對(duì)于具有過(guò)擬合性質(zhì)的決策樹(shù)而言數(shù)據(jù)特征過(guò)多,故本文采用Sklearn.Feature_Selection庫(kù)中的Mutual_Info_Classif模塊互信息分類(lèi)來(lái)篩選出30個(gè)最優(yōu)特征來(lái)作為數(shù)據(jù)集進(jìn)行訓(xùn)練。以決策樹(shù)的深度作為橫坐標(biāo),評(píng)估指標(biāo)(即決策樹(shù)的準(zhǔn)確度)作為縱坐標(biāo),得出的學(xué)習(xí)曲線如圖6所示。
圖6 決策樹(shù)學(xué)習(xí)曲線圖
隨機(jī)森林屬于裝袋法的集成算法,是裝袋法的典型模型,裝袋法的核心思想是構(gòu)建多個(gè)相互獨(dú)立的評(píng)估器,結(jié)果則根據(jù)對(duì)所有預(yù)測(cè)的輸出結(jié)果進(jìn)行平均或按少數(shù)服從多數(shù)的原則得出。本文采用10折交叉驗(yàn)證來(lái)探究隨機(jī)森林的樹(shù)的個(gè)數(shù)對(duì)于決策精確度的影響,得出的結(jié)果如圖7所示。
圖7 決策樹(shù)個(gè)數(shù)對(duì)決策的影響曲線圖
由圖7可以看出,對(duì)于螺旋機(jī)轉(zhuǎn)速的預(yù)測(cè)問(wèn)題,使用隨機(jī)森林進(jìn)行研究是非常不適合的,模型的準(zhǔn)確度很差,得到的結(jié)果最高只有0.111 2的準(zhǔn)確度。
支持向量機(jī)是機(jī)器學(xué)習(xí)最受關(guān)注的算法,可以進(jìn)行有監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí),應(yīng)用非常廣泛,并且在各種實(shí)用問(wèn)題中(如手寫(xiě)數(shù)字識(shí)別、人臉識(shí)別、分類(lèi)文本和超文本、圖像分類(lèi)與分割和蛋白質(zhì)分類(lèi)等)都表現(xiàn)得很優(yōu)秀。由于支持向量機(jī)對(duì)于數(shù)據(jù)的量綱具有很高的敏感性,故本文又在數(shù)據(jù)預(yù)處理的基礎(chǔ)上對(duì)原始數(shù)據(jù)進(jìn)行了數(shù)據(jù)歸一化的處理。
本文分別使用Linear、Poly、Rbf和Sigmoid核函數(shù)的支持向量機(jī)對(duì)螺旋機(jī)轉(zhuǎn)速預(yù)測(cè)進(jìn)行了訓(xùn)練和測(cè)試,結(jié)果表明線性核函數(shù)的效果不理想,多項(xiàng)式核函數(shù)只能在一次的情況下運(yùn)行出結(jié)果并且效果不理想,Rbf核函數(shù)不能運(yùn)行出結(jié)果,Sigmoid核函數(shù)運(yùn)行得到的結(jié)果較差。綜上所述,表明支持向量機(jī)對(duì)于如此多標(biāo)簽類(lèi)別和特征的分類(lèi)問(wèn)題不擅長(zhǎng),支持向量機(jī)不能很好地對(duì)螺旋機(jī)轉(zhuǎn)速的預(yù)測(cè)進(jìn)行分類(lèi)判斷。
神經(jīng)網(wǎng)絡(luò)借鑒了仿生學(xué)的思想,利用計(jì)算機(jī)技術(shù)來(lái)模仿人類(lèi)大腦神經(jīng)元的結(jié)構(gòu)和功能,采用分布式并行信息處理的方式來(lái)對(duì)信息進(jìn)行處理。神經(jīng)網(wǎng)絡(luò)通過(guò)調(diào)節(jié)內(nèi)部節(jié)點(diǎn)之間的隱藏參數(shù)來(lái)適應(yīng)并處理信息,進(jìn)而得出計(jì)算結(jié)果。隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)的軟硬件水平不斷提高,神經(jīng)網(wǎng)絡(luò)的應(yīng)用越來(lái)越廣泛,在機(jī)器學(xué)習(xí)尤其是深度學(xué)習(xí)領(lǐng)域得到廣泛應(yīng)用。
本文采用Sklearn的Neural_Network庫(kù)中的MLPClassifier模塊來(lái)對(duì)數(shù)據(jù)進(jìn)行學(xué)習(xí)和預(yù)測(cè)。同樣地,需要先對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,由于特征數(shù)目太多導(dǎo)致模型對(duì)于數(shù)據(jù)的學(xué)習(xí)過(guò)于細(xì)致,導(dǎo)致模型過(guò)擬合,模型的泛化性差。因此本文通過(guò)互信息法選取特征,隨后用選取出來(lái)的特征進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,其中,神經(jīng)網(wǎng)絡(luò)選取4層隱藏層,每層的隱藏神經(jīng)元個(gè)數(shù)分別為80、80、80、60。模型的預(yù)測(cè)準(zhǔn)確率與數(shù)據(jù)特征個(gè)數(shù)的關(guān)系如圖8所示。
圖8 不同特征個(gè)數(shù)的準(zhǔn)確率
由于圖8繪制的曲線是在步長(zhǎng)為10的基礎(chǔ)上進(jìn)行訓(xùn)練得到的結(jié)果,為了更加準(zhǔn)確地得到學(xué)過(guò)最好的時(shí)候的特征個(gè)數(shù),繼續(xù)選取步長(zhǎng)為1進(jìn)行訓(xùn)練并將得到如下結(jié)果(見(jiàn)圖9),平均絕對(duì)誤差(MAE)的結(jié)果如圖10所示。
圖9 最佳特征個(gè)數(shù)
圖10 MAE結(jié)果
從結(jié)果看,神經(jīng)網(wǎng)絡(luò)相比上述其余的模型對(duì)于螺旋機(jī)轉(zhuǎn)速的預(yù)測(cè)的準(zhǔn)確率更好,準(zhǔn)確率只有45%左右,但由于本文研究的是14分類(lèi)問(wèn)題,故此效果已經(jīng)相對(duì)較好。平均絕對(duì)誤差的最理想結(jié)果是0,即預(yù)測(cè)與真實(shí)值毫無(wú)偏差,本文得出的結(jié)果與真實(shí)結(jié)果相差不到1,故效果可接受。但是,對(duì)于實(shí)際應(yīng)用而言效果不完美,仍需進(jìn)一步探索更為貼合轉(zhuǎn)速控制的模型。
另外,由于本文所采用的數(shù)據(jù)完全是由函數(shù)篩選而來(lái),未經(jīng)人工進(jìn)行特征篩選,可能是造成模型效果不佳的重要原因。由于人工進(jìn)行盾構(gòu)機(jī)控制時(shí)人對(duì)于施工狀況的反應(yīng)的滯后性,所采集到的數(shù)據(jù)可能是盾構(gòu)司機(jī)對(duì)于先前盾構(gòu)狀況所做出的決策,故可認(rèn)為盾構(gòu)數(shù)據(jù)的缺陷也是導(dǎo)致模型效果不佳的重要原因。此外,由于盾構(gòu)機(jī)的螺旋輸送機(jī)轉(zhuǎn)速值分布不均衡,存在樣本不均衡的問(wèn)題暫時(shí)無(wú)法解決,本文認(rèn)為螺旋輸送機(jī)的轉(zhuǎn)速樣本不均衡同樣是導(dǎo)致模型效果不完美的重要原因之一。需要指出的是,對(duì)于不同的盾構(gòu)機(jī),模型的效果也是不同的并且有較大差距,本文認(rèn)為盾構(gòu)機(jī)的型號(hào)和運(yùn)行等因素也是影響預(yù)測(cè)偏差的重要成因。
影響盾構(gòu)螺旋輸送機(jī)轉(zhuǎn)速的因素眾多,機(jī)器學(xué)習(xí)方法運(yùn)用于盾構(gòu)螺旋輸送機(jī)轉(zhuǎn)速預(yù)測(cè)這一14分類(lèi)問(wèn)題取得的一定的效果。相較于決策樹(shù)、隨機(jī)森林和支持向量機(jī)等模型,神經(jīng)網(wǎng)絡(luò)分類(lèi)算法的預(yù)測(cè)準(zhǔn)確度效果好,預(yù)測(cè)結(jié)果的平均絕對(duì)誤差在0.9左右。但由于盾構(gòu)施工作業(yè)需要防范風(fēng)險(xiǎn),提高控制系統(tǒng)的可靠性,并且出于對(duì)算法的運(yùn)行速度的考慮,實(shí)際應(yīng)用中仍需提高預(yù)測(cè)精度,保證盾構(gòu)施工更加科學(xué)、高效和安全。