计算机应用   2016, Vol. 36 Issue (11): 3165-3169, 3187  DOI: 10.11772/j.issn.1001-9081.2016.11.3165
0

引用本文 

王星, 何鹏, 陈丹, 曾诚. 跨项目缺陷预测中训练数据选择方法[J]. 计算机应用, 2016, 36(11): 3165-3169, 3187.DOI: 10.11772/j.issn.1001-9081.2016.11.3165.
WANG Xing, HE Peng, CHEN Dan, ZENG Cheng. Selection of training data for cross-project defect prediction[J]. Journal of Computer Applications, 2016, 36(11): 3165-3169, 3187. DOI: 10.11772/j.issn.1001-9081.2016.11.3165.

基金项目

国家973计划项目(2014CB340401);国家自然科学基金资助项目(61273216, 61272111, 61202048, 61202032);湖北省知识创新专项项目(2016CFB309);武汉市青年科技晨光计划项目(2014070404010232)

通信作者

何鹏(1988-), 男, 江西宜春人, 讲师, 博士, CCF会员, 主要研究方向:软件度量、软件维护、复杂网络, penghe@hubu.edu.cn

作者简介

王星(1991-), 女, 湖北武汉人, 硕士研究生, 主要研究方向:软件度量、复杂网络;
陈丹(1992-), 女, 湖北黄冈人, 硕士研究生, 主要研究方向:软件度量、软件维护;
曾诚(1976-), 男, 湖北武汉人, 副教授, 博士, CCF会员, 主要研究方向:服务计算、云计算

文章历史

收稿日期:2016-04-13
修回日期:2016-06-23
跨项目缺陷预测中训练数据选择方法
王星1, 何鹏1,2, 陈丹1, 曾诚1,2    
1. 湖北大学 计算机与信息工程学院, 武汉 430062 ;
2. 湖北省教育信息化工程技术研究中心(湖北大学), 武汉 430062
摘要: 跨项目缺陷预测(CPDP)利用来自其他项目的缺陷数据预测目标项目的缺陷情况,为解决以往缺陷预测方法面临的训练数据受限问题提供了一个新的视角。训练数据的质量将直接影响跨项目缺陷预测模型的性能,因此,需尽可能选择与目标项目更相似的数据用于模型的训练。利用PROMISE提供的34个公开数据集,从训练数据选择方面,分析了四种典型的相似性度量方法对跨项目预测结果的影响以及各种方法之间的差异。研究结果表明:使用不同的相似性度量方法选出的训练数据质量不同,其中余弦相似性与相关系数两种方法效果更好,且最大改进比例达到6.7%;同时,根据目标项目的缺陷率,发现余弦相似性更适合于缺陷率高于0.25的项目。
关键词: 软件质量保证    缺陷预测    跨项目缺陷预测    相似性度量    数据选择    
Selection of training data for cross-project defect prediction
WANG Xing1, HE Peng1,2, CHEN Dan1, ZENG Cheng1,2     
1. School of Computer Science and Information Engineering, Hubei University, Wuhan Hubei 430062, China ;
2. Hubei Province Engineering Technology Research Center for Education Informationization(Hubei University), Wuhan Hubei 430062, China
Background: This work is partially supported by the National Basic Research Program (973 Program) of China (2014CB340401), the National Natural Science Foundation of China (61273216, 61272111, 61202048, 61202032), the Special Knowledge Innovation Project in Hubei Province (2013AAA020), the Youth Chenguang Project of Science and Technology of Wuhan City (2014070404010232).
WANG Xing, born in 1991, M. S. candidate. Her research interests include software measure, complex network.
HE Peng, born in 1988, Ph. D., lecturer. His research interests include software measure, software maintenance, complex network.
CHEN Dan, born in 1992, M. S. candidate. Her research interests include software measure, software maintenance.
ZENG Cheng, born in 1976, Ph. D., associate professor. His research interests include service computing, cloud computing.
Abstract: Cross-Project Defect Prediction (CPDP), which uses data from other projects to predict defects in the target project, provides a new perspective to resolve the shortcoming of limited training data encountered in traditional defect prediction. The data more similar to target project should be given priority in the context, because the quality of train cross-project data will directly affect the performance of cross-project defect prediction. In this paper, to analyze the impact of different similarity measures on the selection of training data for cross-project defect prediction, experiments were performed on 34 datasets from the PROMISE repository. The results show that the quality of training data selected by different similarity measure methods is various, and cosine similarity and correlation coefficient can achieve better performance as a whole. The greatest improvement rate is up to 6.7%. According to defect rate of target project, cosine similarity is seem to be more suitable when the defect rate is more than 0.25.
Key words: software quality assurance    defect prediction    Cross-Project Defect Prediction (CPDP)    similarity measure    data selection    
0 引言

