基于GA算法优化Stacking集成学习的金属材料大气腐蚀速率研究

2023-11-10 08:56樊志彬米春旭
山东电力技术 2023年10期
关键词:决策树速率预测

田 辉,樊志彬,王 倩,米春旭

(国网山东省电力公司电力科学研究院,山东 济南 250003)

0 引言

电网系统在人民日常生活以及社会经济活动中担负着举足轻重的作用,电网设备稳定运行是保证供电的基础。电网设备中的金属材料易受大气腐蚀的影响,众多研究发现腐蚀对设备自身稳定性和服役性能均有较大影响,易造成较大经济损失和安全隐患[1-2]。准确了解电网设备金属材料的腐蚀情况是保障电网供电安全稳定的关键,因此需要对电网设备金属材料进行腐蚀预测,保证能够提前了解设备的腐蚀情况,以便及时维护。

大气腐蚀是一个复杂的过程,许多金属材料的腐蚀规律仍不能被准确掌握,其往往受相对湿度、温度、污染物等多种环境因素的影响,目前还没有准确合理的腐蚀预测模型。因此,研究各种大气环境下腐蚀的影响因素和腐蚀过程的动力学规律,对预测腐蚀损失具有重要意义。为了得到准确的模型来估计不同环境条件下的腐蚀规律,一些学者已经做了许多工作。

环境因子对腐蚀速率影响定量关系的研究模型主要包括剂量响应方程模型和机器学习模型等。其中,剂量响应方程模型是基于现场暴露腐蚀试验结果与试验点环境参数回归分析的经验公式。大量研究表明,金属材料的大气腐蚀过程同时受到多种环境因子的影响,许多研究已经得出包括温度、湿度、润湿时间、SO2沉积量、Cl-沉积量以及污染物等是影响腐蚀的主要因素,并分析了各自对金属材料腐蚀速率的影响[3-5]。因此现有大多数研究也是基于上述因素建立剂量响应方程。最常用的剂量响应方程的基本形式遵循简单的线性或对数线性关系[6]。叶堤等[7]结合灰色关联分析和非线性回归方法,同时考虑了氮元素的影响,建立了基于大气腐蚀机理的碳钢、Zn、Cu 的腐蚀剂量响应方程。李牧铮等[8]通过建立各自的和综合的多元线性回归方程组,除了考虑氮元素外,还考虑了大气沉降物中水溶性降尘量,给出了金属材料的大气腐蚀预测剂量响应方程。

由于腐蚀数据的不确定性大,以及传统回归方法在处理非线性交互效应方面的局限性,依赖经验公式会得到不同的剂量响应方程,这样会产生各种各样的公式,不利于推广。同时,影响腐蚀速率的因素较多,依靠剂量响应方程不能综合考虑各种环境因子的相互影响。

近几年,基于机器学习的方法在腐蚀研究中得到了越来越广泛的应用。机器学习模型可通过在经验和数据中学习,自动搜索知识,而不依赖于预先确定的方程,能更好地理解和预测大气腐蚀。人工神经网络(artificial neural network,ANN)[9]、随机森林(random forest,RF)[10]、支持向量机(support vector regression,SVR)[11]等算法已经应用在各类数据挖掘中。在腐蚀预测方向上也有了一些研究,其中Cai等[12]研究了相对湿度、温度、二氧化硫和氯化物对动态环境中短期腐蚀行为的影响,提出了一种描述环境因子统计分布的多参数方法。Zhi 等[13]结合RF 系数和Spearman 系数的混合方法,降低了维度,给出了不同服役周期下影响腐蚀速率主要的环境因子,建立了SVR 腐蚀预测模型。Pei 等[14]改进了RF 模型,提高了对碳钢大气腐蚀的预测精度,且预测能力明显强于ANN 和SVR 模型。以往研究中使用的机器学习模型往往是1~2 种模型,容易造成过拟合或者欠拟合现象,并没有充分发挥各个模型的优势,因此基于机器学习的腐蚀预测还有很大的研究空间。

