当前位置:首页 期刊杂志

基于支持向量回归机的复杂产品费用估算研究

时间:2024-05-04

杨鹏飞,朱耀琴

(南京理工大学计算机科学与工程学院,江苏南京210094)

基于支持向量回归机的复杂产品费用估算研究

杨鹏飞,朱耀琴

(南京理工大学计算机科学与工程学院,江苏南京210094)

传统的费用估算算法需要大量的样本数据来保证其估算的准确性,但在实际应用中,由于样本数据的有限性,其准确性无法得到保证,针对这种情况提出使用基于统计学习理论的支持向量回归机(SVR)进行费用估算,并通过具体实例详细阐述基于SVR的费用估算具体步骤,包括数据预处理、基于SVR的训练、估算和后处理过程,通过与神经网络方法相比,实验结果验证了SVR在小样本情况下具有更好的估算精度。最后实现了基于SVR的复杂产品费用估算方法,并集成于复杂产品费用估算系统。

复杂产品;支持向量回归机;小样本;费用估算

0 引言

随着高新技术及现代生产的发展,复杂产品(如导弹、舰船、飞机等)的性能和复杂性越来越高,其在使用以及维修保障过程中的各种费用也不断增加,若不提前对复杂产品的费用进行有效地预估和判断,将会影响到对复杂产品做出合理性和经济性的生产决策,由此而导致的费用的增长不但会成为沉重的经济负担,而且还会影响到对新型产品的预研和投资。因此,有必要采用科学的费用估算方法,及时准确地对产品未来的费用进行估算,做出合理的费用计划,节约有限的成本费用。

传统的费用估算方法主要有工程法、参数法、类比法和专家判断法,这些方法都存在着一些不足之处。一些比较新的理论包括偏最小二乘回归法、灰色理论、神经网络、遗传算法也已应用于费用估算,取得了不错的效果,如文献[1⁃2]。然而,这些统计理论只有在费用样本数量趋于无穷大时才能有理论上的保证,但在实际应用中,受到各种条件的限制,很多用于费用估算问题的产品费用样本容量很小,信息不足,不能反映整个产品费用样本空间的分布,故而这些理论在实际应用中往往难以取得理想的效果。因此建立适合于小样本情况下的复杂产品估算模型显得尤为重要。在此背景下,Vapnik等人基于统计学习理论提出一种借助于最优化方法解决机器学习问题的新工具[3],即支持向量机(Support Vector Machine,SVM),它根据有限的样本信息,采用结构风险最小化原理,对独立的测试样本能够得到较小的误差,包括支持向量分类机(Support Vector Classifica⁃tion,SVC)和支持向量回归机(Support Vector Regres⁃sion,SVR),被认为是目前针对小样本的分类和回归问题的最佳方法。本文推广应用了支持向量机中的回归部分,将支持向量机算法应用于复杂产品的费用估算,利用支持向量机对历史费用数据进行训练,逼近费用数据所隐含的函数关系,完成费用与影响参数之间的映射关系,进而完成对复杂产品未来费用的估算。

1 SVR原理

SVM最初是用来解决模式识别的问题,在模式识别中,为了发现具有好的推广能力的决策规则,将所选择的训练数据的一些子集,称做支持向量机。支持向量机的方法也可以应用到回归问题中,标准的SVR算法,分为线性和非线性两种,其基本思想是:通过非线性变换将输入空间向量映射到高维特征空间中,运用结构风险最小化原则在这个特征空间构造回归估计函数,这种非线性变换是通过定义适当的核函数K(xi,xj)来实现的。其中K(xi,xj)=g(xi)⋅g(xj),g(x)是指由输入空间到特征空间的非线性映射。

对于回归问题,给定训练样本xi∈Rn,对应的目标值yi∈R,i=1,2,…,l,首先要将输入向量映射到m维特征空间,然后在特征空间中构造优化超平面:

式中:W是m维权重向量;f(x)为特征空间中的一个线性函数;b为偏置项。