早期软件缺陷预测的研究主要是使用软件项目的历史数据作训练, 将得到的模型再用于该项目未来版本中软件缺陷的预测, 统称为项目内缺陷预测(Within-Project Defect Prediction, WPDP)。WPDP的预测效果受项目历史数据的量影响明显[1], 而在实践中要达到历史数据足够充足并不容易, 特别是对于新的或者还不活跃的软件项目而言。例如Rainer等[2]针对SourceForge平台上软件项目的活跃度进行了分析, 发现仅有1%的软件项目被认定为活跃。

针对WPDP中训练数据不足或获取不易的瓶颈, 一些研究者主张利用其他项目的数据来进行预测模型训练的观点, 提出跨项目缺陷预测(Cross-Project Defect Prediction, CPDP)方法, 从训练数据选取的角度解决了WPDP面临的上述问题[3-8]。CPDP的可行性虽已从预测精度、代价敏感、实际应用等方面得到初步验证[3, 5-6], 但整体性能相对WPDP依旧还有待提高。

影响CPDP性能的一个最主要问题就是如何为目标项目选择合适的跨项目训练数据。互联网上有着提供大量免费的、可供获取的公开缺陷数据平台, 如PROMISE和Apache。如何有效利用这些资源, 为目标项目选择最相关的异源数据作训练集, 直接关系到CPDP的预测效果。Turhan等[7]表示盲目地为CPDP选择训练数据, 容易导致预测结果的高误报率,为此, 研究者们提出了各种选择策略, 包括:从不同粒度(版本级[8-9]和实例级[10])、不同角度(训练集驱动[4]和测试集驱动[6-7])来实现训练数据的选择。其中, 在实例级的选择过程中, 主要通过计算实例之间的欧氏距离(Euclidean Distance, ED)或余弦相似度(Cosine Similarity, Cosine)来进行训练数据选择, 从而提高CPDP的预测效果。

为目标项目选择合适的训练实例构成训练数据集, 本质上是寻找与目标实例更相似的候选训练实例。关于相似性度量的方法比较多, 除以上提到的两种之外, 常用的还有曼哈顿距离(Manhattan Distance, MD)、马氏距离(Mahalanobis Distance, MD)和相关系数(Correlation Coefficient, CCoef)等。在已有关于CPDP的训练数据选择研究中, 还未有工作系统地研究训练数据选择过程中不同相似性度量方法对预测结果的影响。因此, 本文将对以上问题进行补充回答, 解决以下两个研究问题, 并为CPDP情境下各种相似性度量方法的选择提供指导依据。

RQ1  CPDP训练数据选择过程中, 相似性度量方法的选取是否影响预测效果?

RQ2  采用哪种相似性度量方法得到的CPDP效果更好?

1 相关研究

在软件工程领域, 软件缺陷预测研究一直是个热点, 人们主要围绕建模方法、度量指标、数据处理、评价方法等方面进行研究[11-14], 但已有研究主要聚焦于同一软件项目的不同版本间的预测, 即项目内缺陷预测(WPDP), 但此类预测的结果对历史数据具有很大的依赖性, 对于局部数据受限的项目效果欠佳。为此, 有研究者提出建立跨项目缺陷预测(CPDP)方法。

