登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 计算机科学与技术 > 正文

面向类不平衡数据集的即时软件缺陷预测方法研究毕业论文

 2021-12-20 21:02:55  

论文总字数:26282字

摘 要

即时软件缺陷预测(JIT-SDP)是一种在变更级别进行的缺陷预测方法,类不平衡是即时软件缺陷预测的一个重要问题,目前大多数即时软件缺陷预测方法都假设类的不平衡状态不会随时间而改变,然而问题的特征可能会随着时间的推移和软件的变更而不断演化,如果出现这种情况,现有的许多即时软件缺陷预测方法的结果可能会受到负面影响。

本论文进行了关于类不平衡以及类不平衡的演化是否会对即时软件缺陷预测方法造成负面影响的实验,该实验是在真实情况下进行的,考虑到了验证延迟,即标记的训练示例会延迟到达,这是一个在许多研究中经常被忽略的事实。本论文基于10个GitHub项目,以g-mean和没有缺陷的类(class 0)和存在缺陷的类(class 1)的召回率(Recall)之差作为主要的评价标准,发现JIT-SDP中确实存在类不平衡的演化,且会对预测结果造成严重的负面影响。本论文使用了一种基于过采样的Boosting方法,在保持较高g-mean结果的同时,两个类的召回率之差(|R0-R1|)也不输于其他在线学习算法。因此,在JIT-SDP中过于强调一个类而忽视另一个类是不可取的。

关键词: 即时软件缺陷预测 类不平衡 验证延迟 在线学习 概念漂移

Research on Just-in-Time Software Defect Prediction Method for Class Imbalanced Dataset

Abstract

Just-in-Time Software Defect Prediction (JIT-SDP) is an SDP approach that makes defect predictions at the software change level. Class Imbalance is an Important Problem in JIT-SDP. Most existing JIT-SDP methods assume that the imbalanced state of class will not change over time. However, the characteristics of the problem may evolve over time and as software changes, and if this occurs, the results of existing JIT-SDP methods may be negatively affected.

In this thesis, we conduct experiments on whether the class imbalance and class imbalance evolution would negatively affect just-in-time software defect prediction methods. The experiment is conducted in a realistic scenario, taking into account the validation latency, the fact that tagged training examples would arrive late, a fact that has often been overlooked in many studies. This paper is based on 10 GitHub projects, with the difference between the class without defects (class 0) and the class with defects(class 1) and g-mean as the main evaluation standard. It is found that there is indeed an evolution of class disequilibrium in JIT-SDP, which will have a serious negative impact on the prediction results. This paper uses a boosting method based on oversampling. While maintaining a higher g-mean result, the difference between the recall rates of the two classes(|R0-R1|) is also close to other online learning algorithms. Therefore, it is not advisable to overemphasize one class over another in the JIT-SDP.

Keywords: Just-in-Time Software Defect Prediction, class imbalance, verification latency, online learning, concept drift

目 录

摘要 I

Abstract II

第一章 绪论 1

1.1 背景 1

1.1.1 软件缺陷预测(Software Defect Prediction, SDP) 1

1.1.2 即时软件缺陷预测 1

1.1.3 SDP中的类不平衡问题 1

1.1.4 JIT-SDP中的类不平衡及类不平衡演化 2

1.1.5 验证延迟(Verification Latency) 2

1.1.6 概念漂移(Concept Drift) 3

1.2 研究意义 4

第二章 分类器介绍 5

2.1 朴素贝叶斯分类器(Naive Bayes, NB) 5

2.2 处理类不平衡演化的分类器 5

2.2.1 在线欠采样装袋(UOB)和在线过采样装袋(OOB) 5

2.2.2 在线装袋算法(Online Bagging)和在线Boosting算法 6

2.2.3 对OOB方法的改进 7

第三章 评价指标 9

3.1 二分类的混淆矩阵 9

3.2 常用的评价指标 9

3.2.1 准确率(Accuracy) 9

3.2.2召回率(Recall) 10

3.2.3 特异度(Specificity) 10

3.2.4 g-mean和 |R0 – R1| 10

3.3 本章小结 11

第四章 实验配置 12

4.1 实验数据集 12

4.2 解决验证延迟的框架 15

4.3 过采样率的提升方法(Oversampling Rate Boosting,ORB) 15

4.4 实验配置 18

4.4.1 等待时间ω的测定 18

4.4.2 类不平衡演化对于传统机器学习算法的负面影响 18

4.4.3 ORB参数的选择 18

4.5 本章小结 18

第五章 实验结果分析 19

5.1 验证延迟分析 19

5.2 类不平衡演化分析 20

5.3 各种机器学习方法结果分析 21

5.3.1 传统分类器结果 21

5.3.2 Online Bagging的预测结果 23

5.3.3 Online Boosting的预测结果 24

5.3.4 ORB分类器的预测结果 26

5.3.5 实验结果 27

5.4 对有效性的威胁 30

5.4.1 内部有效性 30

5.4.2 结果的有效性 30

5.4.3 外部有效性 30

5.5 本章小结 30

总结与展望 32

参考文献 33

致谢 35

第一章 绪论

1.1 背景

1.1.1 软件缺陷预测(Software Defect Prediction, SDP)

软件工程中一个具有挑战性的问题是减少软件缺陷数量及其高调试成本,特别是在可使用的测试资源有限的情况下,并且要面临快速交付的压力。因此,有研究已经提出了使用机器学习方法来预测软件中存在的缺陷,这种使用机器学习进行的软件缺陷预测方法有助于开发人员分配测试资源和检查工作,将注意力集中在有可能包含缺陷的组件上[1]-[5]。

1.1.2 即时软件缺陷预测

即时软件缺陷预测(Just-in-Time Software Defect Prediction, JIT-SDP)是一种 特定类型的缺陷预测方法,它可以在软件变更级别进行预测,即在开发人员提交带来缺陷的软件变更之后便可以识别[6]。由于开发者刚刚结束开发,所以对于软件的检查和修改要比后期再做检查容易得多,这是优于传统的软件缺陷预测方法的。

1.1.3 SDP中的类不平衡问题

在使用机器学习进行软件缺陷预测的过程中,数据的类不平衡是一个关键性的问题,在一个项目中,无缺陷的样本(多数类)往往多于存在缺陷的样本(少数类)[7]-[12]。常规的机器学习分类器可能会由于过度关注总体准确率,而忽略了对于少数类的正确分类[13]-[15]。传统机器学习分类器认为错误的代价是一样的。然而对于软件缺陷预测,少数类对于开发人员找到可能存在缺陷的模块更为重要,丢失缺陷的成本要远远高于丢失正确的变更的成本。

Mahmood的研究表明,随着数据越来越不平衡,以马修斯相关系数衡量的SDP分类预测性能会越来越差。

1.1.4 JIT-SDP中的类不平衡及类不平衡演化

随着时间的推移,JIT-SDP方法的不平衡程度可能会增加或减少,这意味着JIT-SDP中类不平衡的状态在进行演化,然而现有的JIT-SDP方法大多数假设问题的不平衡状态是静态的,不随时间变化更改变,所以预测的结果很可能随着时间的推移逐渐变差,即使仅使用最近的数据重构分类器的方法,也很难获得良好的结果,尽管这可以追踪类的不平衡程度,但是这是以丢失更早先的数据为代价的,少数类中的每一个数据对于该分类的学习都可能至关重要。这就需要机器学习算法可以考虑时序并继续学习新的示例,并且不能丢失旧的样本数据。这种随着时间推移可以单独学习新的示例的方法叫做在线学习(Online learning)[16]。

请支付后下载全文,论文总字数:26282字

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图