研究分析影响腐蚀的环境因子,并将遗传算法和Stacking 集成学习模型结合,建立腐蚀预测模型。相较于以往的腐蚀预测模型,该模型能够充分发挥各个机器学习模型的优势,在提升拟合度的同时,有效减少过拟合现象,提高模型的适用性。同时,通过较少的环境因子,更加便捷有效地对腐蚀速率进行预测,减少因采集过多环境因子带来的工作量。

1 Stacking集成学习模型原理

Stacking 集成学习算法一般分为两层,第一层为初级学习器,第二层为次级学习器。原始数据集经过初级学习器训练得到一个新的数据集,用来训练次级学习器,并最终得到预测结果[15]。该方法在训练过程中,通过不同算法模型的优化组合,发挥各自的优势,从而提高整个模型的预测准确率。其结构如图1 所示。

图1 Stacking算法示意Fig.1 Schematic of stacking algorithm

首先,将数据分为训练集Tr和测试集Te,为进一步降低过拟合,训练集Tr又被分成K份:{Tr1,Tr2,…,TrK}。在第一层初级学习器中,取其中K-1份作为训练集,另外一份作为验证集,每个模型分别进行K次训练,每次可以得到一个验证集预测结果V和一个预测集结果P,分别表示为{V1,V2,…,VK}、{P1,P2,…,PK}。经过m个模型训练则可以得到m组训练集预测结果,验证集预测结果为{V11,V12,…,V1K,V21,V22,…,V2K,…,Vm1,Vm2,…,VmK},预测集结果为{P11,P12,…,P1K,P21,P22,…,P2K,…,Pm1,Pm2,…,PmK}。同时,对K次训练得到的预测集结果求平均值得到m组测试集预测结果:{P1,P2,…,Pm}。由第一层训练集预测结果和测试集预测结果组成第二层次级学习器的输入,实现对第一层初级训练器结果优化,提高预测的准确性。

1.1 初级学习器

对于初级学习器,用到的算法包括随机森林算法、自适应增强算法(adaptive boosting,AdaBoost)、梯度提升决策树算法(gradient boosted decision trees,GBDT)和极端梯度提升算法(extreme gradient boosting,XGBoost)。

1)随机森林算法。

随机森林由Breiman 等提出,是基于树的机器学习算法,其基本单元是决策树。它是一个集成分类器,由许多独立的决策树组成,并输出大多数决策树预测的类。算法过程如图2 所示。

算法步骤如下:

a)将训练数据集有放回抽取N次,得到新的子训练集{D1,D2,…,DN},作为决策树根节点处的样本。

b)随机选取属性做节点分裂属性,并重复该步骤。

c)通过以上步骤,建立大量决策树,形成随机森林。

d)将每棵树输出的预测值求平均值得到最终预测结果。

2)AdaBoost 算法。

AdaBoost 算法是由Freund 和Schapire[16]在1995年提出,针对同一训练集进行不同学习器(分类器)的训练,并将这些弱学习器集合起来,组成一个更有效的强学习器。在解决回归问题时,具体算法过程如下。

a)初始化每个样本数据的权值分布。

假定练集样本为

训练集的第k个弱学习器的输出权重为

式中:ωki(i=1,2,…,N)为第i个样本在第k个弱学习器的输出权重。

则初始化样本集权重为

b)进行第k次迭代。

①使用具有权值分布Dk(k=1,2,…,K)的训练样本集进行学习,得到弱学习器gk。

②训练集上的最大误差为

式中:xi为第i个样本;yi为xi的目标值。

③计算每个样本的相对误差为

④计算在gk训练数据集上的回归误差率为

⑤计算弱学习器系数为

⑥更新训练样本集的权值分布为

c)结束K轮迭代,得到最终强学习器为

式中:gk*(x)为所有的中位数值乘以对应序号k*对应的弱学习器。