Briand等[9]最早提出跨项目缺陷预测, 利用开源软件Xpose的缺陷数据为Jwriter作预测。Zimmermann等[1]首次从数据、领域、过程三个方面对CPDP进行分析验证, 发现成功的CPDP并不是很多, 且用于CPDP的项目之间预测不具对称性。随后, 为验证CPDP的可行性, Rahman等[5]从成本敏感性角度对比了与WPDP的优势; He等[3]从实践经验评价的角度验证了CPDP结果的可接受性。

构建CPDP的一个主要问题是如何从大量候选数据集中寻找合适的部分用于模型训练[4]。在训练数据的选择问题上, Turhan等[6]使用基于欧氏距离的最近邻方法为每个测试实例选择最接近的10个候选训练实例, 实验结果验证了使用跨项目数据构建缺陷预测模型的实用性。在此基础上, Peter等[4]提出了一种使用候选训练数据集来指导整个训练数据选择过程的策略, 结果发现所提方法可以提高CPDP的预测成功率。同样基于最近邻方法, Ryu等[10]提出一种混合式的实例选择方法, 该选择方法不仅考虑实例的局部知识, 还通过朴素贝叶斯充分利用全局知识, 从而提高了CPDP的召回率并降低了预测过程的误报率。

近年来, 迁移学习技术越来越受关注, 并成功应用于CPDP模型的改进当中。通过将不同项目数据之间的差异转换为训练实例的权重, Ma等[15]提出了一种迁移朴素贝叶斯(Transfer Naive Bayes, TNB)方法;程铭等[16]提出一种加权贝叶斯迁移学习算法。为缓解跨项目数据与目标项目数据之间的差异;Nam等[17]在对缺陷数据标准化后引入迁移学习方法, 提出一种改进的迁移组件分析(Transfer Component Analysis, TCA)方法;Chen等[18]也提出一种新颖的双迁移boosting算法。

另外, 由于现实中不同项目数据所使用的指标类型与规模可能不一样, 导致CPDP在选择训练数据时受到挑战。为解决这类问题, He等[19]首次提出了利用指标值的分布特性将训练数据进行转换的方法, 随后Nam和Kim提出一种基于指标匹配和选择的方法, 改进了这类问题的解决方法[20]。Jing等[21]也通过对训练数据和目标数据采用统一的表示方式, 引入典型关联分析进一步对CPDP中异质指标问题进行了研究。

关于CPDP的研究还涉及分类器改进[22-23]、特征选择[24]、类的不均衡性[25]等方面。本文着重关注跨项目训练实例的选取问题, 相比已有工作, 主要贡献归纳为:

1) 从训练数据选择的角度系统分析了相似性度量方法对CPDP结果的影响。

2) 对比分析了四种常用的相似性度量方法的差异, 发现余弦相似性与相关系数选择的训练实例质量更高, 其次是欧氏距离。

2 跨项目缺陷预测

CPDP旨在利用从源项目(训练集)Ps中获取的知识来实现对目标项目(测试集)Pt的预测(st)。假设每个项目Pin个实例(类文件)组成, 即Pi={I1, I2, …, In}, 每个实例Ii可通过一系列度量指标进行量化, 表示为Ii={fi1, fi2, …, fim}, m为用于度量实例的指标个数, 常见的有源代码指标、网络指标、过程指标等等。若有项目集P={P1, P2, P3, P4}, 其中P1P2P3P4为不同的项目, 要对P4进行CPDP预测(Pt=P4), 则Ps={P1, P2, P3}。

