APP下载

基于SVR的工程建设项目快速投资估算方法研究

2020-03-23陈小波张媛媛

工程管理学报 2020年1期
关键词:神经网络误差函数

陈小波 ,张媛媛 ,崔 平

(1. 东北财经大学 投资工程管理学院,辽宁 大连 116025,E-mail:xiaobo9017@163.com;2. 东北财经大学 投资工程管理学院工程管理研究中心,辽宁 大连 116025;3. 中建二局熊兵劳模创新工作室,北京 100160)

建设工程项目具有复杂性、单件性、长期性的特点,工程项目投资估算是项目投资决策的重要依据,是指在整个投资决策过程中,依据现有资料和一定的方法,对建设项目的投资额进行的估计[1]。建设项目前期成本估算的准确性对于项目的投资决策有着直接的影响,也是项目建设过程顺利进行的重要基础。因此,深入研究建设项目成本估算方法,建立一个高效科学的投资估算模型,对于建设项目前期的投资决策等一系列活动具有非常重大的意义。

建设项目的投资成本估算,可以看作是利用数学或者计算机建立模型并进行求解的过程,目前很多国内外学者对工程项目的快速投资估算方法进行了研究,国外大致分为4个阶段:英国工程造价信息服务部提出的 BCIS预测模型[2]、英国数学家Kouskoulas等[3]给出的模型—线性回归方程、以计算机软件系统和概率分析为基础的Monte Carlo随机估算模型[4]、应用人工智能的,如神经网络、优化算法[5]等工程造价预测模型。我国的发展进程相对滞后,最早使用的建设项目投资估算方法,主要是采用拟建工程与已建工程的相似程度进行类比得出拟建过程的估算造价,有生产能力指数法、朗格系数法等,最近几年来一些利用人工智能的估算方法,比如人工神经网络、灰色预测模型、模糊数学法等也在逐渐推广并实现优化,这在一定程度上大大提高了估算的准确度,也节省了不少项目建设前期的宝贵时间。田雨晴[6]分别运用 GM(1,1)模型、BP神经网络法、灰色系统理论优化的BP人工神经网络建立估算模型,并采用实例进行预测,最后验证改进的BP神经网络模型是有效可行的,蒋红妍等[7]采用灰关联分析与粒子群优化的 BP神经网络相结合的方法,构建基于灰关联的 PSO-BP神经网络的高层住宅造价估算模型,王佼等[8]提出用灰关联分析筛选工程造价影响因素,再使用PSO优化的SVR模型进行优化,从而建立PSO-SVR输电工程造价模型。

以上研究在一定程度上丰富了投资估算的方法模型,提高了预测的准确度。然而对于造价指标的筛选,多数都是来源于文献归纳与专家访谈,筛选方法不够智能与科学,对于所提出模型的有效性也缺少对比证实。因此,本文在对影响工程造价的特征指标筛选时选用统计分析软件 SPSS,之后使用Matlab建立基于SVR的工程建设项目投资智能估算模型,为了说明本文提出模型的预测准确性,建立BP人工神经网络成本预测模型以实例来验证SVR模型的有效性并进行预测结果对比。提出的模型可以作为实际工程项目投资估算的辅助计算,进而为项目的投资决策提供合理依据。

1 SVR 方法(支持向量机回归)

支持向量机(Support Vector Machines,SVM)理论是在统计学习理论中发展起来的一种通用学习方法[9]。机近年来引起了人们的广泛关注,该学习理论可作为多项式、径向基函数和多层感知分类器的替代训练技术,这种新的计算机训练技术与传统训练技术相比可以有效地减小理论误差的上界。

支持向量机是针对一般的估计和预测问题而开发的,除了使用支持向量机分类,还可以用来进行函数回归的拟合,即 SVR(Support Vector Regression)。SVR的目标是通过最小化预测误差,从而找到一个能够很好地逼近训练实例的函数,并且在误差最小化时,最大化函数的平整度来降低拟合的风险。

