基于随机森林和XGBoost的铁路工期指标预测方法研究

2022-06-18 08:00寇智聪
电子元器件与信息技术 2022年4期
关键词:工期预测因素

寇智聪

中铁第五勘察设计院集团有限公司,北京,102600

0 引言

铁路工期进度指标是进行铁路施工组织编制的基础和依据,获取准确的进度指标值能够为组织施工方案和优化施工工期提供更为可靠的数据支撑。中国铁路总公司发布的《铁路工程施工组织设计规范》(Q/CR 9004-2018)[1]是施工组织编制的纲领性文件,其中对施工工期的主要参考指标进行了明确。该指标主要用于指导性的施工组织设计,然而各建设项目所在区域与施工条件各具特点,现场施工常会受到多种因素的影响,使得工期参考指标指导实际施工的意义大打折扣,容易造成计划与实际的脱节[2]。

部分专家学者通过实际调研与典型案例相结合的方法,收集相关数据作为确定工期指标的参照[3],而这种研究方法需要广泛收集资料,使得及时、准确地获得工期指标的难度较大。随着大数据和计算机科学的不断发展,新的信息技术和智能算法被越来越多地应用于工程建设领域[4-5]。一些学者也开始尝试应用智能算法来进行工期预测的研究[6-7],但目前此类研究仍处于起步阶段。上述相关研究中大多采用的是单一的回归预测模型且样本数量较少,虽然有效地解决了工期预测中出现的一些问题,提高了预测效率,但仍存在算法高度依赖数据准确性的问题,易陷入局部最优等缺陷,可能会导致实际使用时的预测结果不可靠。此外,针对铁路工期指标预测影响因素多、噪声干扰复杂的特点,需要有效地选择关键的影响因素,才能得到更为准确的预测结果。

为此,本文引入机器学习中的随机森林(RF)和XGBoost算法,提出一种结合两种算法的工期指标预测模型。使用RF对输入的影响因素进行重要程度排序,结合特征选择中的循序向后选择法对无关影响因素进行剔除,得到工期指标预测的最优影响因素集,然后以此为模型输入建立基于XGBoost的工期指标预测模型,从而实现对工期指标的准确预测。

1 相关算法

1.1 随机森林算法

随机森林(RF,random forest)作为一种综合的算法,最先由Breiman[8]在2001年提出,主要应用于预测和特征选择等问题。该算法结合了CART树和Bagging方法,利用Bootstrap对原始样本集进行有放回的抽样,使用抽取出的每一个样本集来构建对应的决策树模型,所有决策树的内部节点均采用随机选择特征的方式对属性进行分裂,最后组成一个完整的随机森林,在综合各决策树所产生结果的基础上,投票得到最终结果。

1.1.1 模型的泛化误差

在对样本集进行有放回抽样时,会产生36.8%的袋外数据(OBB),可作为计算模型泛化误差的依据。模型的泛化误差可以用下式表示:

在RF中,随着决策树的数目不断增多,模型的泛化误差将会趋近一个有限的上界。即:

1.1.2 特征的重要度

随机森林中某个特征的重要程度为:

式(3)中,N为随机森林中决策树的个数,和分别对应未变换以及随机对数据中某个特征顺序进行变换后的袋外数据的误差值。

计算所有特征的重要度之后,使用循序向后的特征选择方法对重要度最低的特征进行分步去除,最终找出最合适的特征数量[9]。

1.2 XGBoost算法

XGBoost是2014年2月由Chen[10]提出的基于决策树模型的提升算法,因其优良的学习效果以及较高的训练速度获得大量关注,广泛应用于解决工程领域的分类和回归预测等问题[11]。该算法是对梯度提升树方法的改进,适用于大规模的稀疏数据,具有运算速度快、准确率高等优点。基于多个决策树的组合模型可写作K个可加函数的和:

对于固定的树形结构,用二阶近似方法优化得到叶子权重的最优解。之后根据权重的值来计算树形结构的得分函数,以该得分为评价指标,最后使用贪婪算法进行树的生长和剪枝。

2 基于RF-XGBoost的工期指标预测模型构建

基于RF-XGBoost的工期指标预测模型的建模流程如图1所示,分为工期指标影响因素筛选和工期指标预测两个主要的过程。

图1 基于RF-XGBoost的工期指标预测建模流程

2.1 基于RF的工期指标影响因素筛选

2.1.1 确定初始数据集

对相关文献资料和工程实践经验进行学习总结,从人机料法环等多个维度进行考虑,以现场收集到的工期影响因素作为输入、铁路工期进度指标作为输出,建立工期指标预测的初始数据集。

2.1.2 工期影响因素筛选

直接使用原始的数据集进行训练,得到的工期指标预测模型精度未必很高,还会增加模型训练所需的时间。结合RF算法与循序向后选择法对初始影响因素进行剔除,筛选出最优影响因素集,可作为后续预测模型的输入变量。在利用RF分析影响因素的大小时,有两个重要的模型参数需要设置,分别是决策树的随机特征数量mtry和决策树个数Ntree。为使模型预测结果稳定,建议将mtry设置为特征数的1/3,Ntree的取值大于500。同时,采用k-折交叉验证的方法以提高模型的预测精度。

2.2 基于XGBoost的工期指标预测模型

2.2.1 数据预处理

2.2.2 XGBoost模型超参数选择

XGBoost模型中主要的超参数包括树的个数、树的最大深度、学习速率以及最小叶子节点的样本权重和等。在参数调整过程中,可采用网格搜索法和5折交叉验证的寻优策略,对以上超参数进行优化。

