应用提升回归树研究碳钢的土壤腐蚀规律
鲁庆,穆志纯
(北京科技大学 自动化学院,北京,100083)
摘要:以碳钢土壤腐蚀数据为对象,建立腐蚀率模型,对该材料的自然环境腐蚀规律进行研究。提出一种基于提升回归树(boosted regression trees)算法的新方法,针对实验数据小样本情况下的参数选取问题,采用ε不敏感损失函数、动态收缩系数对原算法进行改进。与神经网络、支撑向量回归(SVR)等多个典型算法进行对比研究。仿真数据和实验数据验证表明:改进的提升回归树算法对于数据的高维度、缺失值、高噪声等问题具有较好的鲁棒性,适合小样本数据的处理。利用该算法建立的模型能够准确的描述和预测碳钢在土壤中的腐蚀率,还可用于对腐蚀影响因素及因素间交互作用进行探索性分析。
关键词:提升回归树;腐蚀率; 碳钢;自然环境腐蚀;土壤
中图分类号:TP391.9 文献标志码:A 文章编号:1672-7207(2014)06-1879-08
Corrosion pattern of steel carbon in soil by using algorithm of boosted regression trees
LU Qing, MU Zhichun
(School of Automation and Electrical Engineering, University of Science and Technology Beijing, Beijing 100083, China)
Abstract: To study the corrosion pattern of material in natural environment, a corrosion rate model was established with carbon steel corrosion data in soil as the study object. A new algorithm was proposed in modeling which is based on boosted regression trees. For parameter selection in the condition of small sample data, the new algorithm improved the original algorithm by using ε insensitive loss function and dynamic shrinkage coefficient. The new algorithm was compared with typical algorithms such as neural network and support vector regression (SVR). The simulation and test results show that the improved BRT algorithm has great robustness for solution of data problems including high dimension, missing value and high noise, and it is suitable for processing small sample data. The model established with this algorithm can precisely describe and predict the corrosion rate of carbon steel in soil, and also be used for exploratory analysis of corrosion affecting factors and the interaction between these factors.
Key words: boosted regression trees; corrosion rate; carbon steel; corrosion of natural environment; soil
埋在土壤中的材料因电化学效应、微生物侵蚀等而发生的腐蚀现象称作材料的土壤腐蚀。通过研究材料的土壤腐蚀规律,可以为合理选择工程材料、评估设施状态和采取有效的防护措施等提供指导原则。近年来,国内外研究学者利用多元回归[1]、时间序列分析[2]、神经网络[3-4]、灰色系统[5]等方法建立各种腐蚀规律模型。但由于自然环境腐蚀的实验数据往往存在高维度、小样本、高噪声、样本间相关性等问题,这些方法虽然各具优势,也存在一些瑕疵,例如多元线性回归、时间序列等方法需要复杂的数据预处理过程且模型精确度较低;神经网络等方法可以较好地拟合实验数据,但其所建立的模型在解释腐蚀规律影响因素方面却存在局限性等等。提升回归树是集成算法的一种,由Friedman[6]最早提出,其原理是将大量简单回归分类树(CART)在提升过程中进行集成,以提高树模型的预测能力。该算法在搜索排名、生物研究等多个领域[7-9]得到广泛应用,在材料腐蚀研究领域应用还很少。本文作者利用提升回归树对以碳钢为例的材料土壤腐蚀规律进行研究,并提出使用ε不敏感损失函数、动态收缩系数对原算法进行改进,仿真数据和实验数据验证表明,改进后的算法更适合小样本数据的处理。
1 提升回归树
提升是近年来最有效的机器学习思想之一[10],其代表AdaBoost及衍生算法在分类问题上得到成功应用,提升回归树算法将其扩展以解决回归问题。
1.1 提升回归树算法
不失一般性,设有一个数据总体,输入变量X={x1,x2,x3,…,xp},共有p个因子,X包含N组观测数据。输出变量为Y。总体的样本{Yi,Xi }1N 为已知的实验观测数据。
提升算法本质上是一种利用M个基函数的加法展开式对目标函数进行逼近的方法[10],可以表示为
(1)
其中:βm为展开式系数;b(X,γm)为基函数。
建立模型的过程就是求取一个函数F*(X),令
![](/web/fileinfo/upload/magazine/12412/306839/image004.gif)
(2)
其中:L(Y,F(X))为损失函数。
提升回归树算法使用分类回归树(CART)作为基函数。为便于描述,一棵包含J个端节点的树可以表示为
(3)
其中:
为关于树的参数;Rj为树建立过程在输入变量X空间内划分的区域,γj为每个端节点的赋值。
提升回归树模型表示为M棵树累加的形式:
(4)
要使FM(X)逼近F*(X),对于每一棵加入模型的基树,要求
(5)
Friedman等[6, 10] 采用最速下降法对式(5)进行近似求解。按照最速下降法在函数空间的定义,对于任意可微损失函数
,可利用数值优化求解
,最速下降法的解为
,其中ρm为步长系数,gm为L(f)在f=fm-1处的梯度。L(f)在-gm方向上下降最快。当前解更新为
。其中梯度gm的分量为
(6)
将式(5)与最速下降法求解过程对照,第m棵树
应使
下降最
快,相当于损失函数的当前梯度值。Hastie等[10]据此提出
的近似解:
(7)
即利用当前的损失函数梯度值和输入变量X为新的样本,来训练下一棵基树,进而更新提升树模型:
(8)
其中:η为收缩系数,用于正则化处理[10]。
1.2 模型的解释性
在很多应用中,模型的可解释性十分重要,例如本文所研究的碳钢土壤腐蚀模型,除了要求准确地预测腐蚀速率,还希望通过模型了解哪些变量是造成碳钢在土壤中腐蚀的主要因素。
单棵分类回归树模型具有较好的可解释性。Breiman等[11]提出
作为每个输入变量j与响应变量的相关性度量。
(9)
其中:T为具有L个终端节点的树;
为在非终端节点t上的被选中的属性测试条件;
为对应的平方误差风险改进。对于如式(4)所示的提升回归树模型,通过对式(9)代表的每一棵树求和然后平均,即可得到输入变量j与响应变量的相关性度量[6]。
(10)
除利用
解释变量的重要性外,还可以通过计算提升回归树的偏依赖函数来了解响应变量与输入变量之间的关系[6]。对于输入变量集X={x1,x2,x3,…,xp},令Xs={x1,x2,x3,…,xl},l<p;Xc为Xs的补集,Xc
Xs = X。则模型F(X )=F(Xs ,Xc),可以计算F(X )关于输入变量子集Xs的偏函数:
(11)
其中:Xc的值取自训练样本,如X1c为样本中Xc子集的第1条数据的取值,X2c为对应第2条数据的取值。尽管Xc的取值会影响F(Xs),但在一般情况下,式(11)可以提供F(X )关于子集Xs的偏依赖性信息。特别对于一维或二维子集,还可以绘制对应的偏依赖图来直观了解数据特性。
2 算法改进
2.1 损失函数选择
Friedman[6]采用平方误差、绝对值误差等作为损失函数训练提升回归树,后者对长尾误差分布、离群点有很强的健壮性,在大多数实际数据集中表现良好。
具体到本文的碳钢土壤腐蚀数据,如前所述,由于自然环境的实验数据获取困难,只有70个样本,对于这样的小样本数据,除了考虑健壮性,还要考虑模型的过拟合问题。为此,本文尝试采用ε不敏感损失函数改进原算法。
ε不敏感损失函数[12]的定义为
(12)
当模型拟合值和实际值相差较小时,损失函数为0;当相差较大时,ε不敏感损失函数变为绝对值误差损失函数。通过调整ε,可以缓解模型的过拟合问题。对应的梯度公式为
(13)
2.2 动态收缩系数
由于提升回归树的每次提升过程均会减小训练损失L(Y, F(X)),为了保持模型的泛化能力,原算法一方面使用独立检验集或交叉验证等方式控制提升次数M;另一方面,如式(8)所示,在每棵树添加到当前模型时,均乘以收缩系数η(0<η<1),用于限制单棵基树的贡献度。经验表明,较小的η有助于改善模型性能。
Friedman指出通过增加随机性,可提高模型的性能,原算法的实现方式是对输入样本X进行随机抽样[13]。作者在实验中发现,对于小样本数据,抽样后结果并不稳定,有时会引起提升次数M大幅度增加,模型的预测准确度也较低。考虑其原因是由于小样本背景下,部分抽样样本训练的基树性能较差和回归树算法本身的不稳定[14]引发了这一问题,也可能存在更深层次的原因,需要进一步探讨。
基于上述考虑,作者提出采用动态的收缩系数ηm对原算法进行改进。
如前所述,基树的解为
![](/web/fileinfo/upload/magazine/12412/306839/image032.gif)
定义动态的收缩系数ηm为
(14)
![](/web/fileinfo/upload/magazine/12412/306839/image059.gif)
其中:η为人工设置的收缩系数, 0<η<1。根据ηm的定义,τm为第m棵基树的平方误差与前m-1棵基树平方误差均值的比,ηm为指数函数。τm越小,这棵树在模型中将具有较高的权重,但不会超过上限收缩系数η。当τm较大时,ηm变小以惩罚劣化的基树,当τm等于0时,ηm=η。当a取不同的值时,将影响ηm关于τm的变化速度。在本文的研究中,令a等于e-1,图1所示为动态收缩系数。
2.3 改进后的算法检验
综上所述,改进后的提升回归树算法如下:
![](/web/fileinfo/upload/magazine/12412/306839/image061.jpg)
图1 动态收缩系数
Fig. 1 Dynamic shrinkage coefficient
![](/web/fileinfo/upload/magazine/12412/306839/image062.jpg)
为了验证改进算法的有效性,使用UCI数据集中Friedman#1仿真数据对算法进行检验。Friedman#1数据的原函数为
,各变量均为N(0,SD)分布。令SD=1,生成样本数量为50,100和500的3组数据,分别随机抽取90%数据作为训练集,另外10%数据作为验证集。使用原算法和改进算法分别对训练集建立模型,并使用验证集检验模型。在模型建立过程中,利用10折交叉验证以避免过拟合现象,结果如表1所示。
从表1可以看出:改进后的算法对于小样本数据的处理能力较原算法有所增强,特别对比以平方误差作为损失函数的模型,预测能力有了显著提高。无论对于提升回归树的原算法还是改进算法,建立在较大样本数基础上的模型性能更好。
表1 改进算法效果检验
Table 1 Results verification of improved algorithm
![](/web/fileinfo/upload/magazine/12412/306839/image067.jpg)
3 结果与讨论
3.1 研究样本和资料库
以国家材料腐蚀站网中碳钢在土壤中的腐蚀数据进行分析和建模,数据示例如表2所示,包含了实验站点、埋样时间、土壤pH、有机质含量、全氮含量等理化参数及实验材料的腐蚀率,其中type变量为名义型数据,指示了埋件的种类,其余为连续型数据。本研究的目标是训练模型来估计碳钢的腐蚀率,并分析腐蚀率的影响因素。剔除目标数据缺失的记录,可用于建立模型的共有70条数据。部分作为输入变量的数据包含缺失值。
3.2 建立模型
3.2.1 参数选择
如2.3节算法所示,建立提升回归树模型需要确定基树端节点数L、收缩系数上限η和样本抽样率fra3个参数。以下将简述参数的选择过程。
(1) 基树端节点数L。对于
,为了考察各输入变量间的交互作用[10],可将目标函数F*(X)按照方差分析的形式展开:
(15)
其中:
只对具有1个输入变量的函数求和,不存在交互效应;
对具有2个输入变量的函数求和,反映1阶交互效应;以此类推。结合回归分类树的结构特点,当基树端节点数L等于2时,模型将不反映交互效应;随着L增加,模型中逐渐增加不超过L-1阶交互效应。如果数据间不存在高阶的交互效应,L的增加会引起偏差,反之亦然。通常L=4~8较为适合提升回归算法[15],通过实验,确定L=5。
(2) 收缩系数上限η和提升迭代次数M。为确定收缩系数上限η,以50为步长,增加提升回归树模型中树的数量,对不同η分别建立模型。随机抽取的10%数据对模型进行验证,预测偏差均值如图2所示。从图2可以看出:当η为1时,随着树的增加,模型很快出现了过拟合情况,降低收缩系数上限η值则会明显提升模型的性能,但这将造成提升迭代次数M的增加。通过实验,并综合考虑计算机的计算性能,确定η=0.005。为避免模型过拟合,采取10折交叉验证的方法在建立模型过程中确定最优的提升迭代次数M。
表2 碳钢的有关参数
Table 2 Relative parameters of carbon steel
![](/web/fileinfo/upload/magazine/12412/306839/image077.jpg)
![](/web/fileinfo/upload/magazine/12412/306839/image079.jpg)
图2 不同η的模型预测偏差
Fig. 2 Predictive deviance of models with different η
(3) 样本抽样系数fra。在2.2节中提到,为提高模型性能,每棵基树的训练不是使用全部的输入样本,而是对输入样本进行随机抽样,通常抽样系数选择0.5<fra<1。对于小样本数据,此系数的选择对模型性能影响较大,令fra={0.55,0.65,0.75,0.85,0.95},对于每个取值分别进行5次建模,对其10折交叉验证偏差进行平均,结果如表3所示。经过实验,最终确定fra=0.65。
表3 不同抽样系数的交叉验证偏差均值
Table 3 Cross-validation deviation mean of different sampling coefficients
![](/web/fileinfo/upload/magazine/12412/306839/image080.jpg)
3.2.2 模型分析
综上所述,确定了建立模型所需的参数{η,fra,L}={0.005,0.65,5}。由于观测数据很少,为提高模型的性能,使用全部数据对模型进行训练,使用10折交叉验证保证模型的泛化能力。模型训练结果的10折交叉验证偏差最小值为0.580,提升回归树模型累加的基树数量为15 950棵,训练时间为2.75 min。
使用1.2节中的算法对模型进行分析,各因素的重要性如表4所示,可以得出埋件的埋存时间、土壤有机物含量和土壤全氮含量是碳钢在土壤环境中的腐蚀主要影响因素,另外SO42-,H2O,K+和土壤电阻R等对碳钢土壤腐蚀也有着较大的影响。
表4 腐蚀影响因素的重要性
Table 4 Importance of corrosion factors
![](/web/fileinfo/upload/magazine/12412/306839/image081.jpg)
为考察各影响因素与腐蚀率的关系,可以计算一维偏依赖函数,以重要性系数排前六的因素为例,计算偏依赖函数关系曲线如图3所示。
从图3可以看出:各因子与腐蚀率的依赖关系,如随着试件埋存时间的增加,腐蚀率逐渐下降;在有机质含量和氮含量较高的地区,腐蚀率较低;而在K含量较高的土壤中,腐蚀率会较高。将图3与文献[16] 关于土壤腐蚀因素分析部分的内容对比,发现了一些对应内容,如文献[16]中指出“含水率在10%甚至5%以下,腐蚀速率低;含水率在10%~25%时,腐蚀速率最高;当达35%左右饱和含水率时,腐蚀速率降至最低”,从图3(e)中可以看到相似的变化趋势:在15%~25%时,确实存在1个尖峰。文献[16]还提到“硫酸根离子和腐蚀速率之间没有明确的相关关系”,也可以在图3(d)中得出相似的结论。
![](/web/fileinfo/upload/magazine/12412/306839/image083.jpg)
图3 腐蚀因素与腐蚀率的一维偏依赖函数的关系
Fig. 3 One-dimensional partial dependence function of corrosion factors about corrosion rate
通过计算高维偏相关函数,可以进一步探索各输入变量对于腐蚀率的交互作用,在文献[16]中提到“鹰潭、广州、深圳等试验站点,属于酸性土壤,电阻率常常高至几百至几千欧姆,但腐蚀速率反而比一般的中碱性土壤高得多,对于这种强腐蚀性,目前还无法解释”。为考察这一问题,计算土壤电阻R与pH的偏依赖相关函数,结果如图4所示。
由图4可见:碳钢在酸性土壤的腐蚀率高于碱性土壤的腐蚀率,而对于固定的pH,具有高电阻土壤腐蚀率大于低电阻土壤腐蚀率的趋势;当电阻较小时,对于任意酸碱度土壤,电阻越小,腐蚀率越高,但当电阻大于30 Ω之后,pH对腐蚀率的影响变得显著,高电阻土壤腐蚀率变为高于低电阻土壤的腐蚀率,但变化较平缓。通过计算各输入变量组的偏依赖函数,就可以对变量交互作用进行探索。
根据模型分析和与土壤腐蚀专业文献的对比,可以认为提升回归树模型可以较好地描述碳钢的土壤腐蚀规律,尽管不能揭示腐蚀发生的深层原因,但可以为腐蚀规律的研究提供有益的线索。
![](/web/fileinfo/upload/magazine/12412/306839/image085.jpg)
图4 土壤pH、电阻率因素与腐蚀率二维偏依赖函数
Fig. 4 Two-dimensional partial dependence function of soil pH and resistivity about corrosion rate
3.2.3 算法性能检验
由于模型是使用全部样本建立的,为了检验改进算法的拟合和泛化性能,作者在原数据集中随机抽取10个样本作为检验集,使用其余60个样本建立模型,并与原算法、SVM算法、神经网络算法、分类回归树(CART)算法和线性回归算法进行比对。
表5 模型性能对比
Table 5 Comparison of models performance
![](/web/fileinfo/upload/magazine/12412/306839/image087.jpg)
其中改进算法的参数选择为{η,fra,L}= {0.005,065,5},原算法的参数根据模型训练情况,选择为{η,fra,L}={0.005,0.75,5}。各自的提升次数M通过10折交叉检验在建模过程中确定。SVR算法使用R软件包E1071计算,令ε等于0.01,采用10折交叉检验控制迭代次数。神经网络算法使用R软件包NNET计算,设置为3层网络,限制迭代次数为500次。分类回归树(CART)算法使用R软件包rpart计算。线性回归采用逐步回归算法。对于作为对比的SVR算法、神经网络算法、分类回归树算法和逐步回归算法,没有进行进一步优化,基本采用默认值。
关于数据中的缺失值,由于数据集样本较小,数据又采集自不同地区的台站,缺乏必要的信息以完成缺失数据填补,而且提升回归树算法数据对缺失值有很好的鲁棒性,因此,在原算法、改进算法和分类回归树算法中保持了数据缺失状态。对于其他算法,如删除含缺失数据的样本,需要删去约11%的数据,因此,采用了同地区均值填充的方式进行缺失数据处理。实验结果如表5所示。
各算法建立的模型在测试集上的结果如图5所示,其中Actual Value为实际值,SVR,Regression,Nnet,BRT,CART和I-BRT分别为支撑向量回归、逐步回归、神经网络、提升回归树算法、分类回归树和本文的改进算法的模型预测值。从表5和图5可以看出:改进的提升回归树算法可以对碳钢土壤腐蚀率进行准确预测,性能好于原算法。虽然SVR和神经网络算法没有经过系统优化,至少可以认为提升回归树算法的性能可以与前两者相当。
![](/web/fileinfo/upload/magazine/12412/306839/image089.jpg)
图5 不同算法的预测性能对比
Fig. 5 Comparison of different algorithms predictable performance
4 结论
(1) 提出一种基于提升回归树算法的新方法,针对实验数据小样本情况下的参数选取问题,采用ε不敏感损失函数、动态收缩系数对原算法进行改进。实验证明,改进算法适合小样本数据的处理。
(2) 建立碳钢在土壤中的腐蚀率模型。模型较好地描述和预测了碳钢在土壤中的腐蚀规律,并为探索腐蚀影响因素及其因素间交互作用提供了线索。
(3) 提升回归算法需要人工确定树端节点数L、收缩系数上限η和样本抽样率fra等参数,由于各参数相互影响,通过多次实验分别确定参数的方式并不精确(尽管模型结果对一定区间内的参数是不敏感的),如何优化模型建立的过程将有待下一步研究。
参考文献:
[1] Yahaya N, Noor NM, Othman RS, et al. New technique for studying soil corrosion of underground pipeline[J]. Journal of Applied Sciences, 2011, 11(9): 1510-1521.
[2] 杨瑞成, 王彬, 张天云. 基于MATLAB的混沌时间序列算法对材料腐蚀行为的预测[J]. 兰州理工大学学报, 2009, 35(5): 5-8.
YANG Ruicheng, WANG Bin, ZHANG Tianyun. Prediction of the corrosion behavior of chaotic time series algorithm based on MATLAB[J]. Journal of Lanzhou University of Technology, 2009, 35(5): 5-8.
[3] 赖延清, 陈湘涛, 秦庆伟, 等. NiFe2O4基金属陶瓷耐腐蚀因素分析及腐蚀率预测[J]. 中南大学学报(自然科学版), 2004, 35(6): 896-901.
LAI Yanqing, CHEN Xiangtao, QIN Qingwei, et al. Corrosion analysis and corrosion rates prediction of NiFe2O4 cermet inert anodes[J]. Journal of Central South University (Science and Technology), 2004, 35(6): 896-901.
[4] Sadowski L. Non-destructive investigation of corrosion current density in steel reinforced concrete by artificial neural networks[J]. Archives of Civil and Mechanical Engineering, 2013, 13(1): 104-111.
[5] LIANG Ping, DU Cuiwei, LI Xiaogang. Grey relational space analysis of effect of environmental factors on corrosion resistance of X70 pipeline steel in ying tan soil simulated solution[J]. Corrosion & Protection, 2009(4): 23-27.
[6] Friedman J H. Greedy function approximation: A gradient boosting machine[J]. Annals of Statistics, 2001, 29(5): 1189-1232.
[7] Buhrmann P, Hothorn T. Boosting algorithms: Regularization, prediction and model fitting[J]. Statistical Science, 2007, 22(4): 477-505.
[8] Mohan A, CHEN Zheng, Weinberger K. Web-search ranking with initialized gradient boosted regression trees[J]. Journal of Machine Learning Research, Workshop and Conference Proceedings, 2011(14): 77-89.
[9] Kneib T, Hothorn T, Tutz G. Variable selection and model choice in geoadditive regression models[J]. Biometrics, 2009, 65(2): 626-634.
[10] Hastie T, Tibshirani R, Friedman J H. 统计学习基础—数据挖掘、推理与预测[M]. 范明, 等译. 北京: 电子工业出版社, 2004: 337-384.
Hastie T, Tibshirani R, Friedman J H. The elements of statistical learning: data mining, inference, and prediction[M]. FAN Ming, et al, trans. Beijing: Electronic Industry Press, 2004: 337-384.
[11] Breiman L, Ihaka R. Nonlinear discriminant analysis via scaling and ACE[R]. Berkeley: University of California, 1984: 17-38.
[12] Dekel O, Shalev-Shwartz S, Singer Y. Smooth epsilon- insensitive regression by loss summarization[J]. Journal of Machine Learning Research, 2006, 6(1): 711-741.
[13] Friedman J H. Stochastic gradient boosting[J]. Computational Statistics & Data Analysis, 2002, 38(4): 367-378.
[14] 梁茵. 分类回归树算法的探讨[J]. 广东技术师范学院学报, 2008(6): 29-32.
LIANG Yin. A discussion of classification and regression tree[J]. Journal of Guang dong Polytechnic Normal University, 2008(6): 29-32.
[15] Elith J, Leathwick J R, Hastie T. A working guide to boosted regression trees[J]. Journal of Animal Ecology, 2008, 77(4): 802-813.
[16] 曹楚南. 中国材料的自然环境腐蚀[M]. 北京: 化学工业出版社, 2005: 375-383.
CAO Chunan. The environment corrosion of materials in China[M]. Beijing: Chemical Industry Press, 2005: 375-383.
(编辑 陈爱华)
收稿日期:2013-08-07;修回日期:2013-10-20
基金项目:国家科技基础性工作专项基金资助项目(2012FY113000)
通信作者:穆志纯(1952-),男,天津人,教授,博士生导师,从事系统建模和智能控制研究;电话:010-62334967;E-mail:mu@ies.ustb.edu.cn