Page 221 - 《软件学报》2020年第9期
P. 221
2842 Journal of Software 软件学报 Vol.31, No.9, September 2020
• 对于一个被定位为包含该缺陷的文件,它的确包含该缺陷,这种结果属于 TP(true positive);
• 对于一个被定位为包含该缺陷的文件,它并不包含该缺陷,这种结果属于 FP(false positive);
• 对于一个被定位为没有该缺陷的文件,它的确包含该缺陷,这种结果属于 FN(false negative);
• 对于一个被定位为没有该缺陷的文件,它并不包含该缺陷,这种结果属于 TN(true negative).
现有的二分类评价指标是基于上述 4 种情况的统计技术来计算的.表 5 对这些分类性能评估指标的计算方
法和使用情况进行了汇总.这些指标的具体含义如下.
(1) Precision(精度):在预测为有缺陷的文件中,有多少比例的文件真正与该缺陷相关;
(2) Recall(召回率):在所有与缺陷相关的文件中,有多少比例的文件被定位为与该缺陷相关;
(3) F1-score(调和平均值):精度和召回率的调和平均值,可以更加客观地评价分类结果;
(4) Accuracy(准确率) [85] :在所有分类结果中,正确分类的文件(包括正确分为与缺陷相关和正确分为与缺
陷无关的文件)占所有文件的比例;
(5) MCC(Matthews correlation coefficient,马修斯相关系数) [82] :表示的是真实类别和预测类别的二元分类
之间的相关系数.
这些指标的计算与设定的排名阈值有关,即:在排名阈值之前的文件被定为包含某缺陷,反之不包含该缺
陷.因为在没有阈值的情况下,任何结果是没有意义的.例如,召回率都为 1.0 而精度都为 k/K(K 是项目中所有文
件的数目,k 是其中包含缺陷的文件数目).在这些指标中使用最多的是精度和召回率,它们都在 11 篇文献中被使
用过.
Table 5 Summary of evaluation metrics for IRBL models in terms of classification performance
表 5 评价 IRBL 模型的分类性能指标汇总
评估指标 计算公式 使用列表
TP
Precision(精度) Precision = [13,39,60−62,71,72,75,82,86,87]
TP + FP
TP
Recall(召回率) Recall = [13,29,39,60−62,71,72,75,82,86,87]
TP + FN
×
2 Precision Recall
×
F1(调和平均值) F 1 = [72,86]
Precision Recall+
TP TN+
Accuracy(准确率) Accuracy = [29,85]
TP + FN + FP TN+
TP TN× − FP FN×
MCC(Matthews 相关系数) MCC = [82]
(TP + FP )(TP + FN )(TN + FP )(TN + FN )
4.2.3 评估工作量的指标
在缺陷定位领域,研究人员发现,上述性能评价指标不能完全满足 IRBL 方法在实际应用中的评估需求.由
于开发人员需要花费有限的工作量(时间和资源)来对 IRBL 方法推荐的结果进行人工审查.在此期间,能够以较
小工作量的找到缺陷所在位置才能够说明一个方法的实际有效性.因此,研究者们从工作量感知(effort aware)
的角度来对结果进行评价.
表 6 中对工作量性能评估指标的计算方法和使用情况进行了汇总,其中大部分评估指标是 Zhao 等人 [36,37]
在 2015 年首先提出的,他们使用代码行数来衡量一个文件在审查时所需花费的工作量.其具体含义如下.
(1) Effort@K:由 Top@K 派生而来,衡量了缺陷定位方法推荐对列表中前 K 个源代码文件进行审查时,开
发人员找到与缺陷报告相关的源代码文件平均需要花费多少工作量;
(2) MAE(mean average effort):由 MAP 派生而来,表示从推荐列表中找出所有与缺陷报告相关的源代码
文件时平均所需花费的工作量;
(3) MFE(mean first effort):由 MRR 派生而来,表示从源代码文件推荐列表中找到第一个与缺陷报告相关
的源代码文件平均所需要的工作量.它的值越小,表示在工作量感知下方法的性能越好.