支持向量机回归(SVR)是指用线性函数g(x)=wx+b来拟合样本数据(xi,yi),i=1,2,…,n,xi∈Rd,yi∈R,在控制拟合精度ε的情况下,假设所有的样本数据都可以视为没有误差地用以下线性函数来表示[10],

常数C>0同样是对超出ε的样本惩罚程度的控制,因此,问题可以转化为:

其中,αi,为Lagrange因子,并最终得到回归函数为:

这就是用支持 SVR进行函数回归拟合的数学过程。

SVR目前在理论上的研究较为丰富,而在实践中的应用研究则相对较少。对于支持向量机的研究,更多集中在传统的分类和模式识别的功能上,而非线性函数回归拟合这个功能,实践应用上的发掘不多,应用于工程实践问题中更是少之又少。因此,本文重点探索 SVR在快速投资估算方法中的应用,并与BP人工神经网络对比以验证SVR模型的有效性。

2 工程特征指标的选取

2.1 指标预选取

本文选取了某市建设工程造价网所公布的 44组单项工程造价指标具体案例,由于涉及的属性繁多,通过阅读大量文献并结合专家经验对指标合并,初步选取以下18个工程特征指标:建筑面积、工程用途、质量等级、结构类型、基础类型、门窗类型、砌体类型、土石方、基础与桩基础、砌筑工程、屋面防水保温、砼、钢筋工程、墙柱面工程、门窗工程、楼地面、天棚、部分措施项目(含模板、脚手架、垂直运输机械、安全文明施工费),来建立工程特征指标体系。

2.2 定性指标的量化处理

以上确立的指标体系同时包含定性指标与定量指标两类。定量指标主要包括建筑面积等可以直接将原始数据输入模型进行处理的指标,而对于工程用途、质量等级、结构类型、基础类型、砌体类型、门窗类型这几项不能用数字来表示的定性特征指标,依据该工程特征对平米造价大小影响的程度,按从小到大的顺序排序,从而进行量化处理[11],如表1所示。

表1 定性指标的量化处理

2.3 数据标准化

由于不同工程特征指标的量纲不同,因此需要将各指标进行标准化处理,以消除不同特征指标量纲之间的差异性。本文对搜集的 44个工程造价案例的数据进行标准化处理,具体由 Matlab自带的mapminmax函数来实现,从而实现将数据归一化到[-1,1]之间的数,标准化的具体公式如下:

如果某行的数据全部相同,即xmax=xmin,除数为0,此时数据不变。

2.4 Pearson相关系数约简指标

数据约简是指“压缩”原有庞大的数据集以获得一个精简的数据集合,同时保持原有数据集的完整性,使得数据挖掘效率更高,精简前后数据挖掘结果基本相同。本文指标特征的选择,属于属性约简,即维数的约简,使用统计分析软件SPSS的相关性分析来进行工程特征指标的约简,将 44个案例的工程造价指标数据导入 SPSS,使用主成分分析功能,将平米造价设置为因变量,其余 18个特征指标作为自变量,得到 19个因素的相关性系数矩阵,本文主要采用SPSS软件的Pearson相关系数来解决变量冗余的问题,相关系数的数学定义为:

式中,n为样本数;xi和yi分别是变量的值;r是两个变量之间的相关度,-1≪r≤1,如果r=0则代表二者不存在相关关系,r>0则代表二者存在正相关关系,|r|越大,表示因变量与自变量之间的相关程度越大。

本文的因变量(平米造价)与自变量之间的相关性如图1所示。

图1 因变量与自变量相关性

为了保证模型预测的准确性,需要选取适量的与因变量相关程度较大的指标。在筛选指标时,考虑到相关性定的太高满足条件的的指标数量太少,不能够精确预测因变量,相关性定的太低又不能达到筛选有代表性指标的目的,导致指标冗余繁多,根据以上原则,经过多次调试,本文拟定选取相关性在0.3以上的工程特征指标,恰好可以满足指标数量选取的原则。据此标准最终按照相关性大小排序,依次选取前 12个指标作为本文所建立模型的输入指标。

