文摘
软件缺陷预测是有用的保持有效高质量的软件产品。有缺陷的早期预测软件模块可以帮助软件开发人员分配可用的资源交付高质量的软件产品。软件缺陷预测系统的目的是为了发现尽可能多的缺陷软件模块而不影响总体性能。学习过程的软件缺陷预测是困难的因为不平衡分布的软件模块之间的缺陷和无缺陷的类。误分类有缺陷的软件模块的成本通常比良品的误分类会带来更高的成本。因此,在考虑误分类的成本问题,我们开发了一个软件缺陷预测系统使用加权最小二乘法双子支持向量机(WLSTSVM)。这个系统分配更高的误分类代价缺陷类的数据样本和更低的成本数据样本的无缺陷的类。实验八软件缺陷预测数据集已经证明了提出的缺陷预测系统的有效性。结果的意义已经测试通过使用非参数统计分析由魏克森讯号等级测试。
1。介绍
软件开发生命周期(SDLC)包括五个阶段:分析、设计、实现、测试和维护阶段。这些阶段应该有效地经营,以提供bug和高质量的软件产品的最终用户。开发一个软件产品没有缺陷是一个非常具有挑战性的任务由于发生未知错误或不可预见的缺陷即使所有仔细遵循软件项目开发的指导方针。有缺陷的早期预测软件模块帮助软件项目经理有效地利用资源,如人,时间,预算开发高质量的软件(1- - - - - -4]。确定有缺陷的软件模块是软件行业的一个主要关注的问题,进一步促进软件进化和维护。软件项目经理、质量经理、软件开发人员监控,检测,并修正软件缺陷在软件开发生命周期的所有阶段,以提供高质量的软件,并在预算之内。一个软件产品的质量与缺失或存在高度相关的缺陷5,6]。软件缺陷是发生错误或缺陷的软件过程由于不正确的编程逻辑,沟通的需求,缺乏编程经验,可怜的软件测试技能,等等。有缺陷的软件模块生成错误的输出质量差,导致软件产品进而增加开发和维护成本,负责客户的不满1,2]。在近二十年来研究人员专注于软件缺陷预测问题通过应用一些统计和机器学习技术。软件缺陷数据遭受类不平衡问题的偏态分布缺陷和无缺陷的软件模块7- - - - - -11]。主要是机器学习算法考虑相同分布的数据样本在每个类和假设每个类的误分类代价同样重要。然而,少数类样本数据的误分类代价高于多数类的样本数据在大多数情况下(12]。软件缺陷预测,预测缺陷的软件模块作为良品可以增加维护成本的和相反的情况下,无缺陷的模块被认为是缺陷包括不必要的测试活动。但后者比前者通常更容易接受。因此,本研究工作的目的是考虑到不同误分类的每个类成本的有效预测有缺陷的软件模块。
软件缺陷预测问题需要一个二进制分类器,因为它是一个两级分类的问题。近年来,许多非平行超平面支持向量机(SVM)分类器被研究者提出的二元分类(13- - - - - -15]。例如,Mangasarian和野生提出了一个广义特征值近端支持向量机(GEPSVM),这是第一个不平行超平面分类器,它的目标是找到一双不平行超平面,这样每一个超平面最近的两个类和尽可能从其他类(16]。GEPSVM显示性能优良和几个基准数据集尤其是“Cross-Planes”数据集。之后,利用传统的SVM和GEPSVM的概念,Jayadeva等人提出了一种基于非平行超平面的新颖的二元分类器,称为TWSVM [13]。TWSVM已经显示出更好的性能比支持向量机(SVM)和其他分类器不仅预测准确性方面还的时间13,14]。均匀分布的类,TWSVM的训练过程是支持向量机的四倍,因为它解决了两个较小的二次规划问题(QPPs)而不是一个复杂的QPP SVM。TWSVM寻求两个非平行超平面一个用于每一个类,这样每一个超平面内仍密切关联的相应的类时尽可能从其他类。尽管TWSVM分类器比传统的支持向量机,但它需要解决的两个QPPs这是一个复杂的过程。因此,Arun Kumar和Gopal提出了一个二元分类器被称为最小二乘双子支持向量机(LSTSVM),解决了两个线性方程而不是两QPPs TWSVM [17]。它是双胞胎的变异最小平方支持向量机(TWSVM)。LSTSVM显示其有效性在TWSVM而言更好的泛化能力和较小的计算时间。因此,本研究采用了LSTSVM分类器在软件缺陷预测模块。本研究以误分类考虑成本问题,提出了一种加权最小二乘双子支持向量机分类器来开发一个软件缺陷预测系统,认为误分类代价为每个类。实验八软件缺陷预测数据集来自承诺库证明我们提出系统的优越性在现有方法,包括支持向量机(SVM),敏感的神经网络(CBNN),加权朴素贝叶斯(NB),随机森林(RF),逻辑回归(LR),最近的邻居(神经网络),贝叶斯信念网络(BBN), C4.5决策树,最小二乘双子支持向量机(LSTSVM)。提出了软件缺陷预测系统的有效性也被进行了分析通过使用非参数魏克森讯号等级假设测试。统计推断是由观察到的不同几何平均数。
本文分为五个部分。部分2总结了相关工作领域的软件缺陷预测和类不平衡学习。部分3讨论了拟议的软件缺陷预测方法。提出了实验的结果和讨论部分4并在部分得出结论5。
2。相关工作
2.1。类不平衡学习
在数据分布不平衡,一个类包含大量的数据样本(多数类)比其他类(少数类)。传统分类算法假设之间均衡分布样本数据类。失衡的程度不同的问题领域到另一个和正确的类的预测数据样本在一个不同寻常的阶级比相反的情况更重要。在软件缺陷预测问题的情况下有缺陷的软件模块与无缺陷的软件模块。这种类型的问题,软件开发人员更加关注于正确的识别有缺陷的软件模块。未能识别出有缺陷的软件模块可以降低软件质量。因此,一个软件缺陷预测可能是有益的,如果它正确地认识到有缺陷的软件模块。
类不平衡学习是学习的过程不平衡数据集(18]。不平衡数据学习的挑战是不寻常的类不能平等注意学习算法相比,大多数类。不平衡数据集的学习算法生成特定的或失踪的分类规则不寻常的类(18- - - - - -20.]。这些规则对看不见的数据不能很好地推广,因此不适合未来的预测。
各种解决方案推荐的人员来处理类不平衡问题数据级别,算法层面上,和降低成本的解决方案。在数据层面的解决方案,培训数据操作类间平衡的分布数据为目的的整流类失衡的影响通过使用不同重采样技术,如随机采样过密,随机采样,击杀,告知欠采样,基于集群抽样20.- - - - - -27]。数据级解决方案更通用的性质,因为它们是独立的学习算法。在算法级解决方案,客观的学习算法修改他们的培训机制来实现更好的准确性少数类。看到下面成了一个学习方法如雷和开膛手是用来预测少数类的样本数据(28]。集成学习方法已经被研究人员使用不平衡数据的处理。在这种方法中,一组分类器被用于学习和他们的输出相结合,以预测新数据样本的类。增加,随机森林,演算法。数控,SMOTEBoost等等是集成学习方法的例子(29日]。厂商学习方法考虑不同误分类代价为不同的类,这样少数类样本数据的重要性。厂商厂商厂商决策树,神经网络,提高Adacost等方法研究人员提出的一些方法来处理类不平衡学习问题(30.- - - - - -33]。成本函数也被结合支持向量机和贝叶斯分类器。
2.2。软件缺陷预测
研究者极大的兴趣在使用统计软件缺陷预测问题和机器学习算法,如神经网络,支持向量机,朴素贝叶斯、随机森林,基于案例推理、逻辑回归,关联规则挖掘34- - - - - -40]。k . o .所知和m . o .所知研究支持向量机预测的能力有缺陷的软件模块和分析其性能对一些统计和机器学习方法四NASA的数据集37]。Czibula等人开发了一个系统来识别缺陷的软件模块使用关系的关联规则挖掘关联规则的延伸(38]。关联规则是用来确定不同类型的缺陷预测指标之间的关系。Challagulla等人有各种机器学习方法的性能进行了评价和统计模型在四个软件缺陷预测数据集来自NASA库预测软件质量(41]。从实验中,分析了1法则相结合的分类和基于实例学习公司一致性子集评价方法实现最高的缺陷预测精度比其他方法。郭等人提出了随机森林,这是决策树的延伸,对于识别缺陷的软件模块(39]。他们表现实验五个案例研究基于NASA的数据集,将他们提出的方法的性能与WEKA的统计和机器学习方法和机器学习See5包。他们得出的结论是,随机森林算法产生了更高的缺陷预测率比其他方法。Moeyersoms等人使用数据挖掘方法如随机森林,支持向量回归,C4.5和回归树(42]。他们有执行规则提取技术应用于提高精度方面的规则集,忠诚,和回忆。Okutan和Yıldız开发了一个软件缺陷预测模型,利用贝叶斯网络(43]。这个模型决定了软件度量的概率有影响力的关系与defect-prone软件模块。贝叶斯网络是一种应用最广泛的方法来分析面向对象度量的缺陷数量的影响(43- - - - - -48]。Pai和Dugan KC1实验项目执行从NASA库使用贝叶斯网络(47]。芬顿等人使用贝叶斯网络预测缺陷,软件系统的质量和风险(48]。他们分析了影响信息的变量,比如测试有效性和缺陷出现在目标变量缺陷检测。Catal和Diri调查数据集大小的影响,指标和特征选择的预测上有缺陷的软件模块(49]。他们已经进行了五个数据集实验和分析,随机森林(RF)的算法获得了更好的性能在大型数据集朴素贝叶斯的表现要好于小数据集相比,RF。再次他们利用人工免疫系统(AIS)算法分析指标集的影响。人工免疫识别系统(AIRS2Parallel)表现得更好的方法级指标Immunos2算法与类级指标显示了更好的结果。他们发现软件缺陷预测的算法组件更重要比度量套件。除了这些基本的分类方法,一些优化方法,如遗传算法、粒子群优化(PSO),和蚁群优化(ACO)也被应用到软件缺陷预测问题50- - - - - -52]。
不平衡分布的缺陷和无缺陷的软件模块导致表现不佳的机器学习方法。类之间的平衡数据样本的分布,不同的解决方案,比如过采样和采样方法已被研究人员应用。asrar和厂商提出了一种基于神经网络的缺陷预测系统与客观处理类不平衡问题(53]。人工蜂群算法用于寻找最优权重。他们一直在调查他们的建议的方法的性能五公开可用的数据集来自NASA库。郑认为不同误分类代价和厂商开发了一个软件缺陷预测模型通过提高神经网络(8]。Khoshgoftaar和高数据采样和特征选择的影响研究软件缺陷预测数据集(10,54]。他们使用基于包装器的特征选择方法选择相关特性和随机采样,减少负面影响的不平衡数据软件缺陷预测模型的性能。小王和姚明进行不平衡数据的影响学习软件缺陷预测模型(7]。他们在十公开可用的身上进行实验数据集从承诺库与不同类型的类不平衡重采样等学习方法,整体的方法,和阈值。从实验中,发现演算法。数控显示比其他方法更好的性能。京等人使用字典学习方法,提出了一个敏感的区别的字典学习(CDDL)为基础的软件缺陷预测模型。他们的性能分析模型在十NASA数据集(55]。
除了这些研究,各种研究已经完成使用数据挖掘技术在预测软件缺陷。研究人员还分析了指标识别defect-prone软件模块的影响。他们关注的是相关的度量标准的选择这是有用的缺陷预测(52,56- - - - - -62年]。从文学,我们分析了数据挖掘在预测软件缺陷中扮演着至关重要的作用。用于缺陷预测的数据集是高度不平衡在本质上是有缺陷的软件模块的数量通常是低于无缺陷的软件模块。因此,本研究工作的重点是失衡的性质软件缺陷预测数据集以得到有效的结果。
3所示。加权最小二乘双子支持向量机
只有很少有研究认为有缺陷的误分类成本和无缺陷的软件模块。本研究工作使用加权最小二乘法双子支持向量机(WLSTSVM)开发有效的软件缺陷预测模型不同误分类代价或重量分配给每个类根据样本分布。让训练数据集包含”“数据样本,在那里,表示特征向量代表相应的类标签。假设1类和2类的大小和相应的,。让矩阵和包括数据的样本类1和2班,分别。适当的选择考虑的成本是一个重要的问题。每个类的重量或误分类代价决定按照下列公式: 以下的结论可以从上述公式:(1)成本是0到1的范围内,也就是说,这样可以训练分类器融合。(2)成本是归一化不失一般性。(3)降低误分类成本分配给大多数类虽然少数类接收更高的误分类代价。线性和非线性WLSTSVM分类器是制定如下。
3.1。线性WLSTSVM
最小二乘双子支持向量机(LSTSVM), Arun Kumar和Gopal,提出的是一个二元分类器,分类两类的样本数据为每个类生成超平面(17]。超平面构造在这样一种方式,每个类的样本数据在相应的近距离超平面,同时保持清晰的分离超平面。对于每一个新的数据样本,从每一个超平面距离计算和数据样本分配到类位于接近它。加权最小二乘法得到双子支持向量机通过增加体重或误分类代价LSTSVM根据公式(1)。线性WLSTSVM解决以下两个目标函数: 确定以下两个非平行超平面: 在这里,和两个超平面的法向量和吗和是偏见。和代表非负惩罚参数。和1的向量和吗,是松弛变量。和代表了对角矩阵包含数据样本的误分类代价类2类1,分别根据(1)。第一项中所示的目标函数(2)措施的平方之和的距离数据的样本类1。它使的最小化在近距离超平面类1。第二项目标函数最小化的误分类错误的样本数据类2。因此,以这种方式保持超平面附近的样本数据类1和尽可能的从数据样本的类2。相对应的拉格朗日函数(2)是由 在这里,是拉格朗日乘数。后Karush-Kuhn-Tucker(马)必要且充分的最优性条件是由微分(5)对,,,: 方程(6)和(7)导致 让,,。有了这些符号,(10)可以写成 上述方程的解决方案需要逆。然而,有时它是不可能确定它由于坏心肠的矩阵的逆。为了避免这种情况,一个正则化项可以添加到吗。在这里,和是一个单位矩阵的合适的尺寸。方程(11)可以写成 拉格朗日乘数是由(8),(9)和(11), 同样,拉格朗日函数(3)获得 在这里,是拉格朗日乘数。相对应的超平面参数二班获得了通过求解上述方程(14), 超平面参数获得使用(11)和(15进一步用于确定非平行超平面),每个类。一个类被分配给新的数据样本根据飞机接近它。类评价的决策函数被定义为
算法1。(1)为每个类定义权重矩阵(缺陷或良品)使用(1)。(2)获取矩阵和在矩阵和软件模块组成的缺陷和无缺陷的类,反之亦然。(3)选择惩罚参数验证的基础上。(4)确定超平面参数使用(12)和(15),进一步用于确定每个类的超平面。(5)新软件模块的类(它是有缺陷的或不)是由使用决策函数所提到的(17)。
3.2。非线性WLSTSVM
非线性WLSTSVM获得通过使用内核的把戏。核函数将数据样本映射到高维特征空间,使更容易分离。WLSTSVM分类器生成以下内核空间,而不是超平面的表面: 在这里,””是一个适当的内核函数和选择。非线性WLSTSVM构造分类器 让和。内核生成的表面获得的参数 这些参数生成内核表面和分配给新的数据样本的类是根据其内核表面的距离。被定义为的决策函数 非线性WLSTSVM分类器的算法类似于线性WLSTSVM分类器除了需要选择一个核函数。核函数将样本数据转换为高维特征空间,然后内核生成表面参数计算使用(20.)和(22)。分配给新的数据样本的类是使用(24)。
4所示。数值实验
4.1。数据集描述和性能度量
在这项研究中,我们已经完成了八个实验基准数据集来自承诺库(63年]。这些数据集是NASA MDP的软件项目开发的C / c++语言飞船仪表,卫星飞行控制,科学数据处理和地面数据的存储管理。每个数据集的详细描述在表1。
不平衡比率代表的比例多数类(无缺陷的软件模块)与少数类(有缺陷的软件模块的数量)。很明显,软件缺陷预测数据集在本质上是不平衡的,有缺陷的软件模块的数量少而无缺陷的软件模块的数量。21岁的简要描述常见的基本软件度量从四十指标选择等八个缺陷预测数据集行代码,圈复杂度,体积,困难,还提供了一些操作符和操作数在表2。更详细的描述关于NASA的其他指标或信息数据集可以从[获得63年]。
绩效评估模型,提出了软件缺陷预测系统如图1。
真正的预测(真阳性(TP)或真阴性(TN))是指数量的软件模块正确地预测良品或有缺陷的软件模块。而错误的预测(假阳性(FP)或假阴性(FN))显示软件模块的数量是错误地认为是有缺陷的或无缺陷的软件模块。提出的软件缺陷预测模型的性能评估使用几何平均。几何平均数(提出的意思)是一个绩效评估指标库巴特和Matwin二进制类分类问题(64年]。它通常是用来评估分类器在数据分布不平衡情况下的性能。它措施平衡性能的软件缺陷预测方法。的意思是通过几何平均数计算的敏感性和特异性,如下所示: 敏感性或召回和特异性被定义为 我们也提出了软件缺陷的性能相比使用精度和预测定义为测量
4.2。参数选择
拟议中的WLSTSVM标识符用于软件预测有两个点球参数和。在本研究中,我们分析了惩罚参数对性能的影响提出了系统用于问题(13)和(16)。分类器的性能会影响这些参数的选择。本研究利用网格搜索方法为最优参数选择。惩罚参数选择从以下范围:,。图2显示了这些参数的影响意味着KC1提出软件缺陷预测系统,KC2 CM1, PC4数据集。从图中,很明显,该系统显示更好的性能在高价值和参数(,,KC2数据集。CM1数据集,该系统实现了几何平均的最高价值高的价值和低的价值参数(,)。KC1数据集,WLSTSVM收益最高的价值高的几何平均数和参数(,,)。另一方面,对于KC1数据集,提出了缺陷预测得到更好的价值较低的几何平均数和参数(,,)。这是观察到的这些参数的影响意思是不同的每个数据集和适当的选择这些参数可以提高软件缺陷预测系统的性能在很大程度上。因此,有必要适当的结合其他数据集也因此这些参数的软件缺陷预测系统可以实现更好的预测性能。
(一)KC2
(b) CM1
(c) KC1
(d) PC4
4.3。结果比较和讨论
提出了软件缺陷预测的性能与现有方法相比,包括支持向量机(SVM),敏感的神经网络(CBNN),加权朴素贝叶斯(NB),随机森林(RF),逻辑回归(LR),最近的邻居(神经网络),贝叶斯信念网络(BBN), C4.5决策树,最小二乘双子支持向量机(LSTSVM)。所有这些方法都是在MATLAB中实现R2012a Windows 7系统与英特尔酷睿处理器(3.4 GHz)我12 gb RAM。实验是由使用10倍交叉验证方法中,每个数据集随机分为十个相等大小的子集。每次九子集作为训练数据集的学习和剩下的一个子集是用作测试数据评价的缺陷预测系统。这个过程被重复十次,然后每个十子集用于训练和测试数据。最后的缺陷预测系统的性能估计的平均10倍的结果。表3- - - - - -7显示性能比较方面的敏感性,特异性,精度,测量和几何平均(的意思)我们建议的方法与其他现有方法的指标8日软件缺陷预测数据集。
结果包括的敏感性,特异性,精度,测量和几何平均的10倍。在表中3- - - - - -7,我们已经提到了每种方法的最佳性能。大胆的数据显示更好的预测每个数据集的分类器的性能。从表3,很明显,提出基于WLSTSVM软件缺陷预测获得最高灵敏度CM1, PC1, PC4, MC2, KC2数据集。与CM1 WLSTSVM收益最高的精度值,PC1,生物,PC4, MC2数据集。提出的缺陷预测达到最高测量7 8数据如表所示6。从实验结果可以看出该软件缺陷预测获得更好意味着在CM1、KC1 PC1 MC2, KC2, KC3软件缺陷预测数据集。降低成本的提高神经网络收益最高的方案意味着生物软件缺陷预测数据集,而支持向量机显示更好意味着PC4缺陷预测数据集。因此,我们可以得出结论,WLSTSVM预测是一种有效的软件保障,其性能比其他四种方法对6 8数据集在每种情况下。
4.4。软件缺陷预测的统计比较
结果实验结果支持Wilcoxon烧焦的排名是一种非参数统计假设的方法。魏克森讯号等级测试执行成对比较两种方法用于软件缺陷预测和分析他们的表演在每个数据集之间的差异(65年- - - - - -67年]。分配下来的排名是根据他们的绝对差异值从最小到最大和平均排名的关系。魏克森讯号商店排名排在的总和和在哪里存储的数据集的秩和WLSTSVM分类器显示在其他分类器和更好的性能商店的秩和相反。它决定是否一个假设的软件缺陷预测比较可能被拒绝在指定的显著性水平α。的值也比较计算为每个显示意义的最低水平的假设导致拒绝。通过这种方式,它可以确定两个软件缺陷预测显著不同的或相同的。如果不同,这也决定了他们是如何的不同。为了进行魏克森讯号等级测试,我们已经进行两两比较的软件缺陷预测的性能WLSTSVM是相对于其他的方法。排名和值计算。统计推断是由观察到的差异在几何平均数计算的平衡性能分类器在不平衡学习的场景。从魏克森讯号等级获得测试结果如表所示8。从表中观察到的值小于0.05在所有的情况下;即提出软件缺陷预测优于所有高度的信心在每种情况下。
5。结论
类不平衡问题经常发生在软件工程和其他真实世界的应用程序的性能恶化的机器学习方法,因为他们考虑的均等分配数据样本类间和假设每个类的误分类代价同样重要。至关重要的误分类代价合并到软件缺陷预测模型有缺陷的软件模块的错误分类会带来更高的成本比良品的误分类。因此,在这项研究中,我们已经开发了一个软件缺陷预测系统通过使用加权最小二乘法双子支持向量机(WLSTSVM)。在这种方法中误分类成本分配给每个类的软件模块为了补偿不平衡数据的负面影响软件缺陷预测的性能。提出WLSTSVM分类器的性能与九算法相比在八软件缺陷预测数据集。实验结果证明我们的方法的有效性,对软件缺陷预测任务。这项研究还执行的统计分析每个分类器的性能通过魏克森讯号等级测试。测试表明,WLSTSVM之间的区别和比较方法是显著的。
参数的选择是一个重要的问题需要解决在未来,因为他们在一定程度上影响预测结果。选择相关的功能是另一个值得关注的问题,应该执行改善软件缺陷预测系统的性能。
利益冲突
作者宣称他们没有利益冲突有关的出版。