基于混合采样和集成学习的软件缺陷预测
2021-07-26杨昊天顾乾晖王嘉璐施恺杰徐力晨
网络安全技术与应用 2021年5期
◆杨昊天 顾乾晖 王嘉璐 施恺杰 徐力晨
(南昌工程学院信息工程学院 江西 330096)
软件缺陷检测是软件工程的重要课题[1]。一些常见的机器学习方法,如支持向量机、决策树、KNN、逻辑回归、朴素贝叶斯等都能够用来建立分类模型[2]。但是,对于软件缺陷检测问题,经典的学习方法效果并不理想。由于传统分类器的训练过程普遍遵循误差最小化原则,当训练数据不平衡时,分类面向多数类偏倚,因此最终的模型对少数类的分类性能较差,在严重情况下,模型甚至完全无效。类别不平衡指的是训练数据中不同类别样本的数量差异很大,其中某些类别的样本数目要远小于其他类别样本的数目[3]。这种情形广泛存在于现实应用中。不平衡的数据降低了少数类样本的分类正确性[4]。
不平衡学习算法目标可以简单描述为在不严重降低多数类准确性的情况下获得一个能够为少数类提供高准确率的分类器[5]。类别不平衡学习一直是机器学习与数据挖掘领域的研究热点与难点之一。目前,已有许多类别不平衡学习技术被提出,大致可以分为数据层处理技术、内置技术,混合技术。为了有效提升软件缺陷预测精度,本文提出了一种将SMOTE_Tomek 采样和集成学习算法XGBoost[3]相结合的分类预测模型。该模型先利用组合采样方法SMOTE_Tomek 使失衡的数据平衡,同时滤除噪音样本,然后再使用集成学习算法XGBoost 进行训练得到分类模型。为了评估提出的分类模型的有效性,我们利用十个NASA 软件缺陷数据集进行了广泛的比较实验。……
登录APP查看全文
