APP下载

基于混合采样与Random_Stacking的软件缺陷预测

2021-08-20闫岭岭杜军威杨爱光

计算机与现代化 2021年8期
关键词:分类

闫岭岭,江 峰,杜军威,杨爱光

(青岛科技大学信息科学技术学院,山东 青岛 266061)

0 引 言

软件的质量与软件中所存在的缺陷数量直接相关,软件缺陷的存在会让软件或程序的运行出现障碍,使得软件的安全性和可靠性面临严重的威胁。因此,对于软件缺陷预测的研究具有重要的理论和实际意义,软件缺陷预测也被越来越多的专家学者所关注和研究。

软件缺陷预测主要是对软件历史数据进行分析,发现缺陷的分布规律,对软件中的潜在缺陷进行预测[1-2]。软件缺陷预测技术的出现让软件测试人员在有缺陷倾向的模块中投入更多的时间和精力,以降低软件开发的成本,更合理地利用软件项目的资源[3]。软件缺陷预测技术可分为静态和动态技术[1]。静态技术[4]是通过分析软件的历史数据,找出能度量软件缺陷特征的数据,并根据这些数据的分布特点,预测待测模块中潜在的缺陷;动态技术是以缺陷产生的时间为基础,根据时间的分布变化对系统缺陷情况进行预测[5]。近年来,机器学习方法被广泛应用于软件缺陷预测模型的建立中,通过对已知标签的软件缺陷数据进行学习,建立数据和软件缺陷之间的联系,并对未知的软件模块预测其发生缺陷的可能性[6]。常用的机器学习算法有:决策树(C4.5)[7]、支持向量机(Support Vector Machine, SVM)[8-9]、K-最近邻(K-Nearest Neighbor, KNN)[10]分类算法、随机森林(Random Forest, RF)[11]、朴素贝叶斯(Naive Bayesian, NB)[12-13]等。传统的机器学习算法通常假定数据集中各类别的样本数量基本相等,即数据集是平衡的,然而在软件缺陷预测中,无缺陷的样本通常要远多于有缺陷样本,即存在着严重的类别不平衡问题,因此,上述机器学习算法对有缺陷样本的分类性能难以满足要求。……

登录APP查看全文

猜你喜欢

分类
分类算一算
垃圾分类的困惑你有吗
星星的分类
我给资源分分类
垃圾分类,你准备好了吗
按需分类
教你一招:数的分类
说说分类那些事
给塑料分分类吧