3 SVR投资估算智能模型的设计与建立

3.1 核函数类型

不同核函数类型对于模型性能的好坏有直接的影响,因此需要选择最佳的核函数类型。本文通过多次试验,在模型中采用的是 RBF核函数与其他核函数相比来说,RBF核函数对应模型具有的泛化性能是最佳的。

3.2 模型参数设置

采用RBF核函数以后,模型训练阶段的主要任务是确定参数c(惩罚因子)和 g(RBF内核的方差)。如果是第一次运行,上述两个参数的值可以任意定义。但是,如果重复多次,优化训练参数的步骤就会开始工作。本文所采用的训练参数优化算法是利用Matlab工具箱中优化工具箱的功能。对于参数c和g的搜寻,本文主要采用交叉验证技术,具体应用是指首先用该方法来寻找最佳的参数c和g,然后使用寻找到的参数组合来训练本文的模型。如果此时模型的性能大致相近,为了达到快速建模的目的、减少迭代次数,首先考虑的便是c参数较小的参数组合,此外,在模型建立时也需要预先设定ε的值。

3.3 交叉验证方法

使用libsvm工具箱在训练模型时,需要用到交叉验证方法,交叉验证是一种著名的估计泛化误差的技术[12]。libsvm的k次交叉验证将训练样本平均分为k个部分,每次以k-1个部分作为训练数据,其余的部分作为测试数据。重复k次,得到k次交叉验证的平均精度。

在支持向量机的回归问题中,交叉验证使用SVMtrain的-V参数,返回交叉验证下的平均均方根误差。此外,还可以快速找到最佳参数c和g。最终建立的SVR模型如图2所示[13]。

图2 SVR模型

4 案例应用

4.1 仿真模拟

本文使用的 44组案例数据均来源于实际的工程项目,数据搜集不易,为了充分利用案例数据,更全面地捕捉案例数据的特征,以便达到更好的预测效果,需要对案例数据进行插值来完成样本扩充。本文所用的插值方法是采用Matlab自带的均分计算函数 linspace,在案例数据的最大值与最小值之间等距进行插值,插值数量设置为 100,由此生成100个新的样本数据,再加上原有44个案例数据,总计144个样本数据。为不失一般性,采用Matlab中的 randperm函数随机划分 115个样本作为训练集,剩余的29个样本作为测试集。

使用Matlab编写程序建立SVR模型,模型中核函数类型采用RBF核函数用随机划分好的115个训练集样本训练该模型。训练过程中交叉验证技术会自动调试SVR模型参数c和 g,并对参数进行寻找最优,等到模型训练到误差最小、性能最佳之后程序便自动开始测试集样本的预测过程,最终得出训练集的训练效果和测试集的预测效果。由于测试集的预测效果代表的是最终模型性能的好坏,因此在这里给出测试集预测结果(测试集真实值和预测值的对比),如图 3所示。可知,SVR模型的拟合优度R2高达 0.97,均方误差 MSE仅有 0.0032,平均绝对百分比误差 MAPE约为5%,模型的预测误差很低,说明该SVR模型具有良好泛化能力和预测精度,预测结果比较满意。

图3 SVR模型预测结果

4.2 模型验证和性能比较

为了有效验证 SVR模型的预测性能,本文采取BP人工神经网络(BPNN)建立的预测模型作为对照模型。BP神经网络采用误差反向传播算法(Error Back Propagation)进行学习,学习算法主要是快速下降法[14]。

在建立BPNN预测模型时,需要提前设置好各种网络所需参数:

(1)网络层数的确定。根据相关研究,当BP神经网络的隐含层数为1时,几乎所有的连续函数都可以被拟合出来,只有当需要去拟合的函数为非连续性函数时,此时所需要的网络隐含层数变为 2层[11],所以本文建立的BP神经网络模型只包含一个隐含层。

