基于FUZZY-SVM的软件质量综合评价

2018-06-29 00:34
长春工业大学学报 2018年3期
关键词:向量特性分类

郑 鹏

(莆田学院 信息工程学院, 福建 莆田 351100)

0 引 言

随着国家软件产业进入高速发展阶段,软件质量评价问题引起了人们的广泛关注。由于传统的评价方法存在很多不足,支持向量机(Support Vector Machine, SVM)算法作为基于统计学的一种新的机器学习算法,克服了主观赋权法的主观性和维数灾的问题,其全局寻优也解决了神经网络法中的局部极值问题。文中将模糊数学和SVM结合,提出模糊支持向量机(Fuzzy Support Vector Machine, FUZZY-SVM)模型,旨在为软件质量的综合评价提供一个新的思路。

1 软件质量的度量

软件质量度量指的是对软件质量在开发过程进行质量控制、在验收阶段进行评价评估。为了可以提供一个科学度量的标准,ISO发布了ISO/IEC 25010软件质量度量模型[1]。该模型根据最小关联与独立的原则把软件产品划分为8个质量特性和31个质量子特性。质量特性是代表软件质量的一个方面,用于描述和评价软件的某方面属性。子特性是质量特性的细分,一个质量特性可以由多个子特性表达,某个子特性也可以属于多个质量特性。ISO/IEC 25010模型是一个成熟全面的度量模型,文中将选其作为度量模型。

2 SVM、FUZZY-SVM模型

2.1 SVM

SVM算法是基于统计学习理论体系,由Cortes等[2]提出的一种解决线性不可分问题的新型通用机器学习方法。

假设线性可分样本集为(xi,yi),i=1,2,…,n,x∈Rc,y∈{+1,-1},其中y为类别符号。在维度为c的空间中,将线性判别函数的形式一般表示为:

f(x)=ωx+b

分类线性方程表示为:

ωx+b=0

将判别函数进行归一化,使样本满足

|f(x)|=1

此时分类间隔等于‖w‖/2。要使分类间隔最大,即‖w‖最小,需要满足:

yi[(ωx)+b]-1≥0,i=1,2,…,n

当‖w‖最小且满足上述条件时的分类面即为最优分类面,把支持最优分类面的H1、H2这两类训练样本点称为支持向量。

对于线性分类,SVM将其转化成一个不等式约束下的二次函数极值问题。对于非线性的情况,假设有非线性映射φ:Rd→H,要将样本映射到高维特征空间H中,当要构造最优超平面时,仅需使用空间中的点积φ(xi)·φ(xj)。此时,寻找函数K,使得

K(xi·xj)=φ(xi)·φ(xj)

这样,在高维空间只需进行内积运算,而且可利用原有空间中的函数来实现。

选用适合的内积函数K(xi·xj)进行非线性变换,可以使核函数满足Mercer条件,这样在变幻的空间中的内积得到对应,也得到了线性分类[3]。

SVM算法这种通过向量输入、支持向量的内积处理以及中间节点的线性组合输出,结构类似一个神经网络[4]。相当于把x=(x1,x2,…,xn)为输入向量,中间节点K(x·xi)是基于支持向量的内积,权值是ωi=αiyi,输出是中间节点的线性组合:

(1)

常见的核函数有三类:多项式核函数、RBF径向基函数和S形核函数[4]。考虑到软件质量评价指标与结果之间的非线性映射关系,以及径向基RBF核函数的参数较少,不会过多影响模型的精度。此外,以往的评价方法对评价结果都是用线性赋权法进行计算的,这对于非线性赋权问题还是有缺陷的,而径向基核函数解决了这些问题,因此选取径向基RBF函数作为核函数[5]:

(2)

2.2 构造模糊隶属度函数

软件质量评价指标中,有些指标是带模糊性的,因此利用模糊数学来进行量化。对于可定量的指标,也存在一些问题:比如不符合软件质量的连续和渐变的特点、部分评价的信息丢失、量化程度不好等,因此需要构造隶属度函数[6]可定量指标的评价标准进行处理。

在实际评价应用中,通常可以选择适当的模糊分布[7],再根据实际问题的特点确定各个参数,进而确定隶属函数。根据软件质量渐变连续的特点,梯形分布与半梯形分布的模糊分布比较符合。因此,文中采用梯形分布与半梯形分布构造隶属度函数,在进行SVM输入训练之前对原始数据进行标准化。

