基于半监督学习和投票决策理论的软件缺陷预测
发布时间:2023-03-28 18:55
软件缺陷预测是一项重要的质量保证技术,它通过利用软件仓库中的历史数据和已经发现的相关缺陷信息,来预测软件模块中可能存在的缺陷。但是,大多数的缺陷预测技术,都假设有大量的历史数据已知缺陷信息;但在实际情况中,在软件开发的早期,软件项目往往缺少这样的缺陷信息。另外,当前大多数研究者在评价缺陷预测性能时,并没有考虑工作量感知的问题,这使得缺陷预测技术在实际应用中不能合理利用。对于上述两个问题,本研究提供了一种新的基于半监督学习和投票决策理论的缺陷预测技术。它采用Self-training思想,结合Boosting过程,将传统的监督学习方法随机森林(Random Forest)算法改进为一种半监督学习算法——extRF,并引入投票决策理论,将随机森林中每一棵子决策树作为投票者,采用一定的集体决策规则,来预测软件缺陷模块排序。本文的主要贡献和创新点包括:1)研究提出了基于Self-training的思想,用训练得到的初始模型预测未知缺陷信息的数据样本,然后选择可靠的数据样本加入到原数据集中,用扩充后的训练集来重新优化模型。2)研究提出了将提升算法(Boosting)引入到随机森林模型中,迭代地决...
【文章页数】:80 页
【学位级别】:硕士
【文章目录】:
摘要
abstract
1 绪论
1.1 研究背景
1.2 研究现状分析
1.2.1 有监督、半监督和无监督的缺陷预测方法
1.2.2 基于分类和基于排序的缺陷预测方法
1.2.3 缺陷预测模型的特征选择
1.3 研究目标和总体思路
1.4 论文结构
2 基于半监督学习的软件缺陷分类预测
2.1 相关技术
2.1.1 朴素贝叶斯模型
2.1.2 逻辑回归模型
2.1.3 决策树
2.1.4 随机森林算法
2.2 软件缺陷分类预测方法
2.3 改进的随机森林算法extRF
2.3.1 算法步骤
2.3.2 数据样本的自动标注和选择
2.3.3 提升过程
2.3.4 算法伪代码
2.4 特征集
2.4.1 静态代码度量特征
2.4.2 变更历史度量特征
2.4.3 缺失值处理方法
2.5实验
2.5.1 实验数据
2.5.2 对比方法
2.5.3 分类能力评价指标
2.5.4 实验结果
2.6 本章小结
3 基于无监督学习的软件缺陷模块投票排序
3.1 相关技术
3.1.1 投票排序和集体决策规则
3.1.2 Spearman秩相关系数
3.2 投票者和投票策略的选择
3.2.1 投票者的选择
3.2.2 投票策略
3.3 基于投票排序的软件缺陷模块排序
3.4 实验
3.4.1 实验设计
3.4.2 软件度量特征的选择
3.4.3 实验结果
3.5 本章小结
4 结合半监督学习和投票决策理论的软件缺陷模块排序
4.1 软件缺陷模块排序方法
4.2 基于排序的extRF算法
4.2.1 算法步骤
4.2.2 数据样本选择策略
4.2.3 提升过程
4.2.4 软件缺陷模块排序
4.2.5 算法伪代码
4.3 实验
4.3.1 实验数据
4.3.2 实验设计
4.3.3 实验结果
4.4 本章小结
5 总结与展望
5.1 本文工作小结
5.2 展望
参考文献
致谢
攻读学位期间发表的学术论文
本文编号:3773089
【文章页数】:80 页
【学位级别】:硕士
【文章目录】:
摘要
abstract
1 绪论
1.1 研究背景
1.2 研究现状分析
1.2.1 有监督、半监督和无监督的缺陷预测方法
1.2.2 基于分类和基于排序的缺陷预测方法
1.2.3 缺陷预测模型的特征选择
1.3 研究目标和总体思路
1.4 论文结构
2 基于半监督学习的软件缺陷分类预测
2.1 相关技术
2.1.1 朴素贝叶斯模型
2.1.2 逻辑回归模型
2.1.3 决策树
2.1.4 随机森林算法
2.2 软件缺陷分类预测方法
2.3 改进的随机森林算法extRF
2.3.1 算法步骤
2.3.2 数据样本的自动标注和选择
2.3.3 提升过程
2.3.4 算法伪代码
2.4 特征集
2.4.1 静态代码度量特征
2.4.2 变更历史度量特征
2.4.3 缺失值处理方法
2.5实验
2.5.1 实验数据
2.5.2 对比方法
2.5.3 分类能力评价指标
2.5.4 实验结果
2.6 本章小结
3 基于无监督学习的软件缺陷模块投票排序
3.1 相关技术
3.1.1 投票排序和集体决策规则
3.1.2 Spearman秩相关系数
3.2 投票者和投票策略的选择
3.2.1 投票者的选择
3.2.2 投票策略
3.3 基于投票排序的软件缺陷模块排序
3.4 实验
3.4.1 实验设计
3.4.2 软件度量特征的选择
3.4.3 实验结果
3.5 本章小结
4 结合半监督学习和投票决策理论的软件缺陷模块排序
4.1 软件缺陷模块排序方法
4.2 基于排序的extRF算法
4.2.1 算法步骤
4.2.2 数据样本选择策略
4.2.3 提升过程
4.2.4 软件缺陷模块排序
4.2.5 算法伪代码
4.3 实验
4.3.1 实验数据
4.3.2 实验设计
4.3.3 实验结果
4.4 本章小结
5 总结与展望
5.1 本文工作小结
5.2 展望
参考文献
致谢
攻读学位期间发表的学术论文
本文编号:3773089
本文链接:https://www.wllwen.com/guanlilunwen/lindaojc/3773089.html