摘要:

本文主要是评估多种监督机器学习算法的有效性,这些算法用于判断一个错误报告是否是reopened的,算法如下:

7种监督学习算法:kNN,SVM, SimpleLogistic,Bayesian Network, Decision Table, CARTand LWL;

3种集成学习算法: AdaBoost,Bagging and Random Forest。

实验结果表明:

评判的指标:accuracy scores和 F-Measure scores

Bagging  and  Decision  Table取得了比较好的性能。


S1 Introduction

一个典型的错误修复通常包括4个阶段:(以Bugzilla为例)

  1. 检测到软件中的一个bug,发布一个bug report,状态标记为“new”;
  2. bug triager指派每一个bug到与之相应的开发者,状态标记为“assigned”;
  3. 开发者阅读bug report,验证是否是一个bug,若是,则修复它,状态标记为“verified”;
  4. 若不是一个bug,或已修复完毕,则bug triager会关闭这个bug,状态标记为“closed”。

然而,很多时候,一个bug必须被重新开放,因为:

  1. 检测到bug时并没有提供大量的信息,导致开发者对bug的真正原因判断不准确;
  2. 尽管在先前的系统中已被修复,bug又重新出现在当前版本的系统中。

重新开放的bug修复起来更加耗时,成本越高,因为开发者必须重新审视问题。


S2   总体框架

由上图可以看到,有两个阶段:1)训练阶段;2)测试阶段。

在特征提取的过程中,把特征分类四类:

以下是算法中一些参数的设定:


S3   实验结果

数据集用的是之前Shihab所使用的,其中包含1530个bug report,其中246个为reopened。

使用十折交叉验证的方法,对数据集进行处理。