为了增加回归的鲁棒性,Vapnik提出了ε不敏感损失函数[3],其特点是忽略小于ε的拟合误差。综合考虑拟合误差和函数复杂度,回归支持向量机可以表示为如下的约束优化问题:

约束条件为:

式中:C>0是函数复杂度和损失误差的一个平衡因子。控制对超出误差的样本的惩罚程度,利用二次规划技术求解此优化问题,引入非负拉格朗日乘子原来的约束问题可以转换为以下无约束问题:

根据KKT优化条件,对应于原问题的优化解,上式具有鞍点,即相对于变量W,b,ξi,ξi*的偏导数为0,最后可将原问题转化为以下对偶优化问题:

求解优化问题后,回归估计函数为:

2 基于SVR的复杂产品费用估算

2.1 费用估算算法流程

在SVR基本原理的基础上对复杂产品进行费用估算,其算法流程图如图1所示。

图1 基于SVR的复杂产品费用估算算法流程图

步骤1:收集样本数据,将样本数据分为训练样本数据集和待估算测试样本数据集,选择输入参数、输出变量:其中输入参数主要是指影响到产品最终费用的参数,包括对时间敏感参数(如年份、月份等)和对时间不敏感参数(如质量、体积等),输出变量主要是指所关注的产品费用(如产品整体的费用或者由输入参数影响的产品某一部分的费用等);

步骤2:将训练样本数据集中随时间变化的费用参数数值用居民消费价格指数(Consumer Price Index,CPI)统一转换到基准时间段的费用数值;

步骤3:对统一转换后的数据进行归一化预处理,将参数数值及费用数值限制在[0,1]之间,形成归一化后的训练样本数据集;

步骤4:选择核函数,设置训练参数,利用SVR对费用样本数据进行训练:训练过程经常采用基于凸优化的对偶理论,来求解式(5),得到解

步骤5:根据训练结果构造回归估计函数:通过训练计算得出的以及选择的核函数,回归估计函数f(x)可表示为

步骤6:用回归估计函数对预处理后的待估算费用样本进行估算,计算出估算费用值;

步骤7:将估算出的费用值通过预处理过程的逆处理过程得到估算费用的精确值。

2.2 费用数据预处理

为了提高数据计算效率和保证训练和估算准确度,需要将费用样本数据进行预处理。费用样本数据的预处理包含两部分:费用数据的统一转换与归一化处理。

2.2.1 费用数据的统一转换

随着时间的变化,由于通货膨胀或收缩、物价上涨或下降等原因,相同的费用值在另一个时间段的实际经济价值会有所不同,因此需要把对时间变化敏感的费用数据统一转换到统一的币制和相同基准时间段(在此时间段里,物价相对比较平稳,费用的实际经济价值浮动变化很小),费用的时间价值采用年或月为基准,并考虑使用CPI指数进行转换,在以往的研究中,对于复杂产品如导弹等的费用估算,相关的时间因素只是作为训练参数进行计算,对受时间影响的费用并没有做转换,因此而训练出的回归估计函数并不能真正反映费用变化规律,如文献[4⁃5]中对所需要进行费用估算的产品没有考虑到时间因素的影响,文献[6⁃7]中数据所呈现的不同产品的研制年份不同,其费用的真实经济价值是不同的,因此需要将不同时间段(年份或月份)的费用值转换到基准时间段的数值,对费用真实变化规律进行函数拟合,费用数据统一转换的具体转换规则如下:

由现值求未来值采用如下公式:

由未来值求现值采用如下公式:

式中:P是当前费用值;F为未来费用值;n为从当前到未来时间段的间隔周期数;βi为从基准年起第i年的CPI指数。本文实验中采用上述公式来调整产品的费用价值到统一的基准年或月份,表1中实验数据来自文献[8];取用1982—1991年美国的CPI指数,数据来自美国劳工部的统计数据,见表2;将表1中各型号导弹的采购费用转换到1985财年的经济价值如表3所示。