(2)各层节点数的选择。BP神经网络的输入层和输出层的节点数由案例中的样本集确定。本文中输入层节点数为12,输出层节点数为1,对于隐含层节点数的确定主要是通过逐步尝试得到当隐含层节点数为24时,模型训练效果最好。

(3)训练函数的选择。BP神经网络的性能好坏由许多因素决定,比如问题的复杂程度、权重、训练集等。为了达到期望误差,本文选取 Tan-Sigmoid函数作为传递函数,输出层函数选取purelin线性函数,训练函数选取 traingdm,并选取 LM(Levenberg-Marquardt)算法来改进优化最速下降BP法,可使误差收敛速度较快,训练精度较高。

设置好相关参数后,建立并训练BPNN模型,然后使用测试集测试该模型预测的准确性,图4为BPNN进程执行图,图5为BPNN模型的预测效果。

训练结果的评价是对训练得出的模型推广(或称泛化)能力进行验证。所谓泛化能力是指经训练(学习)后模型的优良性能在测试集做出良好表现的能力,通常需要用到 MSE(均方误差)、MAPE(平均绝对百分比误差)、R2(可决系数)这 3个

图4 BP神经网络执行图

图5 BPNN预测结果

指标来衡量,它们的定义分别是:

如果算出的MSE和MAPE值比较小,则说明该训练模型的泛化能力强,反之则说明模型的泛化能力较差,R2是可决系数,用来描述模型拟合的好坏程度。将本文提出的SVR模型和BPNN模型的预测结果对比如表2所示、预测误差如图6所示。

表2 SVR 与BPNN的预测性能对比

由表2可以得出两个模型的训练效果,SVR模型的均方误差MSE仅有0.003181,而BP神经网络

图6 预测误差对比图

预测模型的均方误差MSE为0.043367,同时模型训练速度较快,完全满足预期目标。SVR模型与BP神经网络预测模型相比,其平均绝对百分比误差仅约为5%,远小于BP模型约为14%的误差率,并且其拟合程度R2已达到 0.9671,均方误差也很小。由此看来,本文提出的 SVR模型的预测精度要远远高于BP神经网络的预测模型,可以完全满足投资决策阶段对于估算精度的要求,也表明该模型对建筑业建设项目成本估算具有较高的性能适用性。通过使用本文所提出的 SVR成本估算回归模型,项目经理可以做出适当的决策来评估建设项目,特别是在可行性研究中,如此也大大提高工作效率,增加工程建设项目成功的机会。

5 结语

工程建设项目的投资估算对于一个项目能否上马至关重要,提出科学有效的估算方法意义重大。本文所提出的建设项目成本估算模型采用SVR的方法,先使用 SPSS主成分分析功能的 Pearson相关系数筛选出工程特征指标,作为模型的输入变量,然后利用具有可靠性估计特点的交叉验证技术寻找最佳的参数组合,建立 SVR模型。预测结果表明:SVR模型的平均绝对百分比误差率大约在5%,拟合优度约为0.97。建立BP神经网络预测模型来验证本文所提出模型的有效性并进行结果对比,得到BP神经网络预测模型的平均绝对百分比误差率大约为14%,拟合优度约为0.84,这表明SVR模型的泛化能力非常好,显著强于BP神经网络预测模型,具有训练效果更强,预测精度更高,可靠性高、避免过拟合等优点,同时使用 SVR模型也避免了BP神经网络容易陷入局部最优这一缺点以及对随机初始权重的敏感性。仿真测试结果表明,在已有建筑工程历史数据案例的情况下,利用SVR模型进行工程造价估算是可行有效的。进一步研究中,需要对模型进行深度的优化,以提高泛化能力。

猜你喜欢

神经网络误差函数
二次函数
第3讲 “函数”复习精讲
二次函数
角接触球轴承接触角误差控制
函数备考精讲
Beidou, le système de navigation par satellite compatible et interopérable
神经网络抑制无线通信干扰探究
压力容器制造误差探究
基于神经网络的中小学生情感分析
基于神经网络的拉矫机控制模型建立