指标也和Shihab的相同: accuracy, re-opened precision (Precision(re)), reopened recall (Recall(re)),reopened F-Measure ((F-Measure(re)),

not reopened precision(Precision(nre)),  not  reopened  recall  (Recall(nre)),  and  not reopened F-measure (F-Measure(nre)).

这10种算法统一用weka实现。

主要的问题:

  1. 10种算法性能差异;

2.   集成学习算法的性能是否优于非集成学习算法?

结论表明,并没有直接关系。


S5   结论与未来工作方向

本文中算法都只采用唯一的参数,以后要尝试修改参数,来进行比较。

【软件分析与挖掘】A Comparative Study of Supervised Learning Algorithms for Re-opened Bug Prediction的更多相关文章

  1. 【软件分析与挖掘】ELBlocker: Predicting blocking bugs with ensemble imbalance learning

    摘要: 提出一种方法——ELBlocker,用于自动检测出Blocking Bugs(prevent other bugs from being fixed). 难度在于这些Blocking Bugs仅 ...

  2. 【软件分析与挖掘】An Empirical Study of Bugs in Build Process

    摘要 对软件构建过程中所产生的错误(build process bugs)进行实证研究. 5个开源项目:CXF, Camel, Felix,Struts, and Tuscany. 把build pr ...

  3. 【软件分析与挖掘】Vision of Software Clone Management: Past, Present, and Future (Keynote Paper)

    abstract: 代码克隆的综述 S1    INTRODUCTION AND MOTIVATION 代码克隆的利弊: 利:可以有效地去耦合,避免其他一些可能的错误: 弊:当被复制的那段code中带 ...

  4. 【软件分析与挖掘】Multiple kernel ensemble learning for software defect prediction

    摘要: 利用软件中的历史缺陷数据来建立分类器,进行软件缺陷的检测. 多核学习(Multiple kernel learning):把历史缺陷数据映射到高维特征空间,使得数据能够更好地表达: 集成学习( ...

  5. 【软件分析与挖掘】BOAT: An Experimental Platform for Researchers to Comparatively and Reproducibly Evaluate Bug Localization Techniques

    摘要: 目前有许多的bug定位技术,但是,由于他们基于不同的数据集,而且有些数据集还不是公开的,甚至有些技术只应用于小数据集,不具有通用性,因此,不好比较这些技术之间的优劣. 因此,BOAT应运而生. ...

  6. 第二次作业-Steam软件分析

    1 .介绍产品相关信息 随着电子音频游戏产业的发展以及正版意识的崛起,Steam已经成为大部分游戏爱好者必备的一款游戏下载平台.这款软件也使得Valve公司从一个游戏制作公司成功扩展业务到一个承揽众多 ...

  7. 使用AES加密的勒索类软件分析报告

    报告名称:  某勒索类软件分析报告    作者:        李东 报告更新日期: 样本发现日期: 样本类型: 样本文件大小/被感染文件变化长度: 样本文件MD5 校验值: da4ab5e31793 ...

  8. [软件逆向]实战Mac系统下的软件分析+Mac QQ和微信的防撤回

      0x00  一点废话 最近因为Mac软件收费的比较多,所以买了几款正版软件,但是有的软件卖的有点贵,买了感觉不值,不买吧,又觉得不方便,用别人的吧,又怕不安全.于是我就买了正版的Hopper Di ...

  9. 必应词典手机版(IOS版)与有道词典(IOS版)之软件分析【功能篇】【用户体验篇】

    1.序言: 随着手机功能的不断更新和推广,手机应用市场的竞争变得愈发激烈.这次我们选择必应词典和有道词典的苹果客户端作对比,进一步分析这两款词典的客户端在功能和用户体验方面的利弊.这次测评的主要评测人 ...

随机推荐

  1. Leetcode 290 Word Pattern STL

    Leetcode 205 Isomorphic Strings的进阶版 这次是词组字符串和匹配字符串相比较是否一致 请使用map来完成模式统计 class Solution { public: boo ...

  2. hdu1875 畅通工程再续 最小生成树并查集解决---kruskal

    http://acm.hdu.edu.cn/showproblem.php?pid=1875 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的 ...

  3. ArrayList源码分析

    序言 第一次看源码,借鉴的是这位博主的文章:http://blog.csdn.net/csh624366188/article/details/6896656  个人觉得他写的一系列文章很好,稍微有点 ...

  4. Enterprise Solution 2.2 开发帮助文档集合

    首先是一个PPT文档,从宏观层面展示Enterprise Soltion的几个功能特色. Enterprise Solution解决方案安装与配置 将源代码解决方案和演示程序在电脑中进行配置,作为了解 ...

  5. Serializable 和 Parcelable 区别

    http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0204/2410.html http://www.cnblogs.com/blu ...

  6. Beego源码分析(转)

    摘要 beego 是 @astaxie 开发的重量级Go语言Web框架.它有标准的MVC模式,完善的功能模块,和优异的调试和开发模式等特点.并且beego在国内企业用户较多,社区发达和Q群,文档齐全, ...

  7. Distributed Result Grouping Caveats

    Distributed Result Grouping Caveats Grouping is supported distributed searches, with some caveats: 1 ...

  8. LeetCode:Roman to Integer,Integer to Roman

    首先简单介绍一下罗马数字,一下摘自维基百科 罗马数字共有7个,即I(1).V(5).X(10).L(50).C(100).D(500)和M(1000).按照下述的规则可以表示任意正整数.需要注意的是罗 ...

  9. Chrome谷歌浏览器首页被改为Hao123导航怎么办|附各类解决方法【转】

    软件小子:昨天偶然间发现自己的chrome浏览器的首页被篡改成hao123导航了,要是自己设置的还无所谓,但是后面还有尾巴.顿时就火了,又是哪款软件这么流氓,太无良了,我非常确定我肯定是没有勾选什么设 ...

  10. TNSNAMES.ORA 配置

    上面的sqlnet.ora文件说明:SQLNET.AUTHENTICATION_SERVICES= (NTS)——这个表示采用os认证,在数据库服务器上,可以利用sqlplus “/ as sysdb ...