没有合适的资源?快使用搜索试试~ 我知道了~
沙特国王大学沙特国王大学学报www.ksu.edu.sawww.sciencedirect.com沙特国王大学学报审查开源项目中故障预测分类算法的实证评估Arvinder Kaur,Inderpreet Kaur*部门:CSE/IT,信息和通信技术大学学院,Guru Gobind Singh Indraprastha大学,Dwarka,新德里110078,印度接收日期:2015年9月23日;修订日期:2016年3月17日;接受日期:2016年2016年4月23日在线发布随着开发软件的规模和复杂性越来越高,创建高质量的软件变得越来越困难。在早期阶段预测软件的质量有助于减少测试资源。各种统计和机器学习技术用于软件质量的预测。在本文中,六个机器学习模型已被用于五个开源软件的软件质量预测对CK、Henderson Sellers、McCabe等软件的各种度量方法进行了评价,结果表明随机森林和Bagging方法的预测效果较好,而朴素贝叶斯方法的预测效果较差。©2016作者。制作和主办由爱思唯尔B.V.代表沙特国王大学。这是CC BY-NC-ND许可下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。内容1.介绍32.相关工作43.研究方法53.1.经验数据收集63.2.评价结果64.模型评估64.1.数值性能评价指数64.1.1.准确度64.1.2.灵敏度、特异性和精密度74.1.3.G均值、F测度和J系数7*通讯作者。电子邮件地址:arvinderkaurtakkar@yahoo.com(A. Kaur),gmail.com(I. Kaur)。沙特国王大学负责同行审查http://dx.doi.org/10.1016/j.jksuci.2016.04.0021319-1578© 2016作者制作和主办由爱思唯尔B.V.代表沙特国王大学。 这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。制作和主办:Elsevier关键词(c)故障预测;接收机工作特性分析机器学习;Nimenyi检验故障预报分类算法的评价34.2.图解法74.2.1.ROC曲线74.2.2.Precision–Recall4.2.3.成本曲线104.2.4.电梯图104.3.模型统计比较105.实验结果115.1.PMD 125.2.查找错误125.3.艾玛135.4.Trove 145.5.Java博士146.结论. 15引用161. 介绍在有限的质量保证预算下构建高质量的软件变得非常困难。目前,各种软件预测模型被用来从软件度量中学习故障预测器.在软件发布之前进行软件故障预测有助于验证和确认活动,并将有限的资源分配给预测容易出现故障的模块。早期和准确的故障预测是减少测试工作的一种更好的方法。Mahanti和Antony在2005年的一项研究表明,软件公司将其软件开发工作的50%-80%用于如果故障倾向的模块是已知的提前,审查,分析和测试工作可以集中在这些模块上。早期发现软件生命周期中的易故障模块已成为故障预测的重要目标之一,因为故障检测越早,纠正它的成本就越低。Boehm和Papaccio建议在生命周期的早期修复故障使用软件质量模型可以确保交付产品的可靠性。使用各种分类器进行软件质量估计,其中输入是一些度量,输出是质量属性。对这些分类器的实证研究有助于判断正在开发的软件的质量。已经提出了各种技术来处理缺陷预测,这些技术包括通过根据先前开发的项目(Schneidewind,1992)从数据导出的分类模型,将由一组软件度量或代码属性表示的模块分类为容易出错和不容易出错。代码行,复杂性)(Li和Henry,1993; Chidamber和Kemerer,1994;Lorenz和Kidd,1994;McCabe 和 Associates , 1994;Basili 等 人 ,1996;Henderson-Sellers , 1996; Ohlsson 和 Alberg , 1996;Briand等人,1999; El Emam等人,2001 a,b,c;Gyimothy等人,2005; Aggarwal等人,2006; Nagappan和Ball,2005;Nagappan等人,2006)、过程度量(例如,变化数量,近期活动)(Hassan,2009; Moser等人,2008; Bernstien等人,2007)或先前的缺陷(Kim等人,2007; Ostrand等人,2005年; Hassan和Holt,2005年)。关于这些方法的相对性能的决定仍然是未知的。他们中的大多数已经被评判过了,只有少数几种方法。此外,评价的很大一部分无法复制,因为用于它们的评价来自商业系统,不供公众使用。在某些情况下,研究人员得出了不同的结论:例如,在尺寸指标的情况下,Gyimothy等人报告了良好的结果(2005),而不是Fenton和Ohlsson的发现(2000)。各种类型的分类器已被应用于这一任务,包括统计程序(Basili等人,1996年;Khoshgoftaar和Seliya,2004年),基于树的方法(Selby和Porter,1988年; Porter和Selby,1990 年 ; Khoshgoftaar例 如 , 2000; Guo 等 人 , 2004;Menzies等人,2004),神经网络(Khoshgoftaar等人,1995; Khoshgoftaar 等 人 , 1997 ) 和 基 于 类 比 的 方 法(Khoshgoftaar等人,2000; ElEmam等人,2001 a,b,c;Khoshgoftaar and Seliya,2003).然而,如在(Myrtveit和Stensrud,1999; Shepperd和Kadoda,2001; Myrtveit等人,2005)关于一种方法优于另一种方法或基于度量的分类的有用性的结果在不同的研究中并不总是一致的。因此,“在我们对软件预测模型的比较研究结论有信心之前,需要开发更可靠的研究程序“(Myrtveit等人, 2005年)。各种分类算法已应用于各种数据集。不同的实验设置结果限制了理解分类器的优点和缺点的能力。如果建模技术能够在所有或至少大部分情况下表现良好,那么它就是好的。为了简化模型比较,应考虑适当和一致的性能指标。评价各种方法的绩效有待讨论。虽然有些人使用二进制分类(即,预测给定的实体是否是有缺陷的),其他人则通过对具有最多缺陷的组件进行优先级排序来预测。本文采用二分类技术,根据ROC曲线、提升图和其它统计参数对二分类技术进行了评价。本 工 作 中 使 用 的 数 据 集 是 开 源 Java 项 目 : PMD ,EMMA,Find Bugs,Trove和Dr Java。开源项目不同于工业项目。开源软件是研究的首选,因为可以比较这些软件的结果,并可以进行重复验证。开源项目培养了更多的创造力,并且缺陷更少,因为缺陷可以快速发现和修复。(Paulson等人, 2004年)。在本文中,六个著名的分类算法已被使用,所选择的分类器是随机森林,朴素4A.考尔岛Kaur贝叶斯、Bagging、J48、逻辑回归和IB1。选择这六种分类器用于当前研究,因为之前的研究表明,这些分类器在软件故障预测中提供了优于平均值的性能(Menzies等人,2007 a,b; Jiang等人,2008年)。许多研究使用了不充分的性能指标,这些指标没有显示出足够的细节水平以供将来进行比较。因此,本文件的目标包括:1. 比较开放源代码软件上的故障预测模型,(i)性能指标包括准确度、灵敏度、特异性、精密度、G均值、F测量、J系数。(ii)图形方法包括ROC曲线、精确召回率曲线、成本曲线和提升图。(iii)非参数Freidman检验,随后是事后Nimenyi检验。2. 将开源软件项目的结果与工业数据集进行比较。本文的组织如下:第2节介绍了相关工作的概述。第3节描述了研究方法以及用于类筛选器选择的数据集和指标。第4节介绍了模型评价技术,包括数值性能指标的比较、图形评价技术和进行的统计检验。第5节包括对本工作中采集的每个数据集进行的分析。第6节讨论了选择最佳模型的准则,第7节给出了结论。2. 相关工作Basili等人(1996年)发现,几个(Chidamber和Kemerer,1994年)的指标与故障倾向的基础上,八个中等规模的系统,由学生开发的研究。Tang 等 人 (1999 ) 分 析 了 ( Chidamber 和 Kemerer ,1994)C++开发的三个工业应用程序的OO度量套件。他们发现,除了RFC和WMC之外,所检查的指标都不重要。Briand等人(2000)已经提取了49个度量来识别用于预测类的故障倾向性的合适模型。所研究的系统是一个由本科/研究生开发的中型C++软件系统。有8个系统正在研究中,共180班。他们使用单变量和多变量分析来发现OO指标和故障倾向的单独和组合影响。结果表明,除NOC(发现其与故障倾向性呈反比关系)外,所有指标都是故障倾向性的重要预测因子。ElEmam等人,2001a,b,c检查了一个用C++开发的大型编译应用程序,发现类大小也就是说,Sign对故障具有大多数OO度量的混淆效果。Briand和Wust(2001)的另一项研究使用了一个由83个班级组成的商业系统他们发现,DIT指标与故障倾向性呈反比,NOC符合-Ric是错误倾向的一个不显著的预测因素Yu等人(2002)选择了八个指标,并研究了这些指标与错误倾向之间的关系。本课题系统是由三位专业软件工程师开发的大型网络服务管理系统的客户端。它是用Java编写的,由123个类和大约34,000行代码组成。首先,他们检查了指标之间的相关性,发现了四个高度相关的子集。然后,他们使用单变量分析来找出哪些度量可以检测到故障,以及Khoshgoftaar和Seliya(2004)在他们的实验中表明,如果当前正在开发的模块与在相同环境中早期开发或发布的软件度量测量的故障模块具有相似或相同的特征,则该模块可能容易发生故障因此,历史数据指导我们预测故障倾向。Lessmann等人(2008年)在他们的研究中提出了一个比较软件缺陷预测实验的框架,该框架应用于NASA MDP的10个数据集上的22个分类器的大规模实证比较。观察到合理程度的预测准确性,因此支持基于度量的分类是有用的观点此外,在前17名分类者之间没有发现显著的表现差异。Malhotra和Jain(2012)使用逻辑回归方法研究了面向对象度量与故障倾向之间的关系。使用受试者工作特征(ROC)分析,并基于ROC评估预测模型的性能在其他研究Malhotra(2014)中,使用逻辑回归得出的统计模型计算面向对象、Chidamber和Kemerer指标的阈值使用阈值,他们在各种风险水平下显示了阈值效应,并使用各种机器学习方法和数据挖掘分类器验证了这些阈值在公共领域专有数据集(从NASA获得的KC 1)和两个开源promise数据集(IVY和JEdit)上的使用。还在三个不同的开源数据集Ant、Tomcat和Sakura上进行了项目间验证。他们的研究结果显示,拟议的门槛方法适用于性质类似或具有类似特点的项目。Okutan和Yildiz(2012)使用贝叶斯网络来确定软件度量和缺陷倾向之间的概率关系。除了Promise数据存储库中使用的指标之外,他们还使用了另外两个指标,开发人员数量(NOD)和源代码质量(LOCQ)。他们使用了9个开源Promise数据存储库数据集。他们的研究结果表明,类响 应 ( RFC ) 、 代 码 行 数 ( WMC ) 和 缺 乏 编 码 质 量(LOCQ)是最有效的度量标准,而耦合对象(CBO)、类加权方法(WMC)和缺乏方法内聚(LCOM)是缺陷倾向性的较不有效的度量标准。他们的工作和我们的工作之间的区别在于,他们的研究应用于工业数据集,而我们的工作应用于开源项目。这项比较研究将有助于确定从工业数据集获得的结果是否适用于开源数据集,或者开源项目是否会产生不同的结果。开源项目是在与工业数据集完全不同的环境中开发的。任何人都可以查看、编辑或与其他项目共享开源代码,而工业数据集造成了这一限制。遇到的bug很好故障预报分类算法的评价5表1项目说明。项目总数故障故障描述类类(%)PMD1046057.7编程错误检测器,PMD错误不是真正的错误,而是无效的错误代码找到2268939.4Find Bugs是由Bill Pugh和David Hovemeyer创建的一个开源程序,虫子查找Java代码艾玛1046158.65EMMA是一个用于测量和报告Java代码覆盖率的开源工具包宝库250104.00Trove为Java Collections API的一部分提供了免费的实现JAVA博士4058120Java博士是一个轻量级的Java编程环境,旨在促进测试驱动软件开发在开源项目以及工业项目中进行跟踪,但在工业数据集中不会对公众可用(Paulson等人, 2004年)。Yeresime等人(2014年)研究了线性回归、逻辑回归和人工神经网络方法在CK指标上的软件故障预测中的应用。在此,将断层视为因变量,CK度量集视为独立变量.这些统计模型应用于Apache集成框架(AIF)1.6版的案例研究。结果表明,加权类方法(WMC)度量对故障分类具有重要意义,径向基函数网络的混合方法与其他三种神经网络模型相比,具有更好的故障预测率。Jiang等人(2008)进行的研究使用NASA MDP工业数据集KC 1,KC 2,KC 4,JM 1,PC 1,PC 5,CM 1和MC2来评估给定分类器模型中的最佳模型他们的研究是基于性能指标的比较、图形评价和模型选择的统计检验。本文遵循Jiang等人使用的数据分析框架,并支持Jiang等人(2008)进行的研究。他们的工作和我们的工作之间的区别在于,他们的研究应用于工业数据集,而我们的工作应用于开源项目。这项比较研究将有助于确定从工业数据集获得的结果是否适用于开源数据集,或者开源项目是否会产生不同的结果。开源项目是在与工业数据集完全不同的环境中开发的。任何人都可以查看,编辑或比较开源代码与其他项目,而工业数据集造成了这一限制。在开源项目和工业专业中,遇到的错误得到了很好的跟踪,但在工业数据集中不会向公众提供(Paulson等人, 2004年)。3. 研究方法故障倾向性被定义为类中故障检测的概率(Briand等人,2000; Pai,2007; Aggarwal等人, 2009年)。开源Java项目已经被用于这项工作。开源软件是免费提供的软件,因此可以比较这些软件的结果,并可以重复验证。表2描述。度量 描述WMC每个类的加权方法(NOM:QMOOD度量套件中的方法数量)DIT继承树NOC一个班级的孩子数RFC对象类之间的耦合方法缺乏凝聚力源C K CK C KC KLCOM 3 LCOM方法缺乏内聚性是Chidamber和Kemerer的Henderson-Sellers的规范化版本LCOM度量及其值在0和2之间变化IC继承耦合CBM方法之间的耦合AMC平均方法复杂度NPM类的公共方法数(也称为CIS:类接口大小)数据访问度量MFA函数抽象CAM度量CC类方法间的内聚度圈复杂代码行Ca A异质耦合Ce E异质耦合面向质量的C语言扩展&安培K公制套件C amp K度量集C amp K度量集QMOODQMOODQMOODQMOODMcCabe6A.考尔岛Kaur为了深入了解最佳分类器的选择,选择应该基于所涉及的项目成本和特定的项目需求(Jiang等人,2008年)。怀卡托知识分析环境(Weka)已用于实施所选分类器。4. 模型评估形成了进行非参数统计Friedman检验,然后进行Nimenyi检验,以选择所有分类器中的最佳分类器。3.1. 经验数据收集本研究使用开源Java项目。他们的bug信息是从源伪造中收集的,其中bug跟踪器保持bug的状态(打开/关闭)。Source Forge致力于使开源项目取得成功。SourceForge.net由Geeknet Media拥有和运营,是Dice Holdings,Inc.的子公司。公司这些数据集是为开源Java项目制作的,包括(PMD),Find Bugs,EMMA,Trove和Dr Java。他们的错误是从SourceFORGE(一个开源错误跟踪器)收集的,没有错误的数据是从源代码java文件中收集的。使用这些java文件,使用CKJM工具计算各种指标,该工具为我们提供 了 包 括 WMC , DIT , NOC , RFC , CBO , LCOM ,LCOM3 , IC , CBM , AMC , NPM , DAM , MOA ,MFA,CC,CA,CE.表1列出了使用的项目及其说明。3.2. 经评估在这些数据集上测量了20个软件度量。所选择的度量标准是面向对象软件中最常用的度量标准。所有的C K指标和更多的指标,如Henderson-Sellers和QMOOD都被考虑在内。表2表示所使用的度量的描述。 CKJM扩展工具已被用于评估开源Java项目的指标在本文中,使用了六种著名的分类算法。选择的分类器是随机森林、朴素贝叶斯、Bagging、J48、逻辑回归和IB1。选择这六种分类器用于当前研究,因为之前的研究表明,这些分类器在软件故障预测中提供了优于平均水平的性能(Boehm和Papaccio,1988)。分类器的比较是基于性能指标、图形方法和统计测试。可见,任何一种措施都是不够的。所用模型乃根据数值表现指标(如准确度、敏感度、特异性、精密度、G-均值、F-测度及J_系数)进行比较。使用的图形评估技术包括ROC、精确召回(PR)曲线、提升图和成本曲线。需要进行统计测试,以从给定的分类器中选择最佳模型。需要对机器学习方法进行经验验证,以验证机器学习算法的潜力。从这些实证研究中收集的结果被认为是检验任何给定假设的有力支持4.1. 数值性能评价指标对最常用的业绩衡量标准进行了说明。本节提供了与其优缺点有关的信息。该等指数乃根据分类师所提供的混淆矩阵计算。混淆矩阵(Provost和Kohavi,1998)包含分类系统完成的实际和预测分类的信息。这种系统的性能通常使用矩阵中的数据进行评估。下表显示了两类分类器的混淆矩阵混淆矩阵中的条目在我们的研究背景a是一个实例的正确预测数,没有,b是一个实例的不正确预测数,积极的,c是一个实例的错误阴性和d是一个实例的正确预测数肯定的:第4.1.1. 精度准确性是正确预测总数的比例 它没有考虑数据分布和成本信息(Jiang等人,检测概率(PD)是正确识别的阳性病例的比例(Jiang et al.,2008年)(见表3)。表4项目的准确性和PD。分类器/项目PMD找到缺陷艾玛宝库爪哇博士Acc.PDAcc.PDAcc.PDAcc.PDAcc.PDLogistic回归0.770.830.640.480.740.630.990.900.800.16套袋0.680.750.850.800.740.580.970.600.810.26朴素贝叶斯0.640.880.620.240.630.160.700.900.460.95IB10.780.870.740.640.720.630.980.600.780.47J480.720.720.850.760.630.440.980.630.830.44随机森林0.730.730.880.800.770.671.000.900.820.41表3混淆矩阵。实际负积极预测负aC积极B●●●●故障预报分类算法的评价7¼¼¼-2PDω精度表4提供了五个项目的检测率的准确性和概率:PMD,FIND BUGS,EMMA,TROVE和Dr JAVA。从结果可以看出,最高的准确率其次是最低的检测率。这种较低的检测率意味着许多故障模块将被归类为无故障,这可能导致严重的故障。因此,不能仅依赖准确度衡量分类器的绩效。由于故障模块可能代表数据集中的少数模块,因此准确性度量可能提供错误的印象。4.1.2. 灵敏度、特异性和精密度召回率或真阳性率(TP)或灵敏度是正确识别的阳性病例( 故 障 模 块 ) 的 比 例 。 它 也 被 称 为 检 测 概 率 ( PD )(Jiang et al.,2008年)。产生低PD的技术是差的故障预测器。Specificity是正确识别的阴性情况(无故障模块)的比例。虚警概率(PF)是错误分类的阴性情况的比例(Jiang等人, 2008年)。So;PF ¼ 1-专属性:Specificity的低值将增加无故障模块的验证和确认,因为它们将被不正确地标记为故障,从而增加测试这些模块所精确度(P)是正确的预测阳性病例的比例(Jiang等人,2008年)。表5列出了本研究中采用的开源项目的这些值。在精确度、灵敏度和特异性之间总是存在折衷。由于灵敏度负责故障模块,而特异性将监控无故障模块,因此基于这些措施的预测模型的性能将是片面的。因此,仅基于这些措施的模型比较不能提供良好的评价故障预测。4.1.3. G-均值、F-测度和J_系数与准确度相比, 几何平均值(McCabe andAssociates,1994 ) 、 F 测 量 值 ( Kubat 等 人 , 1998 ) 和 J_coefficient(Lewis and Gale,1994)给出了更好的模型性能。定义了两个G-mean指数。G均值1是灵敏度和精密度乘积的平方根。G均值2是灵敏度和特异性乘积的平方根。在软件故障预测中,重要的是识别出更多的故障模块,这意味着需要高的检测概率。因此,如果两个分类器用相同或相似的PD进行预测,那么具有更高特异性的分类器将是首选。精度定义了预测故障模块中的实际故障模块pF-测量提供了更好的可扩展性,其中包括权重因子b。该权重因子有助于操纵分配给PD和精度的成本因子b可以具有任何非负值。将其设置为1可使PD和精度的权重相等b的值越高,分配给PD的权重越高。Youden(1950)提出用J_coeff来评价医学模型。El-Emam首先使用它来比较分类器(El El Emam等人, 2001年a、b、c)。 当J_coeff为0时,PD PF,所以这些分类器没有多大帮助。 当J coeff> 0,PD> PF,这意味着分类器是好的。因此,如果J系数1、完美的经典--而J系数1表示坏的情况。表6列出了 采取的三项措施。这三个指标都优于精度指标。一个能够检测到更多易出错模块的模型是好的。当项目预算较低时,具有较低误报率的少量易出错模块将是可取的。在这种情况下,G-均值、J_coeff和F-测度的不变性将有助于更好地进行性能评估。这些措施在评估软件故障预测模型时是优选的,因为错误分类易故障模块的成本高于将其错误分类为非易故障模块的成本,这意味着在验证活动中会浪费一些资源。4.2. 图形方法可用于性能评估的不同图形方法包括:● 受试者工作特征(ROC)曲线● 精确度和召回率曲线● 成本曲线● 电梯图。研究表明,成本曲线在软件工程文献中是新颖的。所有这些图都是从混淆矩阵导出的。ROC和Lift图密切相关(Ling和Li,1998)。每条曲线都描绘了分类性能的不同视图。4.2.1. ROC曲线ROC是由PF、PD对形成的曲线。这是一种比数字指数更普遍的分类器性能测量方法(Yousef等人, 2004年)。它提供了PD和PF之间的更好ROC曲线下面积(AUC)通常用于性能评估。整个区域是不感兴趣的,例如,PD低的区域或PF高的区域,并且具有高PF和低PD的区域是性能差的指示器。只有具有低PF和高PD的区域才可能对分类器性能产生一定影响。ROC分析的优点是其稳健性对不平衡的阶级分布和变化和对称,G-平均值2¼pPDωSpecificity精密度ωPDðiiÞ计量错误分类成本(Yousef等人,2004年)。因此,它特别 适 合 于 自 然 表 现 出 这 些 特 征 的 软 件 缺 陷 预 测 任 务(KhoshgoftaarF测量值¼b2ω精密双稳态PD滤波器和Seliya,2004; Menzies等人,2007年a、b)。对比不同-对于不同的分类器,其各自的ROC曲线以ROCJ系数/灵敏度/特异性-11/4PD-1特异性公司简介拉伊维耶空间 图 1提供了三个分类器C1,C2,和C3。C1是一个主要的分类器,因为它的ROC曲线总是高于竞争对手,即,它对于所有FP速率都实现了更高的TP速率。G均值1¼阿比什表6项目三项措施的价值。分类器/PMD查找错误艾玛宝库JAVA博士表5采集数据集的灵敏度、特异性和精密度值。分类器/项目PMD找到缺陷艾玛宝库爪哇博士灵敏度规格精度灵敏度规格精度灵敏度规格精度灵敏度规格精度灵敏度规格精度Logistic回归0.830.680.780.480.800.700.630.820.710.901.000.900.160.960.50套袋0.750.590.710.800.890.830.580.850.740.600.990.670.260.950.58朴素贝叶斯0.880.320.640.240.870.540.160.970.780.900.700.110.950.340.26IB10.870.660.780.640.810.690.630.790.680.600.990.750.470.860.46J480.720.730.780.760.910.850.440.750.560.631.000.830.440.930.61随机森林0.730.730.790.800.930.890.670.840.740.901.001.000.410.930.58项目G均值1G均值2F-measureG均值1G均值2F-measureG均值1G均值2F-measureG均值1G均值2F-measureG均值1G均值2F-measureLogistic回归0.810.750.810.580.620.570.670.720.670.90.950.900.280.390.24套袋0.730.660.730.810.840.810.650.700.650.630.770.630.380.490.36朴素贝叶斯0.750.530.740.360.460.330.350.390.270.310.790.190.490.570.41IB10.820.760.820.660.720.660.650.710.650.670.770.670.460.640.46J480.750.720.750.800.830.800.490.570.490.720.790.630.520.640.51随机0.760.730.760.840.860.840.700.750.710.950.950.950.490.620.48森林8A.考尔岛Kaur故障预报分类算法的评价9图1 PMD中使用的分类器的ROC。图4使用Logistic查找bug的成本曲线图2Find Bugs中的查全率曲线。图3使用随机森林查找bug的成本曲线。AUC有可能显著提高软件缺陷预测中经验实验的收敛性,因为它将预测性能与操作条件分开,即,类和成本分布,因此代表了预测性的一般措施。考虑到Menzies等人的讨论,这种一般指标在比较实验中的重要性得到了加强。的论文(Menzies等人,2007a,b)。讨论了他们的模型的准确性是否足以用于实际应用,以及方法A是否优于方法B(Menzies等人,2007年a、b)。此外,AUC具有明确的统计解释:它测量分类器将随机选择的fp模块排名高于随机选择的nfp模块的概率,这相当于排名El Emam例 如 ,2001年c。因此,任何达到AUC远高于0.5的分类器都可以有效地识别fp模块,并就软件测试中应特别关注哪些模块提供了有价值的建议。用于PMD数据集的六种分类器的ROC曲线如图1所示。图表显示,随机森林技术在所有六个分类器中提供了最好的ROC4.2.2. Precision–RecallPR曲线可能有助于区分使用的算法,其可视化效果优于ROC。在这里,召回率在x轴上表示,精度在y轴上表示。PR曲线示例如图所示。 2用于数据集查找错误。图5查找bug的提升图。10A.考尔岛KaurRbcc1我N我我我们感兴趣的领域是精确度和召回率都很高的地方,这使得随机森林技术更好,因为它在该特定区域优于Bagging技术。因此,在ROC无法提供分类器之间差异的情况下4.2.3. 成本曲线ROC和PR曲线没有考虑误分类的成本。Adams和Hand(1999)定义了损失差异图,以利用误分类成本率。Drummond和Holte(2006)提出了成本曲线,它允许基于错误分类的成本来描述分类器成本曲线是通过画一条连接点(0,PF)和(1,1-PD)的直线生成的。下部由从左到右连接所有交点形成。使用随机森林和逻辑回归查找错误的成本曲线如图所示。3和4ROC和PR曲线的目标是最大化曲线下面积,而成本曲线则最小化误分类成本,即最小化下包络面积。下包络中的面积越小,类隔离器的性能越好,因此成本效益比越好。在比较分类器时,最好绘制所有这些曲线,因为它们为分类器选择提供了补充事实。4.2.4. 提升图由于核查的资源和时间有限和验证活动,有效利用资源实现最佳质量改进是一项挑战。电梯目标是在给定的技术中选择最佳技术。所做的假设是:何:六个分类器的性能没有差异。答:至少有一个分类器的表现明显优于其他分类器。在拒绝零假设之前可以进行事后检验。Demsar(2006)建议,如果在多个数据集上采用两个以上的分类器,则先进行Friedman检验,然后进行相应的事后Nemenyi检验。Demsar推荐这些测试,因为它们对数据不太严格。但是,非参数测试并没有利用所有可用的事实,因为实际数据值没有被使用。因此,当有充分的理由使用参数检验时,建议相对于非参数检验使用参数检验。本工作遵循Demsar提供的程序。采用平均AUC作为关注指标,以95% 置信水平( p=0.95 )作为检查显著性(p0.95)的阈值进行10 × 10交叉验证。<我们在5个数据集上取了6个分类器进行Friedman检验。Friedman检验显示所使用的分类器之间是否存在统计学差异,然后进行Nemenyi检验以确定哪种分类器对所使用的5个数据集给出最佳结果。Ken Blackx2¼12 XR2-3bc1vJ图(Witten和Frank,2005)也称为Alberg图(Khoshgoftaar和Seliya,2004; Ostrand等人,2 0 0 5 ; Ohlsson和Alberg,1996; Ohlsson等人,1997年)是另一项业绩评价措施。Lift是一种测量分类器如何有效地检测容易出错的模块。它其中b是区组(行)的数量,c是处理水平(列)的数量。这里k是使用的分类器的数量,N是数据集的数量,Rj是分类器j接管给定的数据集。R j= 1Pr j,其中在有和没有预测模型的情况下,评估正确识别的故障模块的比率。在提升图中,x轴表示所考虑的模块的百分比,y轴表示相应的检测率。提升图包括基线和提升曲线。升力和基线之间的面积越大,j是第j个分类器在第i个数据上的秩。Ff是具有K-1和(k-1)(N-1)自由度的F分布,临界值可用(见表7)。Nemenyi检验是在拒绝零假设时应用的事后检验。它将分类器与每个其他. 本测试中的关键差异评估为分类器的性能越好CD=qqk1,其中q是耐门依检验逻辑回归、Bagging和随机森林如图所示。 五、4.3. 模型的统计比较业绩指标不足以对分类器进行比较;实际比较分类器需要统计结论(Conover,1999; Siegel,1956)。Li和Henry,1993年。如果两个分类器之间的平均秩差大于CD值,则它们的性能差异是显著的。这里我们有N=5和k=6。排名是由最好的分类器分配最高的排名。表8:显示了分配给每个分类器的等级,以及Freidman检验中使用的等级总和和等级平方。表7分类器与他们的ROC。Datasets/classifier朴素贝叶斯LogisticIB1J48套袋随机森林PMD0.690.730.760.700.780.82艾玛0.710.790.700.620.790.80找到缺陷0.720.810.720.820.890.90宝库0.830.970.760.640.990.99DR JAVA0.750.740.660.700.790.81J一具有前三个分类器的数据集FIND BUGS的提升图6N一故障预报分类算法的评价116ð6þ 1Þ6ω 5表9从最好到最差的分类器排序。分类器秩平均秩随机森林29.55.9套袋255Logistic17.53.5朴素贝叶斯12.52.5IB110.52.1J48102表8在不同数据集中具有排名的分类器。Datasets/classifier朴素贝叶斯LogisticIB1J48套袋随机森林PMD134256艾玛34.5214.56找到缺陷1.531.5456宝库34215.56DR JAVA431256列秩和12.517.510.5102529.5军阶方阵156.25306.25110.25100625870.25x2¼12ω 5ω2168- 15ω 7¼ 18: 88为C=6和df=6的关键值图6 PMD中使用的分类器的 ROC。2:05;5十一点零五分。卡方检验值为18.88高于临界值,则决定拒绝零假设进行了事后Nemenyi检验,因为Friedman检验拒绝了零假设,这意味着使用的六种分类器的性能存在差异对于六个分类器,临界值qa为2.85。因此,关键的区别是CD2:85r 2016年6月26日星期一下午2:37表9列出了分类器从最好到最差的排序。结果表明,随机森林、Bagging和Logistic回归的平均秩差小于CD,因此在统计学上不显著,因此它们表现同样好,而随机森林和J48、随机森林和IB1、随机森林和朴素贝叶斯、Bagging和朴素贝叶斯、Bagging和IB1、Bagging和J48的平均秩差具有统计学显著性差异。图7PMD的提升图5. 实验结果在这一部分中,进行实验来比较不同的故障预测模型。前面列出的六个模型已经在五个开源项目中进行了评估:PMD。找到Bugs、Emma、Trove和Dr Java。v表10PMD的性能结果。测量纳夫Logistic IB1J48套袋随机Bayes森林PD0.880.830.87 0.72 0.750.731-PF0.320.680.66 0.73 0.590.73精度0.880.830.78 0.78 0.710.79精度0.640.770.78 0.72 0.680.73G均值10.750.810.82 0.75 0.730.76G均值20.530.750.76 0.72 0.660.73F-measure0.740.810.82 0.75 0.730.76(b=1)J_coe0.680.320.34 0.27 0.410.7312A.考尔岛Kaur5.2. 找到缺陷使用默认度量(可以从Weka工具包为不同模型提供的混淆矩阵计算),随机森林分类算法通过提供大多数性能度量的最大值而优于其他分类器。上述性能指标表明,随机森林模型优于其他分类器。进行的图形评估包括ROC、PR曲线、成本曲线和Lift图。表12列出了查找错误的性能结果表12查找错误的性能结果测量纳夫Logistic IB1J48套袋随机Bayes森林PD0.240.480.64 0.76 0.800.801-PF0.870.800.81 0.91 0.890.93精度0.540.700.69 0.85 0.830.89精度0.620.640.74 0.85 0.850.88G均值10.360.580.66 0.80 0.810.84G均值20.360.580.66 0.80 0.810.84F-measure0.360.580.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功