3)GBDT 算法与XGBoost 算法。

GBDT 算法由Friedman[17]提出,是一种迭代的决策树算法,由多棵决策树组成,所有树的结论累加起来作为最终答案。GBDT 算法可以看成是M棵树组成的加法模型。

式中:x为输入样本;υ、υm为模型参数;hm(x,υm)为分类回归树;δm为每棵树的权重。

其算法过程如下。

a)初始化学习器

式中:L(⋅)为损失函数。

b)建立M棵分类回归树。

①计算第m棵树(m=1,2,...,M)对应的响应值为

式中:F(x)为学习器函数;Fm-1(x)为第m-1 轮得到的学习器。

②用(xi,rm,i)拟合得到第m棵回归树Tm,叶子节点区域划为Rm,j(j=1,2,…,Jm),Jm为第m棵回归树叶子节点的个数。

③遍历所有节点,计算回归树Tm的每个叶子节点Rm,j的输出值,即为最佳拟合值cm,j。

④更新学习器为

c)重复步骤直到满足停止条件,累加得到最终的学习器表达式为

XGBoost 算法是建立在GBDT 算法上,进一步改进了算法,不再详细展开。

1.2 次级学习器

次级学习器由人工神经网络模型构成。人工神经网络的节点相当于一个神经元,这些神经元接收外界的输入信息进行计算和调整,并将它们输送到其他神经元。神经元的计算函数由神经元输入连接的权重定义,通过恰当地改变这些权重大小可以学习得到计算函数,对输入数据建立相关模型。BP(back propagation,BP)神经网络是常见的神经网络算法,是一种基于误差反向传播算法的三层前馈神经网络,主要由输入层、隐含层和输出层构成。BP神经网络具有实现任何复杂非线性映射的功能,使其适合求解内部机制相对复杂的问题,其网络结构如图3 所示。其中输入层、隐含层和输出层神经元个数分别为M、I和J,Xm表示输入层第m个神经元,Ki表示隐含层第i个神经元,Yj表示输出层第j个神经元。

图3 BP神经网络Fig.3 BP neural network

隐含层和输出层采用Tan-Sigmoid 函数作为传递函数

式中:n为迭代次数。

采用Levenberg-Marquardt 算法对网络权值进行修正

式中:J为包含误差性能函数对网络权值一阶导数的雅克比矩阵;μ为一个需要设置的常数;e(n)为网络总误差。

权重/阈值学习函数采用梯度下降动量法来进行权值的迭代

式中:η为学习率;β为动量因子。

2 预测模型构建

对于随机森林、AdaBoost 算法等几个初级学习器,需要设置决策树最大深度和基分类器个数,依靠人工经验选择的方式往往效果不佳,采用遗传算法对其优化后得到更好的拟合效果。

遗传算法是一种受进化和自然遗传学原则指导的随机搜索和优化技术。遗传算法由一种群体组成,其中每个个体代表搜索优化问题的一种可能的解决方案。通过适应度函数筛选优质个体;然后,在交叉算子的控制下产生新的个体,通过突变算子将随机噪声添加到后代中,以改变其“基因”。通过重复上述过程,最终提供一个较好的解决方案。

基于GA 优化的Stacking 集成学习模型框架如图4 所示,整个预测过程主要分数据预处理、遗传算法优化参数、初级学习器模型训练、次级学习器模型训练及模型预测。具体过程如下。

图4 预测模型流程Fig.4 Prediction model process flow

a)数据预处理。通过对数据集进行数据的清洗,删除掉不符合实际的数据,并对缺失部分的数据进行补齐。

b)将数据集分割成测试集和验证集,并对测试集分成K份,进行K折交叉验证。

使用遗传算法求得各个初级学习器的最优参数组合(最大深度和基学习器个数),以优化初级学习器的模型。