如果直接对Ps进行训练, 用得到的模型为P4预测, 效果很有可能不佳, 因为Ps是由三个不同项目的实例组成, 其中的一些实例可能与P4中的实例相关程度不大, 正如前面所提到, 将不加以挑选的实例数据直接用作训练数据容易引入偏见, 导致预测结果高误报率。因此, 本文有必要为目标项目Pt中的每个实例从Ps中挑选与其最相似的top-k个实例, 构成最终用于CPDP建模的训练数据集。

3 研究方法

文章研究结构框架可描述为如图 1所示:①首先, 为目标项目的每个实例返回最相似的top-k个候选训练实例, 从而得到选择的训练集; ②由于候选训练集中一个候选实例可能被多个目标实例所选择, 因此还需进一步对选择得到的训练实例集作去重工作, 得到精简后的训练数据集; ③采用一种分类器(Logistic回归(Logistic Regression, LR))对精简后的训练数据进行模型训练, 并将模型用于测试集的预测; ④根据步骤①中应用的相似性度量方法的不同, 对得到的CPDP性能进行对比分析。

图 1 研究结构框架
3.1 相似度度量方法

图 1的步骤①中对训练实例作选择时需要计算各候选训练实例与目标实例之间的相似度, 将与目标实例最相似的top-k个实例挑选出来。根据上节介绍, 每个实例可通过引入一系列源代码度量指标来量化为一个向量Ii={fi1, fi2, …, fim}(度量指标描述见表 2)。基于量化后的实例, 本文将引入4种常见的相似度度量方法, 计算方式如下:

表 2 度量指标描述

欧氏距离:

$ E{D_{ij}} = \sqrt {\sum\limits_{k = 1}^m {{{\left( {{f_{ik}}-{f_{jk}}} \right)}^2}} } $

曼哈顿距离:

$ M{D_{ij}} = \sum\limits_{k = 1}^m {\left| {{f_{ik}}-{f_{jk}}} \right|} $

余弦相似度:

$ Co{s_{ij}} = \frac{{\sum\limits_{k = 1} {{f_{ik}}-{f_{jk}}} }}{{\sqrt {\sum\limits_{k = 1} {{f_{ik}}^2} } \sqrt {\sum\limits_{k = 1} {{f_{jk}}^2} } }} $

相关系数:

$ {\rho _{ij}} = \frac{{Cov\left( {{I_i}, {I_j}} \right)}}{{\sqrt {D\left( {{I_i}} \right)} \sqrt {D\left( {{I_j}} \right)} }} $
3.2 数据

实验使用目前互联网上公用的PROMIS平台提供的10个开源项目的34个版本数据(见表 1), 其中平均实例数为每个项目各版本中包括的实例个数的平均值, 最后一列表示每个项目中缺陷所占的平均比率。所选取的10个项目的版本数为2~5, 版本中每个实例表示一个类文件(.java), 包括20个用于量化实例的源代码指标, 其中:CK套件10个、Martins指标2个、QMOOM套件5个、McCabe's CC指标2个, 以及代码行LOC, 最后一个为该实例包含的缺陷数(见表 2)。

表 1 实验数据信息

实行CPDP之前, 需要为目标项目确定一个候选的训练数据集。本文涉及的34个版本每个都将被选作目标项目一次。根据构建CPDP的要求, 本文为CPDP初始化训练数据集时必须排除与目标项目来自同一个项目的其他版本。如以Xalan-2.5为例, 其初始的训练数据集不能包含Xalan-2.4和Xalan-2.6两个版本。

需要注意的是, 原始数据集中最后一列bug属性作为实验的因变量, 需要对其进行预处理, 即将其转换成二值分类(0或1), 即仅当bug数等于0时本文才判定该类没有缺陷(标记为0);否则, 为有缺陷(标记为1)。考虑到不同度量指标值的规模不一样, 本文采用max-min函数对每一个指标列对应的数值fij进行归一化处理, 确保实例选择过程中各指标值具有相同的权重。另外, 考虑到指标值的不均衡分布--近似幂律分布, 根据之前的研究经验[26], 对指标值进行对数处理可改进预测结果。为了避免出现对数值0取对数操作, 所有指标值fij替换为ln(fij+1)。