表1 导弹费用技术特征参数及采购费用

表2 1982—1991年美国年度CPI指数

表3 经统—转换后的采购费用值(1985财年,单位:万美元)

2.2.2 费用数据的归一化处理

数据归一化的目的是将数据的取值转换到某一指定的范围,一般为[-1,1]或[0,1],消除各个参数由于量纲和单位不同带来的影响,可以减少训练过程中计算量,加快训练速度,可采用下述归一化公式:

式中:i=1,2,…,n(n为费用样本总数);j=1,2,…,m(m为输入参数总数);͂ij和͂i为归一化后第i个费用样本中第j个费用参数和输出变量的数值;xij和yi为第i个费用样本中第j个费用参数和输出变量的实际值;分别为n个费用样本中第j个费用参数的最大、最小值;分别为费用样本数据中输出变量的最大值和最小值。选取费用样本中60%以上作为训练样本数据集,剩下的作为测试样本数据集。将表1中各型号导弹特征参数以及表3中经统一转换后的费用数据进行归一化处理后的结果如表4所示。

表4 经归一化处理后各参数及费用值

2.3 SVR训练过程

SVR训练的过程即是对回归估计函数中的参数不断进行优化的过程。从前文介绍可知采用支持向量机方法求解回归估计问题,本质是一个二次规划问题,本文中采用目前求解二次规划问题最常用的方法,即序贯优化算法(Sequential Minimal Optimization,SMO)来实现求解过程。为了便于说明推导过程,令,则式(5)变为:

其中,核函数K(xi,xj)简写为kij。

SMO算法是把一个大的二次规划问题分解成一系列的只有两个变量的二次规划问题,假设待求大的两个优化变量为λa,λb,把上式表示成这两个变量的函数,把其他的拉格朗日乘子看作常数,则得到:

其中:

由于当上述二次规划问题存在最优解时,满足Karush⁃Kuhn⁃Tucker(KKT)最优化条件,同时,由于λa,λb取值范围的限制,可定义:

来确保λa,λb的取值在±C之间。

综上各部分讨论,SMO算法流程步骤如下:

Step 2:选择待优化变量λa,λb;

Step 6:计算b值;

Step 7:如果对于所有的样本均满足KKT条件,转向Step 8,否则转向Step 2;

Step 8:保存λ,训练过程结束。

2.4 训练结果及误差

SVR对费用数据的训练停止后,其训练费用值与实际值对应如表5所示,其中神经网络训练费用值采自文献[9],费用价格以1985财年为基准。

表5 SVR训练费用值、神经网络训练费用值与实际费用值对比表

2.5 费用估算及后处理

对待估算样本数据进行预处理后使用上述SVR进行费用估算,待估算样本数据的预处理以训练样本各特征参数的最大值和最小值为参照进行类似归一化处理,其值可不必在[0,1]区间之内,估算费用结果如表6所示,其中神经网络费用估算值采自文献[9]进行对比,费用价值以1985财年为基准。估算出产品在基准财年的经济价格之后,可根据需要按CPI指数将其转换到所需要的财年的价格,便于比较和决策。由实验统计数据可见,相比于神经网络算法,SVR在小样本条件下进行费用数据估算时,其训练误差可能不比神经网络小,但其估算的费用误差要远远小于神经网络的估算费用值,这说明在小样本条件情况下,SVR的推广能力要强于神经网络。

3 系统说明及展示

基于本文描述的算法所依赖的项目背景,使用C#.NET基于B/S架构实现一个复杂产品费用估算系统,系统提供了对复杂产品全生命周期中费用不同维度上的分析和管理,以及对复杂产品未来型号的费用估算等功能,将本文实现算法与实际应用项目进行了良好的集成,该系统主要由5个模块组成,分别是基础维度管理模块、参数管理模块、费用分解结构模块、费用估算模块以及费用计算分析模块。图2展示了复杂产品费用模块估算参数数据输入、训练及估算界面。

