zoukankan      html  css  js  c++  java
  • 【软件分析与挖掘】A Comparative Study of Supervised Learning Algorithms for Re-opened Bug Prediction

     

    摘要:

          本文主要是评估多种监督机器学习算法的有效性,这些算法用于判断一个错误报告是否是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   总体框架

    image

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

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

    image

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

    image


     

    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种算法性能差异;

    image

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

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


     

    S5   结论与未来工作方向

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

  • 相关阅读:
    06深入理解C指针之---指针操作和比较
    05深入理解C指针之---指针声明和解引
    04深入理解C指针之---指针优缺点
    03深入理解C指针之---变量与内存
    iOS UIWebView获取403/404
    控制动画时间
    控制动画时间
    iOS中消息的传递机制
    iOS中消息的传递机制
    HTML5能取代Android和iOS应用程序吗?
  • 原文地址:https://www.cnblogs.com/XBWer/p/4440762.html
Copyright © 2011-2022 走看看