您好, 访客   登录/注册

基于迁移学习的软件缺陷预测算法研究

来源:用户上传      作者:何金虎 吴翔虎 曲明成

  摘 要:软件缺陷预测技术可以用于预测软件缺陷是否存在以及其可能存在的数目,以决定软件是否可以交付,对于软件性能的提升和质量的保证有着重要的意义。迁移学习则可以利用不同软件项目中的数据,进行跨项目的软件缺陷预测工作,以应对传统缺陷预测算法中数据不足的问题。本文首先阐述了缺陷预测和迁移学习的相关理论研究现状及其分类,然后对现有的TrAdaboost算法进行优化,修改了迭代分类器的评估指标,并结合实验证明了其合理性和优越性。
  关键词: 迁移学习;缺陷预测;不平衡数据
  【Abstract】 Software defect prediction technology can be used to predict the existence of software defects and the number of possible defects to determine whether software can be delivered. It is of great significance for software performance improvement and quality assurance. Transfer learning can use the data in different software projects to perform software defect prediction work across projects to solve the problem of insufficient data in traditional defect prediction algorithms. This paper first expounds the current theoretical research and classification of defect prediction and transfer learning, then optimizes the existing TrAdaboost algorithm, modifies the evaluation index of the iterative classifier, and proves its rationality and superiority by combining experiments.
  【Key words】  transfer learning; defect prediction; unbalanced data
  0 引 言
  軟件缺陷,通常指的是软件实现未能满足客户需求。通过对软件缺陷的预测和发现,可以更好地提高软件产品质量。现有的软件缺陷预测方法多为通过对大量已标记的软件缺陷样本的训练,构建一个软件缺陷预测模型,再对一个新的软件项目进行预测,以判定其内部各个模块中是否包含缺陷。已有的模型构建算法通常是应用传统的机器学习算法,并结合bagging和Boosting的思想,对原始数据集进行训练。但在实际项目中,一个新的问题往往会因为缺少原始数据集样本而无法进行预测,这也正是迁移学习产生的原因。
  迁移学习可以利用已经学习到的知识对新的问题进行预测,具体到软件缺陷预测问题中,就可以利用已有的其它项目或公司的已标记软件缺陷数据,选用合适的数据预处理和模型训练算法,对一个新的项目的缺陷进行模型构建和预测。现有的跨项目缺陷预测技术,大多集中在数据预处理阶段,如通过度量辅助数据集和目标数据集之间样本的相关性,筛选合适的辅助样本数据,然后使用传统的机器学习方法进行模型构建[1];或者通过降维的方式将2个数据集的数据映射到同一个维度空间等。
  同上文中提出的研究方法不同,本文拟结合已有的TrAdaboost[2]迁移学习算法,并针对软件缺陷数据集中存在的数据不平衡的问题进行特殊处理,对迭代过程中每个阶段的弱分类器的评估指标进行了修改,同时通过一系列的实验数据,验证了其相对于现有算法的优越性和合理性。本文对此将展开研究论述如下。
  1 相关理论和技术
  1.1 迁移学习定义
  文中,将讨论迁移学习中所涉及到的域和任务的定义。域通常包含2部分内容,即特征空间X与特征空间的边缘分布函数P(x),研究中就将域表示为D={X,P(x)}。当域不同时,则往往拥有不同的边缘分布函数或特征空间,就软件缺陷预测问题而言,2个域的特征空间是一致的。任务是同域相结合的,同样包含2部分,即标签空间Y与目标预测函数f(x),该目标预测函数又可表示为P(Y|X),因此任务往往可以表示为T={Y,P(X|Y)}。
  目前,迁移学习算法处理的通常是只有一个辅助领域和一个目标领域的问题,其中辅助领域中存在大量含标签的样本,目标领域中仅包含少量含目标样本,或不含样本。两者所面临的任务相同或存在一定关联。
  结合上述定义的符号,迁移学习定义[3]如下:已知辅助领域Ds和辅助任务Ts、目标领域Dt和目标任务Tt,且辅助领域和目标领域之间、辅助任务和目标任务之间至少存在一个不同点,此时,迁移学习即为使用辅助领域Ds和Ts中的知识提升或优化目标领域Dt中目标预测函数ft(x)的学习效果。
  只有当域和任务两者之一存在差异时,才会用到迁移学习,否则直接应用传统的机器学习方法即可。同时,研究中还要求目标领域存在较少、甚至不存在已标记数据,否则同样不需要使用迁移学习方法。相对于传统的机器学习方法而言,迁移学习构建的模型就性能和准确性而言还是有一定差距的,当传统的机器学习方法条件可以得到满足时,优先使用机器学习方法来构建模型和获得任务中的预测函数f(x)。
  1.2 软件缺陷预测技术概述
  软件作为一款虚拟的产品,虽然不会因为硬件的损耗而产生错误或者性能下降,但却有可能因为本身固有的问题,在运行的过程中失效或者产生错误的结果,造成经济损失。    实验结果表明,在数据集不平衡的软件缺陷预测问题中,优化后的算法在大部分情况下PD值是优于原有的TrAdaboost算法的,而AUC值方面两者则比较接近,较大的PD值也表示可以有更多的缺陷被预测出来。与此同时还发现,相对于传统的机器学习方法而言,迁移学习的预测效果相对较差,因此在拥有足够的训练数据时,将优先使用传统的机器学习算法。
  4 结束语
  软件缺陷预测可以对软件的测试和交付提供指导意见,对软件质量的保证具有实际意义。本文参考了TrAdaboost算法,结合软件缺陷预测问题的特征,对TrAdaboost算法进行了优化,可以在一定程度上应对不平衡数据集带来的问题。
  但需指出,该算法还存在一定的局限性。一个缺陷预测模型的构建,除了需要优化训练算法,对于数据的预处理也同样重要。在未来的工作中,需要在辅助数据的筛选和度量元的选择方法上继续深入研究,以进一步提升预测模型的性能。
  参考文献
  [1]TURHAN B, MENZIES T, BENER A B, et al. On the relative value of cross-company and within-company data for defect prediction[J]. Empirical Software Engineering, 2009, 14(5):540-578.
  [2]DAI Wenyuan,YANG Qiang,XUE Guirong,et al. Boosting for transfer learning[C]// Machine Learning, Proceedings of the Twenty-Fourth International Conference (ICML 2007). Corvallis, Oregon, USA:ACM,2007: 193-200.
  [3]PAN S J , YANG Qiang. A survey on transfer learning[J]. IEEE Transactions on Knowledge and Data Engineering, 2010, 22(10):1345-1359.
  [4]王青,伍书剑,李明树. 软件缺陷預测技术[J]. 软件学报,2008,19(7):1565-1580.
  [5]FAWCETT T. An introduction to ROC analysis[J].Pattern Recognition Letters, 2006,27(8):861-874.
  [6]SHIPPEY T, HALL T, COUNSELL S, et al. So you need more method level datasets for your software defect prediction?: Voila![C]// the 10th ACM/IEEE International Symposium. Ciudad Real, Spain : ACM, 2016:12.
  [7]FREUND Y, SCHAPIRE R E. A decision-theoretic generalization of on-line learning and an application to Boosting[M]//VITNYI P. Computational learning theory. EuroCOLT 1995. Lecture Notes in Computer Science (Lecture Notes in Artificial Intelligence). Berlin/Heidelberg: Springer.1995:23-37.
  [8]JOSHI M V, KUMAR V, AGARWAL R C. Evaluating boosting algorithms to classify rare cases: Comparison and improvements[C]// Proceedings of the 1st IEEE International Conference on Data Mining. Washington DC: IEEE, 2001:257-264.
转载注明来源:https://www.xzbu.com/8/view-15059226.htm