图2 基于SVR的费用数据训练及估算界面

表6 SVR及神经网络估算费用值及误差统计表

4 结语

本文充分利用支持向量机的优点,通过建立支持向量机回归模型对实际复杂产品的统计资料进行实验验证并与神经网络算法比较,实验结果表明,在较少的费用样本情况下,SVR能较好地反映产品费用与各主要影响参数的复杂非线性映射关系,具有较高的估算精度,并在此基础上实现了一个通用的复杂产品费用估算系统,通过对指定复杂产品进行结构分析及参数设定,即可对其进行费用估算,便于对复杂产品进行费用分析和采办决策。

用支持向量机对非线性组合估算函数进行拟合,可以在小费用样本条件下达到较好的估算精度和较强的推广能力,适用复杂产品费用的估算问题。由于目前还没有一定的理论指导,支持向量机核函数的选取仍是一个比较困难的问题。同时,费用影响参数的选取对估算结果也有一定影响,如何在具体条件下对特定的系统确定合适的参数还有待进一步研究。

[1]李海军,刘霄,孙伟玮,等.反舰导弹维修费用偏最小二乘估算方法[J].海军航空工程学院学报,2012,27(1):27⁃31.

[2]曹广生,乐光,陶金亮,等.基于RBF神经网络的大型客机制造成本分析[J].电子设计工程,2013,21(1):41⁃46.

[3]VAPNIK V N.The nature of statistical learning theory[M]. New York:Springer⁃Verlag,1995.

[4]刘芳,赵建印,宋贵宝,等.基于CAIV的导弹低成本保障性指标论证技术[J].海军航空工程学院学报,2012,27(2):171⁃175.

[5]徐子彬,汪民乐,翟龙刚.基于神经网络的武器系统寿命费用分析方法研究[J].科教前沿,2011(29):476⁃477.

[6]冀海燕,张笑,王瑞臣.潜射导弹武器系统维修保障费用灰色预测[J].青岛大学学报:工程技术版,2013,28(1):72⁃75.

[7]杨志刚,王海涛,彭绍雄,等.舰空导弹武器装备寿命周期费用分析[J].兵工自动化,2013,32(10):4⁃7.

[8]《世界导弹大全》修订委员会.世界导弹大全[M].3版.北京:军事科学出版社,2013.

[9]周林,王君,张文,等.军事装备管理预测与决策[M].北京:国防工业出版社,2007.

[10]CORTES C,VAPNIK V.Support⁃vector network[J].Machine Learning,1995,20:273⁃297.

[11]徐军凯,李勇.应用RBF网络的导弹研制费用预测[J].网络与信息技术,2007,26(10):55⁃59.

Research of complex product cost estimation based on support vector regression

YANG Peng⁃fei,ZHU Yao⁃qin
(School of Computer Science and Engineering,Nanjing University of Science and Technology,Nanjing 210094,China)

Since plenty of sample data is required to ensure the accuracy of traditional cost estimation algorithm,and it is hard to ensure the accuracy of estimation due to the limitation of sample data in practical application,the support vector regres⁃sion(SVR)based on statistical learning theory is proposed to make cost estimation.The specific steps of cost estimation is de⁃scribed in detail based on SVR,including data preprocessing,training based on SVR,estimation and post⁃processing.The ex⁃periment result verifies that the estimation accuracy based on SVR in small sample data is better than the method of neural net⁃work.Finally,the method of complex product cost estimation based on SVR is implemented,and is integrated in the system of complex product cost estimation.

complex product;support vector regression;small sample;cost estimation

TN711⁃34;TP319

A

1004⁃373X(2015)09⁃0038⁃05

杨鹏飞(1988—),男,硕士研究生。研究方向为虚拟样机全生命周期管理、计算机应用。

朱耀琴(1977—),女,硕士生导师,博士。主要研究方向为虚拟样机全生命周期管理、系统仿真。

2014⁃11⁃12

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!