综合运用大数据技术分析铁路施工维修作业初探
2017-11-07丁志远
丁志远
摘 要:近年来,国企不断加强深化改革,作为交通运输系统的骨干企业,铁路行业更是首当其冲,为了充分发掘铁路信息化发展过程中积累的大量数据,为智能分析、科学决策提供依据,铁路企业对大数据分析的重视提升到了新的高度。铁路行车设备施工维修登销记系统(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