基于代价敏感集成分类器的代码坏味检测
发布时间:2020-12-25 14:25
软件系统的演化是一个长期连续的过程,软件系统在一段时间内通常会发生一系列大小不等的变化。随着软件系统的发展,系统的功能就会越来越多,从而系统越来越大,相比较而言其设计就会变得恶化,会更加复杂和难以理解,导致软件系统很难维护。软件整个生命周期内,维护的花费是开发的2-100倍,为了提高软件系统的可维护性,降低维护成本,系统就必须在不影响外部行为的前提下进行重构,重构的基础就是检测代码坏味,因此,代码坏味的检测就变得尤为重要。代码坏味指软件设计上的一些问题,会导致软件很难演化,越来越多的学者采用机器学习的方法来检测坏味,机器学习方法能够通过学习样例来构建检测规则,最后用测试样例来评价结果,结果表明用机器学习方法检测代码坏味会取得更好的结果。但由于代码坏味的数据集是极度不平衡的,负样例个数远远大于正样例个数,这就导致传统机器学习算法的效果大打折扣。本文提出一种新的检测代码坏味的方法,以传统机器学习算法决策树为基础,引入以认知复杂度为代价因子的代价矩阵,从而降低数据不平衡对算法的影响,提高代码坏味的检测准确率,本文主要研究了长方法和特征依恋两种代码坏味的检测。本文的主要工作有:1)针对代码坏味...
【文章来源】:河北师范大学河北省
【文章页数】:65 页
【学位级别】:硕士
【部分图文】:
特征依恋示例
图 2.3 代码坏味检测的一般流程.3.2 基于贝叶斯网络的检测方法家们研究出了大量代码坏味的检测技术,但有些技术并不能处理检测过程素。比如:针对代码坏味的定义并没有形成统一的标准,所以代码坏味定指标会出现不同的结果,软件质量的评定主要是以人为中心的,因此对于坏味总有一定不确定程度的存在。贝叶斯方法可以把现有技术最新的检测率模型,检测结果是以一个概率的形式呈现的,这个概率度量一个类属于小[41]。叶斯网络是一个代表概率分布的非周期性图表,在这个图表中,每个节点变量iX ,两个节点之间的边表示一个概率,这个概率是父节点表示的变量示的变量之间的依赖程度的度量。贝叶斯网络结构表示假设网络中的每个某些条件下独立于其父节点,每个节点X 关联一个条件概率表,这个条件
文采用的方法是欠采样方法结合代价敏感学习。了能够使分类效果达到最好,需要确定正负样例的比例,本文是首先从负样中随机欠采样抽取多个不同数量的子类,并把这些子类分别与正样例样本组不同比例的数据样本集,把这些不同比例的样本集训练生成决策树,决策树进行分类,并比较不同比例样本的分类查准率,最后选择查准率最高的样本同比例的正负样例的决策树分类效果如图 3.1 所示。
【参考文献】:
期刊论文
[1]不均衡数据分类算法的综述[J]. 陶新民,郝思媛,张冬雪,徐鹏. 重庆邮电大学学报(自然科学版). 2013(01)
[2]不均衡数据下基于SVM的故障检测新算法[J]. 陶新民,刘福荣,童智靖,杨立标. 振动与冲击. 2010(12)
[3]支持向量机与AdaBoost的结合算法研究[J]. 张晓龙,任芳. 计算机应用研究. 2009(01)
硕士论文
[1]基于潜在语义分析的代码坏味检测[D]. 马赛.河北师范大学 2017
[2]基于语义分析的文本挖掘研究[D]. 陆洋.浙江工业大学 2012
[3]面向自动化重构的代码味道识别器的设计与实现[D]. 李军超.国防科学技术大学 2006
本文编号:2937825
【文章来源】:河北师范大学河北省
【文章页数】:65 页
【学位级别】:硕士
【部分图文】:
特征依恋示例
图 2.3 代码坏味检测的一般流程.3.2 基于贝叶斯网络的检测方法家们研究出了大量代码坏味的检测技术,但有些技术并不能处理检测过程素。比如:针对代码坏味的定义并没有形成统一的标准,所以代码坏味定指标会出现不同的结果,软件质量的评定主要是以人为中心的,因此对于坏味总有一定不确定程度的存在。贝叶斯方法可以把现有技术最新的检测率模型,检测结果是以一个概率的形式呈现的,这个概率度量一个类属于小[41]。叶斯网络是一个代表概率分布的非周期性图表,在这个图表中,每个节点变量iX ,两个节点之间的边表示一个概率,这个概率是父节点表示的变量示的变量之间的依赖程度的度量。贝叶斯网络结构表示假设网络中的每个某些条件下独立于其父节点,每个节点X 关联一个条件概率表,这个条件
文采用的方法是欠采样方法结合代价敏感学习。了能够使分类效果达到最好,需要确定正负样例的比例,本文是首先从负样中随机欠采样抽取多个不同数量的子类,并把这些子类分别与正样例样本组不同比例的数据样本集,把这些不同比例的样本集训练生成决策树,决策树进行分类,并比较不同比例样本的分类查准率,最后选择查准率最高的样本同比例的正负样例的决策树分类效果如图 3.1 所示。
【参考文献】:
期刊论文
[1]不均衡数据分类算法的综述[J]. 陶新民,郝思媛,张冬雪,徐鹏. 重庆邮电大学学报(自然科学版). 2013(01)
[2]不均衡数据下基于SVM的故障检测新算法[J]. 陶新民,刘福荣,童智靖,杨立标. 振动与冲击. 2010(12)
[3]支持向量机与AdaBoost的结合算法研究[J]. 张晓龙,任芳. 计算机应用研究. 2009(01)
硕士论文
[1]基于潜在语义分析的代码坏味检测[D]. 马赛.河北师范大学 2017
[2]基于语义分析的文本挖掘研究[D]. 陆洋.浙江工业大学 2012
[3]面向自动化重构的代码味道识别器的设计与实现[D]. 李军超.国防科学技术大学 2006
本文编号:2937825
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2937825.html