3.3 分类器与评价指标

正如文献[17, 19-21], 本文选取常用的Logistic回归(LR)分析作为预测过程的分类算法, 算法中涉及的一系列参数均以数据挖掘领域知名的开源工具Weka中提供的默认参数为主。LR用于考虑在具有n个独立变量的向量X={X1, X2, …, Xn}的形式下, 学习P(Y|X)函数, 其中Y是一个离散值。本文的目的是对实例进行二值分类, 所以Y取值0或1。式(1)和(2)的总和等于1, w是权重值, 具体计算公式如下:

$ P\left( {Y = 1|X} \right) = 1/\left[{1 + \exp \left( {{w_0} + \sum\limits_{i = 1}^n {{w_i}{X_i}} } \right)} \right] $ (1)
$ P\left( {Y = 0|X} \right) = \frac{{\exp \left( {{w_0} + \sum\limits_{i = 1}^n {{w_i}{X_i}} } \right)}}{{1 + \exp \left( {{w_0} + \sum\limits_{i = 1}^n {{w_i}{X_i}} } \right)}} $ (2)

在预测结果的性能评价上, ROC曲线覆盖面积(Area Under Curve, AUC)常用作衡量分类模型好坏的标准[27]。AUC等价于预测模型识别一个随机选择的缺陷类概率高于随机选择一个无缺陷类的概率。AUC值小于0.5意味着极低的真阳性率和高误报率。相比传统的精度指标, AUC更适用于类分布不平衡情况下的预测。考虑到本文所使用的实验数据的缺陷实例与非缺陷实例存在分布不均衡性, 所以本文选择用AUC作评价指标。

4 实验结果 4.1 预测结果影响分析

根据4种不同的相似度度量方法, 本文采取文献[4, 6]所使用的措施, 为每个目标实例返回top-10个最相似的训练实例, 再分别应用得到的4种精简过的训练数据集构建CPDP, 对比分析预测结果, 如图 2所示。

图 2 4种选择方法下得到的CPDP结果对比

图 2中给出了4种情况下CPDP结果的箱线图, 不难发现预测结果的分布有所差别, 其中采用余弦相似度与相关系数两种方法效果更好, 对应的AUC中位数分别为0.663和0.652, 而使用两种基于距离方法的预测结果对应为0.625和0.621, 其中预测结果的最大改进比例达到6.7%。实验结果说明, RQ1的回答是肯定的, 即在训练数据选择过程中, 不同选择算法对预测结果是有影响的。

为了进一步分析这种影响的显著程度, 本文对4种方法的预测结果进行假设检验。Wilcoxon符号秩检验作为典型的实现配对样本的非参数检验, 是解决当前问题的首选。本文建立原假设H0:两种方法预测结果来自同一个分布, 即它们之间没有差别。因此, 在显著性水平为0.05情形下, 如果检测的显著性水平大于0.05, 表示假设成立, 接受H0;否则, 假设不成立, 需要拒绝H0。根据表 3结果显示, 采用余弦相似度和相关系数方法与其他两种基于距离方法的结果显著性水平都远小于0.05, 说明此两种方法的结果与其他两种方法的结果有显著差异。结合图 2结果可见,在训练数据选择过程中, 不同选择算法对预测结果不仅有影响, 而且影响相对比较显著。

表 3 预测结果的Wilcoxon符号秩检验(显著性水平0.05)
4.2 方法对比分析

上一节内容回答了RQ1, 为解决第二个研究问题RQ2, 本文进一步对比几种方法之间的差异, 以及分析各种方法可能适用的场景。

