卢文飞, 袁竞峰*, 张嘉澍, 管维亚, 张建峰
(1.东南大学土木工程学院, 南京 211189; 2.国网江苏省电力有限公司经济技术研究院, 南京 210008)
输电线路是电网工程的重要组成部分,作为国家电力的输送通道,是满足国民生产和生活对电力需求的重要保障。在中国新一轮电改中提出按“准许成本加合理收益”的原则进行核价,就是为了引导企业节约成本、提高投资效益,对于不合理、无效的投资不纳入输配电价核算[1]。因此,提高输电线路工程投资预测精度对有效规划工程投资、进行工程方案经济比选、提高工程效率、实现资源合理配置具有重要意义。而传统的根据定额概预算来确定工程投资的方法无法有效利用历史数据,且由于技术方案深度不足,定额的不确定性很高,存在计算复杂且预测精度低的弊端,已经不能满足市场经济发展的需求[2]。因此,研究智能化的输电线路工程投资预测方法,是简化输电线路工程投资预测工作流程,提升预测精度的迫切需要。
在电网工程的投资预测中,以往学者主要通过研究造价控制指标的方式来估算输电线路工程投资。如王欢林等[3]提出了包括基础工程指标、杆塔工程指标、架线工程指标等估算指标体系的架空线路工程投资估算方法;邓怡卿等[4]在识别线路工程的典型技术方案的基础上,确定了新建工程典型技术方案的造价控制指标。而宋倩芸等[5]在全寿命周期原理的基础上,建立了增量配电网工程投资的线性模型,但是由于输电线路工程投资的估算是一个非线性、多变量的复杂系统求解问题,通过指标估算往往难以对输电线路工程进行准确、客观的投资预测。而随着智能算法在国内外的深入研究,已经有学者将反向传播(back propagation,BP)神经网络、支持向量机(support vector machine,SVM)、遗传算法(genetic algorithm,GA)等应用于电力工程投资的预测中。基于上述算法,众多学者开展了大量的研究。孙安黎等[6]和凌云鹏等[7]以线路工程影响因素为BP神经网络的输入,构建BP神经网络预测模型。Niu等[8]将输变电工程分为改造项目和新建项目两大类,基于GA算法和粒子群优化(particle swarm optimization,PSO)构建了输变电工程的成本预测模型,验证了GA算法应用于输变电工程的成本预测比PSO算法更准确。Yi等[9]从成本构成角度提取了输电线路工程自然、技术和经济指标,构建了基于最小二乘支持向量机(least squares support vector machine,LSSVM)智能成本预测模型,可为线路工程项目投资决策提供较为准确的参考。虽然现有模型能实现对输电线路工程的投资预测,但是这些模型在预测中也存在着短板:神经网络样本需求量大,训练时间长,容易出现局部最优化的问题,尤其在小样本时过学习、泛化能力差等问题较为突出,此外其解释性较差,算法参数设置复杂也使得其应用存在难点[10];支持向量机模型在解决非线性、高维数、小样本、局部最优化方面有很大的改善,但是其在模型参数设置上存在着盲目性,在处理输电工程时易导致误差较大的问题[8];而在遗传算法中其变异率、交叉率等复杂参数的设置也使得其应用难以推广[11]。
而极端梯度提升(extreme gradient boosting,XGBoost)算法是机器学习算法中梯度提升(gradient boosting machines,GBM)的实现路径之一,被称为用于有监督学习的性能最好的算法之一,它可以用于回归和分类问题[12]。XGBoost算法能够采用多线程并行计算,计算速度快,鲁棒性高,泛化能力强,且该模型基于树结构无需对采集到的多种数据进行归一化,特别适宜于处理高维数、非线性的电力数据[13-14]。目前,XGBoost算法已经被应用于电压稳定性评估[15]、负荷预测[16]、故障诊断[17]、变电站工程投资预测[18]等领域,但未在输电线路工程投资预测中应用。而输电线路工程具有不可预测因素多、非线性、小样本的特点,非常适合用XGBoost算法进行建模。因此,现采用XGBoost算法构建输电线路工程投资预测模型,以输电线路中最常见的架空输电线路工程为对象,首先,基于相关性分析构建架空线路工程投资预测指标体系;其次,基于XGBoost在实际工程数据训练集上训练出投资预测模型,并应用新的测试集评价模型效果。
基于以往关于XGBoost算法的相关研究[12,14,17,19-20],主要介绍XGBoost算法原理。提升树算法是基于决策树构建的,也就是所谓的分类回归树(classification and regression tree,CART)。对于一项回归任务,CART根据一个变量的边界在每一级将数据集划分为两个子集,直到达到用户设置的树的最大深度[21],表达式为
(1)
式(1)中:R1(j,s)和R2(j,s)分别为两个子集,s为变量的划分边界;xj为第j个样本的输入。在每个叶子节点,计算叶子节点(node)的均方误差MSEnode,公式为
(2)
(3)
(4)
该算法将寻找变量边界的最佳解,以使代价函数最小。一旦它成功地将训练集分割成两部分,它就会使用相同的逻辑分割子集,然后再依次递归地分割子集。一旦达到最大深度,或者无法找到减少误差的分割,它就停止递归。然而,CART树在处理没有正则化的回归任务时,容易出现过拟合。解决这个问题的一个策略是通过打包一组估计量来实现集成,在这种情况下,这意味着集成多个CART模型。
图1 XGBoost算法决策树示意图Fig.1 Decision tree of XGBoost algorithm
(5)
式(5)中:ft(xi)=wq(x),ft∈F,而ft(xi)为第t棵树输入为xi(即输电线路工程投资的第i个输入特征)时的结果,F为CART树所在空间,下角标q(x)为样本x对应的叶子节点索引号,每个ft都对应独立的决策树结构q与叶子节点权重w;T为CART树的数量。
XGBoost拟合残差的过程就是累加树的过程,其表达式为
(6)
XGBoost的目标函数由误差项和正则项组成,记为
(7)
(8)
当XGBoost模型进行如式(6)中的第t次迭代后,其目标函数就可表示为
(9)
式(9)中:n为迭代总次数。将式(9)采用二阶泰勒展开后可得
(10)
式(10)中:Ij={i|q(xi)=j}为所有映射到叶子节点j的样本索引集合;wj为叶子节点j的权重;gi为一阶导数;hi为二阶导数。
(11)
(12)
将式(12)代入式(10)即得到目标函数值的最优解为
(13)
(14)
式(14)中:IL与IR分别为分裂后左右节点的实例集,并且有I=IL∪IR;增益表示的是节点分裂后损失函数的减少值[20]。在每次分裂时,都会选增益最大的节点。当树达到了深度阈值或全部节点分裂时满足Lsplit<0,则树不再分裂,此时有最优的集成树模型。
图2展示了基于XGBoost算法的输电线路工程投资预测总体流程,主要包括下列4个步骤。
步骤1输电线路工程投资预测指标体系确定。预测指标体系的确定是建立基于XGBoost算法的输电线路工程投资预测模型的基础。构建时要考虑指标之间存在的多重共线性等因素会对模型的构建产生影响,导致过拟合的情况,因此需要对选取的指标体系进行相关性分析,对于相关性高的指标进行删除,去相关性,防止出现过拟合现象。
步骤2历史投资数据的获取与清洗。确定指标体系后,依据指标体系获取投资预测数据。通常获取的历史投资数据中包含很多缺失值与噪声数据。获取历史数据之后,可采用Python进行缺失值和重复值的检索,删除重复值,对缺失值进行插补。
步骤3基于XGBoost算法进行输电线路工程投资预测模型构建。首先,将清洗后的全部历史数据划分为训练集(70%)与测试集(30%);其次,把训练集采用交叉验证进行模型训练,优化参数,直到满足可靠性要求。
步骤4模型结果有效性的评价。在训练集上得到投资预测模型后,将测试集数据输入到训练好的投资预测模型中,输出预测值,并通过计算拟合优度(R2)、均方根误差(root mean squared error,RMSE)、平均绝对百分比误差(mean absolute percentage error,MAPE)、平均绝对误差(mean absolute error,MAE)等指标,对模型效果进行评价。
图2 基于XGBoost算法的输电线路工程投资预测流程Fig.2 Investment prediction process of transmission line project based on XGBoost algorithm
在数据量不足的研究中,样本排序的随机性及划分方式对预测结果影响很大,单一划分的测试集与验证集存在不能充分利用样本信息以至于预测模型有效性不足的问题。K折交叉验证基于无重复抽样技术降低了预测结果对数据划分方法的敏感性,能够有效的提高结果的可靠性[22]。将全部的数据分为训练集和测试集,在训练集中使用交叉验证来确定网络结构,选取模型的最优参数,在测试集上对模型进行验证,用于评估模型性能。
K折交叉验证被广泛采用作为模型选择标准。在交叉验证中,将数据集分成K个相等大小的子集,K-1折用于模型构建,剩余1折用于模型验证。这意味着模型构建比模型验证过程更受重视。在迭代K次的过程中,K份子集的每一份都被依次分配为验证数据。每次试验都会得到相应的评价指标。K次结果的评价指标的均值作为对模型精度的估计,在实践中,K的典型选择范围为5~10[23],研究的K值选择5。
为验证模型预测效果,要选取评价指标对模型性能进行评价。由于单一指标无法准确地判断模型优劣,因此结合以往学者模型评价经验[14,20],综合选取拟合优度(R2)、均方根误差(RMSE)、平均绝对误差(MAE)、平均绝对百分比误差(MAPE)4个性能评价指标对所开发模型的性能进行评价,其计算公式分别为
(15)
(16)
(17)
(18)
3.1.1 架空线路工程特点及费用组成
输电线路通常分为两类:架空输电线路与地下输电线路工程。架空输电线路通过将导线架设在杆塔上进行电能传输,具有施工简便、结构清晰、检修维修方便等特点,其比地下电缆输电的投资成本更低、建设周期更短,因此,广泛地应用于电能输送中。
输电线路工程造价由两部分组成:本体工程造价和其他造价,而其他造价仅约占总造价的20%。架空输电线路的本体工程按照费用构成可以分为基础工程、架线工程、杆塔工程、附件工程、接地工程和辅助工程,而其中又以杆塔工程、基础工程、架线工程在本体费用构成中占比最大[9]。在考虑架空线路工程投资预测指标时,可以根据费用的组成方式,提取关键要素,进行指标筛选。
3.1.2 架空线路工程投资预测指标体系构建
对于机器学习来说,决定机器学习上限的是特征与数据,算法与模型只是接近这个上限而已,因此预测指标体系是影响预测结果的可靠性的关键因素。《国家电网公司输变工程通用设计》把地形条件、海拔高度、回路数、杆塔形式、导线规格、气象条件等作为输电线路通用设计模块的主要技术条件,根据《国家电网公司输变工程通用设计》中指出的主要技术条件,以及以往研究者对于架空线路工程投资指标选取的经验[6-7,9,24],选取了如表1所示的14个指标。
表1 架空线路工程投资预测指标体系Table 1 Indicators for overhead line projects investment prediction
根据上述筛选出的指标,首先对其进行Person相关系数分析,避免存在多重共线性所造成的信息冗余[13],引起投资预测模型出线过拟合的现象。Person系数是衡量变量之间关系强度的一个常见统计量,计算公式为
(19)
图3中,右侧的刻度颜色展示了不同相关系数对应的颜色深浅。如果两个指标之间的相关性越高则颜色越浅,高相关性的指标对于机器学习分类器而言属于冗余变量,可能导致过拟合或者导致预测精度下降。可以看出,选取的架线工程投资预测指标相关性超过0.9的有两组(图中红色方框标记),分别是基础混凝土总量和基础钢材量(Person系数为0.92),导线量和土石方量(Person系数为0.9)。为了降低指标之间的相关性,对于具有高度线性相关的两组指标随机选取其中一个进行删除。删除土石方量和基础钢材量之后,总共剩余12个指标构成投资预测指标体系,最终形成的投资预测指标及其编号如表2所示。
图3 指标相关性热力图Fig.3 The heat map of index correlation
在预测对象方面,如果只预测架空线路工程总投资,则无法反映架空线路工程总体的投资状况。因此,在预测结果输出中同时选择了本体投资费用(O1),静态投资费用(O2)和动态投资费用(O3)作为预测对象。
模型的数据源自国网某省公司自2016—2020年的实际架空线路工程数据,前期删除了空缺值较多的和有重复的样本,对于剩余样本中仍然存在的部分指标空缺值,采用回归插补法填充该类指标。完成数据清洗后,将测试集和训练集的划分比例确定为7∶3,模型构建在Python 3.7的环境下进行。
根据架空线路工程投资预测流程,利用训练集中的数据,基于XGBoost算法采用交叉验证的方式进行模型训练,再在测试集上用训练好的模型进行效果的评价。通过将在训练集上训练好的模型对测试集数据进行预测,输出基于XGBoost算法的线路工程投资预测模型真实值与预测值的对比,如图4所示,其中蓝色柱状图为样本真实值,橙色折线图为样本的模型预测值,横轴为样本在测试集中的样本序号,纵轴为投资额。
表2 投资预测指标及其编号Table 2 Investment prediction index and its number
从本体工程投资额(O1)、静态投资额(O2)、动态投资额(O3)的预测值与真实值的对比图可以看出,工程投资的预测值曲线与真实值曲线基本一致,这说明基于XGBoost算法的投资预测模型预测效果良好,可以为架空线路投资者提供较为准确的参考。
图4 预测结果Fig.4 Prediction results
为了对模型的效果进行对比评价,选取了神经网络模型和SVM模型对线路工程投资数据进行了训练和测试,采用2.2节中模型效果评价所述指标,得出预测效果如表3所示。
从表3的预测效果评价指标来看,基于XGBoost构建的投资预测模型的拟合优度均达到0.9以上,接近于1,较神经网络模型和SVM都要高,说明基于XGBoost算法的架空线路投资预测模型的拟合性较好。从误差结果来看,平均绝对误差(MAE)和均方根误差(RMSE)都是显示观测值与真实值之间的偏差,当预测值与真实值越吻合时其值越小,从表3可以直观地看出XGBoost模型的两个误差值较于神经网络模型和SVM模型都要小;平均绝对百分比误差(MAPE)为0%时为完美模型,大于100%则为劣质模型,即越小越好,基于XGBoost的预测模型偏差都控制在30%左右,相较于神经网络模型和SVM模型有较大优势。同时,虽然SVM的拟合优度相较于神经网络模型有一定优势,但是综合RMSE、MAE和MAPE的结果来看,模型的整体效果仍欠佳,而XGBoost模型的各项性能都明显优于SVM和神经网络模型,说明XGBoost模型的整体效果更佳,更适用于到架空输电线路工程投资预测。
表3 不同模型投资预测效果对比Table 3 Comparison for investment prediction effect on different models
XGBoost算法中,在模型构建完成后,可以通过计算各指标在所有树中作为划分特征的频率来推导出各指标的重要程度,为模型的建立提供依据,所得对于不同预测对象而言指标重要性前10的结果如图5所示。对于本体投资来说,I12(基础混凝土总量)、I10(路径长度(折单))、I4(海拔高度)三者的影响程度最高;对于静态投资和动态投资来说,I12(基础混凝土总量)、I10(路径长度(折单))、I6(耐张转角塔基数)三者的影响程度最高。基础混凝土总量反映了基础工程量的多少,路径长度(折单)则表征着架线工程的投资,而基础工程和架线工程又是架空线路工程最为关键的组成部分,这也反映了基础工程和架线工程造价在架空线路工程总造价中所占比例较高,与实际情况相符。海拔高度通过影响气象条件、地形的变化等对架线工程、基础工程、杆塔工程、接地工程、辅助工程等造成较大的影响,从而使得其在本体投资中影响显著。耐张转角塔对钢材等的耗费较高,且通常会影响输电线路基础,从而影响到整个工程的投资。由此可见,在架空线路工程投资中,基础混凝土的工程量、路径长度(折单)、海拔高度、耐张转角塔基数等是投资者应该重点关注的工程指标。
图5 指标重要性Fig.5 The importance of indices
随着电力体制改革的推进,电网企业经营将受到政府有关部门严格的投资监管。而电网企业目前尚未实现科学、智能化的精准投资机制,投资预测尚无完善的理论与方法支撑,因此,提出了基于XGBoost算法的输电线路工程投资预测方法,通过采用相关性分析去除关联性高的指标,得到输电线路投资预测指标体系,然后基于投资预测指标体系和XGBoost算法在实际工程数据训练集上构建投资预测模型,并在测试集数据上对模型效果进行了检验。得出了以下结论。
(1)XGBoost模型对本体工程投资、静态投资和动态投资的预测都能达到90%以上的拟合优度,相较于神经网络模型和SVM模型,XGBoost模型预测结果的准确率更高,偏差更小,能为决策者提供较为可靠的投资依据。
(2)该模型可对指标重要性进行排序,能对预测模型进行合理的解释,为投资者指明了关键控制指标,提升了模型的可信度与可用性。
(3)建立的输电线路工程智能化投资预测的方法体系,进一步丰富了电网投资规划的理论体系,有助于提升电网投资精益化管理水平。
创新性地将XGBoost应用于输电线路工程投资预测中,能实现前期通过输入少量输电线路工程特征即可输出较为准确的投资预测值,同时能输出输电线路工程投资预测指标的重要性程度,有望在实际工程预测中得到广泛应用。