2.2.3 预测效果评价

选取均方误差(Rmse)和拟合优度(R2)作为XGBoost模型的预测性能评价指标。Rmse衡量的是预测值与真实值之间的偏差,R2用于评价模型的拟合效果,两个指标的计算公式如下:

式(9)~(10)中,yi和分别为实际值和预测值;为样本的均值; n表示样本数据的个数。

3 实例分析

3.1 数据来源

以新村隧道工程某工点为研究对象,从隧道施工台账中获取隧道施工进度的数据样本,其中工期指标为隧道正洞开挖进尺长度,共收集了731组施工进度数据作为样本集,部分数据如表1所示。

表1 隧道施工台账部分初始数据

3.2 基于RF算法的工期指标影响因素筛选

3.2.1 数据预处理

为使数据能够让算法正确识别且更易学习,需对数据进行特征转换从而获取更佳的数据表示方式。本研究中将初始数据集中的日期转换为季节,将施工时间转换为工作时长,同时去除了部分重复特征,得到变换后的数据集,如表2所示。采用独热编码对上述数据进行进一步处理。

表2 经特征变换后的数据集

3.2.2 影响因素重要度排序

载入Python语言里专门用于机器学习的sklearn库,调取库中与RF相关的函数命令建立分析模型,计算得到初始数据集中工期指标影响因素的重要度,并对结果进行排序,如图3所示。由图中信息可得,重要度排名较高的影响因素包括围岩等级、工作时长、季节等,从工程实践经验来看,围岩等级的影响最为明显,而季节和施工部位与工期指标的相关性也较大,因此RF算法得到的分析结果具有合理性。

图3 影响因素的重要性排序图

3.2.3 关键影响因素筛选

设定RF模型中参数mtry的取值为5,Ntree的取值为600,选择使用5折交叉验证的方式测试模型精度。根据图3给出的重要性排序结果,使用循序向后的特征选择方法,得到不同特征组合个数下模型预测精度的变化曲线,如图4所示。

图4 不同影响因素组合时模型精度变化趋势图

由图中分析可知,随着特征数量的减少,模型预测精度有了一定程度的提高,这意味着某些冗余的影响因素被剔除了;在到达某一个值时,继续减少特征个数,模型的精度也随之下降;随着特征数量的进一步减少,模型精度开始急剧下降,说明一些重要的影响因素被删除了。在本案例中,当影响因素集合中的特征个数为9时,可以训练得到预测精度最高的模型。筛选出的关键工期影响因素为围岩等级_V加、工作时长、围岩等级_Ⅳ加、季节_秋、实际方量、围岩等级_Ⅲ一般、围岩等级_Ⅳ一般、施工部位_上台阶、施工部位_全断面。

3.3 基于XGBoost的工期指标预测模型构建

3.3.1 数据预处理

将3.2节筛选出的工期影响因素结果作为XGBoost预测模型的输入特征参数,将隧道进度指标作为输出,收集多组隧道工期指标数据作为样本数据集,并对输入和输出特征数据进行标准化处理。将数据集进行随机划分,抽取全部样本的70%作为模型的训练集,剩余30%的样本则作为测试集,用来评价模型的泛化性能。

3.3.2 模型调参

加载Python语言sklearn库中的网格搜索函数GridSearchCV搜寻XGBoost模型的最优超参数集合,该函数命令自带交叉验证功能。最终的工期指标预测模型采用的超参数值如表3所示。

表3 工期指标预测模型中超参数的最优值

3.3.3 预测结果评价与比较

根据所确定的模型参数最优值训练XGBoost模型,对工期指标进行预测。分别在训练集和测试集上对其进行测试,预测结果如图5和图6所示。从图中结果可得,该模型通过对训练集数据的学习,得到了较好的拟合效果。模型在测试集数据上的预测值与实际值相贴近,说明该模型对工期指标的预测效果良好。

图5 工期指标预测模型训练集预测结果与实际结果对比

图6 工期指标预测模型测试集预测结果与实际结果对比

为了进一步评估提出的RF-XGBoost方法在工期指标预测上的性能,将其与支持向量机(SVM)、人工神经网络(BPNN)和多元线性回归等预测方法构建的模型相比较,不同预测模型得到的结果对比见表4。该结果包含了各个模型对案例数据预测结果的RMSE和R2的值。一般来说,R2越接近1、RMSE越接近0表明模型的预测性能越好。

表4 模型性能比较

由表中结果可知,RF-XGBoost模型的RMSE在所有参与比较的模型中最小,R2也更加接近1,说明该模型的拟合效果和预测精度优于其他模型,预测结果更加接近实际值,具有不错的泛化性能。综上所述,使用基于RF-XGBoost模型对工期指标进行预测,获得的预测结果具有较高的准确性和可靠性。

4 结语

本文建立了一种基于RF-XGBoost的工期指标预测模型,利用RF算法对工期指标的影响因素进行筛选,得到最优影响因素集作为XGBoost模型的输入,为铁路工期指标高精度预测提供了分析方法。以某隧道项目为背景,提取施工台账中的数据作为分析样本,建立了RF-XGBoost工期指标预测模型,通过将预测结果与实际数值相对比验证了模型在工期指标预测中的有效性。与其他常用预测模型相比较,该模型的预测效果更加准确和稳定,在铁路工期指标预测中,具有一定的指导意义和实用价值。

猜你喜欢
工期预测因素
无可预测
腹部胀气的饮食因素
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
律师解疑
软件项目管理中工期问题研究 
浅谈缩短核电站安全壳打压试验时间的可行性
《流星花园》的流行性因素