2.3 FUZZY-SVM模型

FUZZY-SVM模型是一个模式分类的过程,是指对软件质量特征、因子进行描述辨识和分类解释的过程,如图1所示。

首先,模型选择指标体系及评价分级标准。然后对原始数据进行采集,采用模糊隶属度函数对指标数据进行归一化预处理。模型在面临不同类型的软件时,可以根据问题的实际数据特征来选择不同的SVM模型和参数。在求解样本数的二次规划问题过程中,还需要设计特殊的训练策略来解决复杂程度与样本数成指数递增关系的问题[8],具体包括:训练集的选择策略以及增量迭代如何进行等。在模型择优的过程中,可循环迭代、多次优化,以最终达到整体上最优的效果,并进行综合评价。如此一来,FUZZY-SVM模型可有效排除主观性及干扰、容错能力强、操作简单便捷。

图1 FUZZY-SVM模型

3 实 例

3.1 指标体系及评价分级标准

假设要对某类的软件进行综合评价。依据ISO/IEC 25010标准选取全部特性作为评价指标,用I1~I31表示,见表1。

表1 软件质量评价指标体系

3.2 数据采集和预处理

在指标体系中定量指标包括I1、I2、I8、I9、I10、I17,其余为定性指标。将定性指标的隶属度分为5个等级:(差、较差、合格、良好、优秀)=(0,0.3,0.6,0.8,1.0),隶属度越大,该指标对软件质量的贡献程度越大。定量指标中指标I1、I2、I17是极大型指标,而I8、I9、I10是极小型指标。利用隶属度函数进行训练:

把软件质量根据评价结果分为4个等级,即优秀、良好、合格、不合格,并用1,2,3,4分别表示。将样本的各项软件质量指标隶属度值作为评价指标输入,将软件质量综合评价结果作为支持向量机输出。选取收集的50份不同等级的数据作为模型训练和测试样本,其中前25个作为训练样本,后25个作为测试样本,根据隶属度等级和函数归一化样本数据。

3.3 模型选择及参数确定

在CPUIntelCeleronG530 2.4GHz,RAM4GB,windows7操作系统,MATLAB2013a环境下利用LIBSVM工具包,采用5折交叉验证法对训练样本进行测试,选取了误差最小、模型最优的参数:C=8,σ=0.5。

4 结 语

针对软件质量评价的特殊性,提出了一种基于FUZZY-SVM的软件质量评价模型。模型对不同软件质量等级的样本数据进行训练,并检验样本数据,结果基本一致。最后,再与模糊综合评价方法和神经网络评价方法进行了比较,结果表明,该方法正确率和预测精度最高。因此,FUZZY-SVM在实际中可有效地进行软件质量等级分类、评价,为决策者在科学客观评价软件质量方面提供了一个新的评价思路。

参考文献:

[1] 孙洋,袁玉宇.ISO/IEC25010质量模型标准现状[J].信息技术与标准化,2008(11):33-36.

[2] 赵洪波,冯夏庭.非线性位移时间序列预测的进化:支持向量机方法及应用[J].岩土工程学报,2003,25(4):468-471.

[3] 杜栋,庞庆华,吴炎.现代综合评价方法与案例精选[M].北京:清华大学出版社,2015.

[4] 苏怀智,温志萍,吴中如.基于SVM理论的大坝安全预警模型研究[J].应用基础与工程科学学报,2009,17(1):40-47.

[5] 孟洛明,朱杰辉,杨杨.支持向量机回归预测在网络故障检测中的应用[J].北京邮电大学学报,2014,37:23-29.

[6] 杨纶标,高英仪.模糊数学原理与应用[M].广州:华南理工大学出版社,2005.

[7] 李荣钧.模糊多准则决策理论与应用[M].北京:科学出版社,2002.

[8] 金菊良,魏一鸣.复杂系统广义智能评价方法与应用[M].北京:科学出版社,2008.

[9] 黄明,李宪章,刘杨.软件质量评审技术[J].吉林工学院学报,1990,11(3):25-29.

猜你喜欢
向量特性分类
向量的分解
谷稗的生物学特性和栽培技术
分类算一算
聚焦“向量与三角”创新题
色彩特性
分类讨论求坐标
进一步凸显定制安装特性的优势 Integra DRX-5.2
数据分析中的分类讨论
教你一招:数的分类
Quick Charge 4:什么是新的?