丁志遠
摘 要:近年來,國企不斷加強深化改革,作為交通運輸系統(tǒng)的骨干企業(yè),鐵路行業(yè)更是首當其沖,為了充分發(fā)掘鐵路信息化發(fā)展過程中積累的大量數(shù)據(jù),為智能分析、科學決策提供依據(jù),鐵路企業(yè)對大數(shù)據(jù)分析的重視提升到了新的高度。鐵路行車設(shè)備施工維修登銷記系統(tǒng)(CMIS)經(jīng)過長期的投產(chǎn)使用,積累了大量的施工維修作業(yè)數(shù)據(jù),文章運用大數(shù)據(jù)的相關(guān)技術(shù),采用決策樹方法建立行車設(shè)備施工延時模型,為施工管理和施工單位實際作業(yè)提供角色依據(jù)。
關(guān)鍵詞:大數(shù)據(jù);施工維修;鐵路行業(yè)
中圖分類號:U227 文獻標志碼:A 文章編號:2095-2945(2017)30-0058-02
1 概述
隨著社會信息化步伐的加快,越來越多的數(shù)據(jù)被各行各業(yè)的信息系統(tǒng)不斷的生產(chǎn)出來,相對于處理具體業(yè)務,“數(shù)據(jù)”本身的價值得到了更多的關(guān)注。并且,得益于硬件處理能力的提升以及基于分布式計算的云計算平臺技術(shù)的日益成熟, 對大數(shù)據(jù)進行分析也具備了技術(shù)基礎(chǔ),越來越多行業(yè)的企業(yè)開始掘金大數(shù)據(jù)來發(fā)現(xiàn)自身業(yè)務的規(guī)律,優(yōu)化自身業(yè)務。在鐵路信息化發(fā)展過程中,也累積了大量半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。從大數(shù)據(jù)的數(shù)據(jù)體量巨大和數(shù)據(jù)類型繁多兩個層面,有力地印證了鐵路統(tǒng)計信息化已進入了大數(shù)據(jù)時代。[1]
鐵路行車設(shè)備施工維修登銷記系統(tǒng)(CMIS)是對鐵路沿線施工和維修作業(yè)進行信息化管理的系統(tǒng),記錄了施工維修作業(yè)的基本信息和審核過程。按照鐵路運營線施工作業(yè)管理辦法,通常先在施工調(diào)度指揮系統(tǒng)中申請施工月度和日計劃,正式實施時,使用CMIS系統(tǒng)填寫施工內(nèi)容,依次經(jīng)過車站值班員審核、調(diào)度臺審核后開始進行施工作業(yè),完成施工后進行銷記,根據(jù)實際情況,施工作業(yè)可以延時。
本文旨在探索大數(shù)據(jù)相關(guān)技術(shù)在鐵路運輸生產(chǎn)系統(tǒng)中的實際應用,搭建cloudera群集環(huán)境,利用2012年至2016年呼和浩特鐵路局營業(yè)線施工登銷記記錄,采用決策樹方法建立行車設(shè)備施工延時預測模型,為施工管理和施工單位實際作業(yè)提供決策依據(jù)。
2 環(huán)境準備
大數(shù)據(jù)平臺是將計算任務分配到群集中各節(jié)點服務器分布式并行運行的平臺,包含了MapReduce、HDFS、YARN、HIVE、SPARK等一系列的服務組件來支撐其運行,搭建大數(shù)據(jù)平臺運行環(huán)境通常有兩種方式:原生Hadoop框架和廠商集成產(chǎn)品。搭建基于原生Hadoop生態(tài)系統(tǒng)的大數(shù)據(jù)平臺需要手工逐個安裝上述服務組件,廠商集成產(chǎn)品則將配套組件進行了集成,具有安裝配置簡便、不需要考慮組件兼容性的優(yōu)點。本文采用Cloudera CDH產(chǎn)品搭建大數(shù)據(jù)平臺,部署在六臺Linux CentOS服務器組成的群集上,其中一臺作為主節(jié)點NameNode,其他五臺作為DataNode,平臺包含大數(shù)據(jù)分析常用的組件,可以擴展組成群集的服務器數(shù)目,以適應未來的大處理量數(shù)據(jù)分析需求。采用決策樹模型分析施工延時情況的應用主要使用了以下服務組件:
(1)MapReduce: 提供并行計算的編程模型,是Hadoop分布式計算的基礎(chǔ)。
(2)HDFS:分布式的數(shù)據(jù)存儲結(jié)構(gòu)。
(3)Yarn:管理群集任務調(diào)度,自動將計算任務調(diào)度到各數(shù)據(jù)節(jié)點。
(4)Spark:提供編程接口,并且包含機器學習庫。
3 數(shù)據(jù)準備
預測分析營業(yè)線施工作業(yè)是否延時,可以使用大數(shù)據(jù)理論中的機器學習方法。機器學習通過讓機器學習樣本數(shù)據(jù),幫助機器建立預測分析模型,一般可以分為兩種:“分類學習”和“回歸學習”,前者的目的是預測分析數(shù)據(jù)記錄的具體歸類,包含決策樹、樸素貝葉斯、K-近鄰等分類算法,后者則是對數(shù)據(jù)某一具體觀測值的定量預測分析。
決策樹是一個類似于樹結(jié)構(gòu)的分析預測模型,根據(jù)樹的不同層次,可以把樹結(jié)構(gòu)分為根結(jié)點(也稱父結(jié)點)、分支結(jié)點以及葉子結(jié)點。從決策樹的根結(jié)點到葉子結(jié)點的一條路徑就對應著一條預測規(guī)則,完整的一棵樹就對應著所有預測規(guī)則。在每個結(jié)點選擇分類效果最好的決策屬性對樣本集進行劃分,直至這棵樹能準確地將樣本集分類。[2]決策樹算法應用廣泛,不僅支持數(shù)值類的屬性變量,而且支持類型類的屬性變量,施工登銷記記錄數(shù)據(jù)包含有類型類的屬性變量(如施工線路包含多條線路名稱、封鎖類型包含慢行、停電等),可以采用決策樹的方法來預測分析施工作業(yè)是否延時。
為了獲得質(zhì)量較高的分析結(jié)果,首先需要進行數(shù)據(jù)清洗,包括去除一些重復數(shù)據(jù)、空值、噪聲。施工登銷記中包含一些在系統(tǒng)試運行時測試用的無效數(shù)據(jù),這些是可以在最開始的數(shù)據(jù)獲取中就可以清理的,XB(行別)、Ctype(施工封鎖類型)等屬性中存在一些無效值,這些值也需要修正。
其次,選擇用于決策樹算法的屬性特征,本次分析選擇了可能影響施工延時預測結(jié)果的以下屬性變量:ApplyDate(施工日期)、DescLen(施工內(nèi)容描述的長度)、XB(行別)、Ctype(施工封鎖類型)、Line(線別)、ConstructTime(施工時長)、Flag(延時標志)。將施工日期轉(zhuǎn)換星期幾(WeekDay),轉(zhuǎn)換之后,F(xiàn)lag 是預測結(jié)果的標志,DescLen、ConstructTime是數(shù)值型屬性,其他屬性都是類型類的屬性變量。
經(jīng)過數(shù)據(jù)清洗后的施工登銷記記錄總計23684條,按照8:2的比率劃分為培訓數(shù)據(jù)和測試數(shù)據(jù),分別有19010、4674條數(shù)據(jù),前者用于建構(gòu)模型,后者用于測試模型決策效果。
4 建模及可視化
Spark MLib提供的決策樹算法模型默認參數(shù)是不接受類型類的屬性變量的,為了應用此模型,需要對類型類的屬性變量進行轉(zhuǎn)換處理。分為三個步驟:
首先,用StringIndexer將字符串形式的變量索引化(即用在集合中的序號表示字符串)。
其次,將所有屬性變量聚合成統(tǒng)一的矢量。
再次,應用VectorIndexer,該方法根據(jù)maxCategories的值自動識別上述矢量中的值為數(shù)值類或者類型類,由于所有類型類屬性中,分類最多的Line(線別)最多的分類為46個,此項參數(shù)設(shè)置為48。endprint
labelIndexerXB=StringIndexer(inputCol="XB",outputCol="indexedXB").fit(df)
df=labelIndexerXB.transform(df)
featureColumnsIndexed=['DescLen','indexedXB','indexedCtype','indexedLine', 'ConstructTime','weekday']
assembler=VectorAssembler(inputCols=featureColumnsIndexed,outputCol="features")
assembled=assembler.transform(df)
featureIndex
er=VectorIndexer(inputCol="features",outputCol="indexedFeatures",maxCategories=48).fit(assembled)
完成上述轉(zhuǎn)換處理后,可以用獲得的矢量參數(shù)建立決策樹模型:
dt=DecisionTreeClassifier(labelCol="indexedFlag",featuresCol="indexedFeatures",maxBins=40,impurity="gini")
按照建立的模型,對測試數(shù)據(jù)集的預測和實際結(jié)果比較如圖1,可以看到預測的結(jié)果是比較準確的。
Spark并不提供決策樹的可視化,但是可以導出決策樹的調(diào)試信息,再結(jié)合使用D3.js的繪圖功能,完整地展示該決策樹。
5 預測效果評估
對預測建模的評估可以參考其預測正確率以及混淆矩陣?;煜仃嚢膫€值,分別對應預測結(jié)果和實際結(jié)果進行比較的數(shù)據(jù)分布。左上角的值表示預測為False,實際也為Fasle的情況,左下角表示預測為False,實際為True的情況,右上角表示預測為True,實際為False的情況,右下角表示預測為True,實際也為True的情況。
完成決策樹建模后,可以應用在測試數(shù)據(jù)上驗證決策樹的預測效果,驗證結(jié)果顯示,該決策樹的預測正確率為99.6363%,混淆矩陣為:
array([[ 4635., 5.],[ 12., 22.]])
可以看出,預測正確率較高,而混淆矩陣的數(shù)值主要集中在左上角,即預測為不延時,實際也不延時的情形。這主要是因為營業(yè)線施工整體來說延時發(fā)生較少,即使全部判斷為不延時,預測正確率也很高,盡管如此,該決策樹模型還是提供了相對準確的預測效果。
6 結(jié)束語
進入鐵路大數(shù)據(jù)時代,在充分認識鐵路信息系統(tǒng)數(shù)據(jù)價值的基礎(chǔ)上,可以進行多層次、多角度的數(shù)據(jù)分析。本文搭建大數(shù)據(jù)應用基礎(chǔ)群集平臺,提取行車設(shè)備施工維修登銷記記錄數(shù)據(jù),建立決策樹模型,研究影響施工延時的決策影響因素。在此基礎(chǔ)上,可以進一步地進行大數(shù)據(jù)分析,包括對現(xiàn)車系統(tǒng)、集成平臺、安全管理信息系統(tǒng)等等的數(shù)據(jù)集成,運用聚類分析、回歸分析等更多的分析手段,充分發(fā)現(xiàn)數(shù)據(jù)價值,促使鐵路信息化逐步邁向智能化。
參考文獻:
[1]邵長虹,莊紅男,賈曉非.大數(shù)據(jù)環(huán)境下的鐵路統(tǒng)計信息化平臺研究[J].中國鐵路,2015.
[2]潘永麗.決策樹分類算法的改進及其應用研究[D].云南財經(jīng)大學,2011.endprint