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