表 3的结果还可发现, 余弦相似度和相关系数两种方法之间没有显著差异, 而欧氏距离与曼哈顿距离方法之间也没有显著差异。以上结果是针对本次实验所有10个软件项目的34个版本数据的整体结果而言, 但在单个项目下, 4种相似性度量方法对CPDP的影响是否依然如此, 还有待进一步分析。因此, 本文统计了每个项目下采用四种方法构建CPDP结果。表 4结果显示, 在前三个项目Ant、Camel、Ivy中, 相关系数CCoef方法占优, 且在Ivy项目下结果最大为0.747, 而其他7个项目中余弦相似性方法取得结果最好, 最大值为0.706。根据表 1提供的项目缺陷率信息, 不难发现前三个项目的缺陷率相比后面项目的缺陷率倾向于更低。因此, 在余弦相似度Cosine和相关系数CCoef两种方法中, 目标数据集缺陷率偏低时(如≤0.25的阈值), 可优先采用相关系数CCoef方法来实现训练数据的选择; 反之, 推荐采用余弦相似性Cosine方法。

表 4 每个项目的预测结果统计

尽管两个基于距离的相似性度量方法构建的CPDP性能不如前两个方法, 从统计学角度也没有显著差异, 但从表 3中依旧可看出, 欧氏距离方法整体上比曼哈顿方法要好, 且在已有文献[3-4, 6, 7]中, 作者均以欧氏距离来实现训练实例的选择。所以, 从距离角度而言, 优先推荐选择欧氏距离。

因此, 对于RQ2, 在作训练实例数据选择时, 优先推荐余弦相似性和相关系数方法, 其中若目标数据集缺陷率低于0.25时, 首选相关系数方法, 否则推荐使用余弦相似性。然而, 相比曼哈顿距离, 欧氏距离更好。

5 讨论

针对提出的两个研究问题, 本文取得了一些发现, 但实验过程中也潜在一些有效性威胁, 具体包括:

首先, 选用的实验数据来源于公开的PROMISE平台, 虽然数据提供者Jureczko等[28]曾表示在数据收集过程中可能存在一些不足, 但这些数据已成功地应用于已有诸多文献[3-4, 6-8, 19]。因此, 本文坚信实验结果具有一定的可信性与可重复性。另外, 在采用相似性度量方法对候选训练实例进行选择过程中, 我们并没有引入特征选择操作, 主要原因是本文的主要目标是分析不同相似性度量方法是否对CPDP的训练数据选择质量有影响, 而并非以提出一种改进CPDP性能为目的的算法; 再者, 本次用于刻画实例特征的度量指标只有20个, 相对而言并不算多, 所以, 实验过程中没有考虑特征选择的作用。当然, 在引入特征选择情境下, 本文的实验结果可能有所不同, 但实验过程与分析方法依旧适用。

其次, 用于CPDP模型训练的分类器仅采用了Logistic回归, 据我们所知, 朴素贝叶斯也常被用于CPDP研究中, 如文献[3, 6, 19]。Hall等[13]指出使用简单的朴素贝叶斯和Logistic回归分类器预测效果更好, 但也建议在缺陷预测严重有必要考虑相关情境。在本文所使用的10个项目数据集上, 已有文献[3-4, 29]中对比了几类常规分类器下结果, 整体上差别不是很明显, 且结果趋势一致, 所以, 文本使用单一的Logistic回归分类器对结论的影响不大。

最后, 在4.2节中, 对于余弦相似度Cosine和相关系数CCoef两种方法的抉择问题, 文章从目标数据集缺陷率视角进行判断, 并基于使用的34个数据集选取0.25作为一个大致的阈值。需要说明的是, 该值并非适用于所有项目, 不同项目数据集得出的阈值可能会有所差别。至于阈值的取值问题, 有待后期工作中通过采用更大规模的项目数据集来加以学习, 从而为选择者提供决策依据。

6 结语