c)使用初级学习器训练得到训练集预测结果{V11,V12,…,V1K,V21,V22,…,V2K,…,Vm1,Vm2,…,VmK},以及测试集预测结果{P1,P2,…,Pm}。

d)将初级学习器训练得到的结果作为新的数据集,使用次级学习器进行训练得到最终结果。

3 模型评价指标

设计拟合优度R2和均方根误差RMSE两个评价指标,其具体表达式如式(19)所示。

式中:yi为待拟合数据为拟合数据为待拟合数据均值;Sreg为回归平方和;Sres为残差平方和;Stot为总平方和。

4 算例分析

取用山东省28 个暴露腐蚀试验站的镀锌钢腐蚀数据对提出的模型进行验证。结合Spearman 相关系数和随机森林特征重要性评估的方法,分析了多个环境因子与腐蚀速率的相关性,结果如表1 所示。

表1 环境因子与镀锌钢腐蚀速率的相关性Table 1 Correlation between environmental factors and corrosion rate of galvanized steel

通过表1 可以得出,润湿时间和Cl-沉积量对镀锌钢腐蚀速率的影响较大。结合以往研究和本文的分析将温度、湿度、润湿时间、SO2沉积量和Cl-沉积量这几个主要环境因子作为模型的输入来进行训练。

将28 条站点数据中的23 条数据作为训练集,5条作为测试集。利用Python 编写基于GA 优化的Stacking 集成学习模型。遗传算法模型的初始种群个数设置为20 个,交叉率为40%,变异率为66.6%,迭代20 次,求得随机森林、Adaboost、GBDT 和XGBoost 初级学习器的最大深度和基分类器个数分别为(16,174)、(20,109)、(11,11)和(7,156)。

人工神经网络的隐含层节点数设置为10,学习速率为0.015。迭代次数设为25000 次。经过次级学习器的训练,得到28 站镀锌钢腐蚀速率实际值和预测值如表2 所示,测试集在不同模型下的预测结果拟合优度R2和均方误差RMSE如表3 所示。

表2 镀锌钢腐蚀速率实际值和预测值Table 2 Actual and predicted values of corrosion rate of galvanized steel 单位:μm/a

表3 不同模型预测结果的评价指标Table 3 Evaluation indexes of prediction results of different models

结合表1、表2 和表3 可以得出,在模型中减少了PM2.5、PM10、NO2、O3等环境因子输入的情况下,可以实现以较少的环境因子作为模型输入开展腐蚀速率的预测。

该模型结合了多个预测模型的优点,可以充分发挥各个模型的作用。相较于RF、Adaboost、GBDT 和XGBoost 算法的单个模型,通过该模型第一层初级学习器和第二层次级学习器神经网络的训练,优化了预测效果,提升了拟合优度,降低了均方根误差。

5 结束语

为了更好地拟合大气环境与电网设备材料腐蚀的量化关系,提出一种基于GA 优化的Stacking 集成学习预测模型。利用该模型对山东省28 个暴露腐蚀试验站的环境与镀锌钢腐蚀数据进行训练,相较于常规的机器学习模型,可以在使用较少的环境因子的情况下实现对电网设备金属材料腐蚀速率的预测;在降低过拟合的同时拟合优度得到进一步提升,均方根误差得到进一步减小,能更有效地实现镀锌钢腐蚀速率的预测。使用文中提出的模型可以进一步地指导电网设备的部署和防护,降低因腐蚀老化造成的经济影响,具有一定的实用性和推广价值。文中使用的数据量有限,将来会继续收集实验数据以优化模型,同时将暴露周期因素考虑在内,构建长期腐蚀速率模型。

猜你喜欢
决策树速率预测
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
“化学反应的速率与限度”知识与能力提升
一种针对不均衡数据集的SVM决策树算法
决策树和随机森林方法在管理决策中的应用
速度和速率有什么不同
不必预测未来,只需把握现在
基于决策树的出租车乘客出行目的识别
基于肺癌CT的决策树模型在肺癌诊断中的应用