一句话:实证揭示类重叠对软件缺陷预测的负面影响,并提出 IKMCCA 同时处理类重叠与类不平衡。
软件缺陷预测依赖训练数据质量,已有研究多关注类不平衡和特征冗余,却较少考察类重叠——不同类别实例在特征上相似——的影响。本文在 28 个开源项目上开展实证研究,提出改进的 K-Means 聚类清洗方法 IKMCCA,以同时处理类重叠与类不平衡,并与 KMCCA、邻域清洗学习 NCL 及不清洗数据进行对比,覆盖项目内缺陷预测 WPDP 和跨项目缺陷预测 CPDP。实验使用多种先进学习模型,以 balance、Recall 和 AUC 评估。结果表明,移除重叠实例能显著提升 WPDP 和 CPDP 的平衡性、召回率与 AUC,且同时考虑类重叠和类不平衡效果更佳。
Software defect prediction (SDP) utilizes the learning models to detect the defective modules in project, and their performance depends on the quality of training data. The previous researches mainly focus on the quality problems of class imbalance and feature redundancy. However, training data often contains some instances that belong to different class but have similar values on features, and this leads to class overlap to affect the quality of training data. Our goal is to investigate the impact of class overlap on software defect prediction. At the same time, we propose an improved K-Means clustering cleaning approach (IKMCCA) to solve both the class overlap and class imbalance problems. Specifically, we check whether K-Means clustering cleaning approach (KMCCA) or neighborhood cleaning learning (NCL) or IKMCCA is feasible to improve defect detection performance for two cases (i) within-project defect prediction (WPDP) (ii) cross-project defect prediction (CPDP). To have an objective estimate of class overlap, we carry out our investigations on 28 open source projects, and compare the performance of state-of-the-art learning models for the above-mentioned cases by using IKMCCA or KMCCA or NCL VS. without cleaning data. The experimental results make clear that learning models obtain significantly better performance in terms of balance, Recall and AUC for both WPDP and CPDP when the overlapping instances are removed. Moreover, it is better to consider both class overlap and class imbalance.
DOI 原文 ·
@inproceedings{paperbot5282,
title = {Empirical Evaluation of the Impact of Class Overlap on Software Defect Prediction},
author = {Lina Gong and Shujuan Jiang and Rongcun Wang and Li Jiang},
booktitle = {ASE},
year = {2019},
doi = {10.1109/ase.2019.00071}
}