本文围绕跨项目的软件缺陷预测展开研究, 针对建模过程中跨项目训练数据的选择问题, 分析不同的相似性训练实例选择方法对预测结果的影响以及各种方法之间的差异。研究结果表明:1)采用不同的相似性度量方法不仅对跨项目缺陷预测结果具有影响, 而且从统计学角度分析发现影响比较显著; 2)采用余弦相似度和相关系数两种相似性度量方法能够选择出更高质量的训练实例, 并且前者更倾向适用于缺陷率高于0.25的目标项目。

后续工作中, 我们将进一步在更多的数据集作分析, 验证实验结果的一般性, 以及在训练实例选择过程中引入特征降维处理, 分析带特征降维的实例选择对跨项目缺陷预测结果的影响。

参考文献
[1] ZIMMERMANN T, NAGAPPAN N, GALL H, et al. Cross-project defect prediction a large scale experiment on data vs. domain vs. process[C]//ESEC/FSE 2009:Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. New York:ACM, 2009:91-100. http://dl.acm.org/citation.cfm?id=1595713&dl=ACM&coll=DL
[2] RAINER A, GALE S. Evaluating the quality and quantity of data on open source software projects[EB/OL].[2015-01-01]. http://uhra.herts.ac.uk/handle/2299/2076. http://uhra.herts.ac.uk/bitstream/handle/2299/2076/902200.pdf;sequence=1
[3] HE Z, SHU F, YANG Y, et al. An investigation on the feasibility of cross-project defect prediction[J]. Automated Software Engineering, 2012, 19 (2) : 167-199. doi: 10.1007/s10515-011-0090-3
[4] PETERS F, MENZIES T, MARCUS A. Better cross company defect prediction[C]//Proceedings of the 10th Working Conference on Mining Software Repositories. Piscataway, NJ:IEEE, 2013:409-418. http://ieeexplore.ieee.org/document/6624057/
[5] RAHMAN F, POSNETT D, DEVANBU P. Recalling the imprecision of cross-project defect prediction[C]//Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering. New York:ACM, 2012:1-11.
[6] 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. doi: 10.1007/s10664-008-9103-7
[7] TURHAN B, MISIRLI A T, BENER A. Empirical evaluation of the effects of mixed project data on learning defect predictors[J]. Information & Software Technology, 2013, 55 (6) : 1101-1118.
[8] HERBOLD S. Training data selection for cross-project defect prediction[C]//Proceedings of the 9th International Conference on Predictive Models in Software Engineering. New York:ACM, 2013:1-10.
[9] BRIAND L C, MELO W L, WUST J. Assessing the applicability of fault-proneness models across object-oriented software projects[J]. IEEE Transactions on Software Engineering, 2002, 28 (7) : 706-720. doi: 10.1109/TSE.2002.1019484
[10] RYU D, JANG J, BAIK J. A hybrid instance selection using nearest-neighbor for cross-project defect prediction[J]. Journal of Computer Science and Technology, 2015, 30 (5) : 969-980. doi: 10.1007/s11390-015-1575-5
[11] 王青, 伍书剑, 李明树. 软件缺陷预测技术[J]. 软件学报, 2008, 19 (7) : 1565-1580. ( WANG Q, WU S J, LI M S. Software defect prediction[J]. Journal of Software, 2008, 19 (7) : 1565-1580. doi: 10.3724/SP.J.1001.2008.01565 )
[12] CATAL C. Software fault prediction:a literature review and current trends[J]. Expert Systems with Applications, 2011, 38 (4) : 4626-4636. doi: 10.1016/j.eswa.2010.10.024
[13] HALL T, BEECHAM S, BOWES D, et al. A systematic literature review on fault prediction performance in software engineering[J]. IEEE Transactions on Software Engineering, 2012, 38 (6) : 1276-1304. doi: 10.1109/TSE.2011.103
[14] 陈翔, 顾庆, 刘望舒, 等. 静态软件缺陷预测方法研究[J]. 软件学报, 2016, 27 (10) : 1-25. ( CHEN X, GU Q, LIU W S, et al. Survey of static software defect prediction[J]. Journal of Software, 2016, 27 (10) : 1-25. )
[15] MA Y, LUO G, ZENG X, et al. Transfer learning for cross-company software defect prediction[J]. Information and Software Technology, 2012, 54 (3) : 248-256. doi: 10.1016/j.infsof.2011.09.007
[16] 程铭, 毋国庆, 袁梦霆. 基于迁移学习的软件缺陷预测[J]. 电子学报, 2016, 44 (1) : 115-122. ( CHENG M, WU G Q, YUAN M T. Transfer learning for software defect prediction[J]. Acta Electronica Sinica, 2016, 44 (1) : 115-122. )
[17] NAM J, PAN S J, KIM S. Transfer defect learning[C]//Proceedings of the 2013 International Conference on Software Engineering. Piscataway, NJ:IEEE, 2013:382-391. http://people.csail.mit.edu/hunkim/papers/nam-icse2013.pdf
[18] CHEN L, FANG B, SHANG Z, et al. Negative samples reduction in cross-company software defects prediction[J]. Information & Software Technology, 2015, 62 (C) : 67-77.
[19] HE P, LI B, MA YT. Towards cross-project defect prediction with imbalanced feature sets[EB/OL].[2015-01-01]. http://arxiv.org/abs/1411.422.
[20] NAM J, KIM S. Heterogeneous defect prediction[C]//Proceedings of the 10th Joint Meeting of the European Software Engineering Conference and the ACM Sigsoft Symposium on the Foundations of Software Engineering. New York:ACM, 2015:508-519.
[21] JING X, WU F, DONG X, et al. Heterogeneous cross-company defect prediction by unified metric representation and CCA-based transfer learning[C]//Proceedings of the 10th Joint Meeting of the European Software Engineering Conference and the Symposium on the Foundations of Software Engineering. New York:ACM, 2015:496-507. http://dl.acm.org/citation.cfm?id=2786813&dl=ACM&coll=DL&CFID=694103131&CFTOKEN=35568376
[22] ZHANG F, ZHENG Q, ZOU Y, et al. Cross-project defect prediction using a connectivity-based unsupervised classifier[C]//Proceedings of the 38th International Conference on Software Engineering. New York:ACM, 2016:309-320.
[23] XIA X, LO D, PAN S J, et al. HYDRA:massively compositional model for cross-project defect prediction[J/OL]. IEEE Transactions on Software Engineering.[2016-02-10]. http://doi.ieeecomputersociety.org/10.1109/TSE.2016.2543218.
[24] WANG S, LIU T, TAN L. Automatically learning semantic features for defect prediction[C]//Proceedings of the 38th International Conference on Software Engineering. New York:ACM, 2016:297-308. http://dl.acm.org/citation.cfm?id=2884804
[25] RYU D, BAIK J. Effective multi-objective naïve Bayes learning for cross-project defect prediction[J/OL]. Applied Soft Computing.[2016-02-01]. http://dx.doi.org/10.1016/j.asoc.2016.04.009.
[26] SONG Q, JIA Z, SHEPPERD M, et al. A general software defect-proneness prediction framework[J]. IEEE Transactions on Software Engineering, 2011, 37 (3) : 356-370. doi: 10.1109/TSE.2010.90
[27] FAWCETT T. An introduction to ROC analysis[J]. Pattern Recognition Letters, 2006, 27 (8) : 861-874. doi: 10.1016/j.patrec.2005.10.010
[28] JURECZKO M, MADEYSKI L. Towards identifying software project clusters with regard to defect prediction[C]//Proceedings of the 6th International Conference on Predictive Models in Software Engineering. New York:ACM, 2010:1-10. http://dl.acm.org/citation.cfm?doid=1868328.1868342
[29] HE P, LI B, LIU X, et al. An empirical study on software defect prediction with a simplified metric set[J]. Information and Software Technology, 2015, 59 (C) : 170-190.