Page 40 - 《软件学报》2025年第5期
P. 40
1940 软件学报 2025 年第 36 卷第 5 期
上的平均值, Imp.行中的下划线数值为 STRACE(AL+SSL) 与其他基准方法性能提升绝对值比例. p-value<0.05*表
示显著提升, p-value<0.01**表示高度显著提升.
表 5 STRACE(AL+SSL) 与基准方法性能比较 (%)
IR(VSM) Baseline(RF) SPLINT STRACE(AL+SSL)
项目
Precision Recall F2 AUC Precision Recall F2 AUC Precision Recall F2 AUC PrecisionRecall F2 AUC
Derby 21.5 59.2 35.1 77.8 39 40 39.8 69.6 47.4 67.5 61 83.2 57.1 77.5 70.7 88.3
Drools 60.3 59.7 47.9 79.1 95.7 47.3 52.6 73.6 100 47.7 53.1 73.8 95.9 78.5 79.8 89
Groovy 36.3 29 24.2 64.3 86.6 73.2 75.5 86.6 87.9 80.8 81.4 90.3 80.5 91.1 87.8 95.5
Infinispan 42.6 41.3 33.3 70.2 76.8 60.8 63.4 80.3 85.9 62 65.4 80.9 74.6 79.8 78.3 89.7
Maven 20 39.1 26.3 68.3 66.7 23.5 27 61.6 66.1 22.6 25.9 61.1 79.1 76.5 76.8 87.9
Pig 70.6 74.2 58.8 84.1 87.9 93.6 92.4 96.2 94.7 95.7 95.5 97.6 96.9 100 99.4 99.9
Avg. 41.9 50.4 37.6 74 75.4 56.4 58.5 78 80.3 62.7 63.7 81.2 80.7 83.9 82.1 91.7
Imp. 38.8 33.5 44.5 17.7 5.3 27.5 23.6 13.7 0.4 21.2 18.4 10.5 - - - -
P1 51.1 14.3 13.4 57.1 21.6 55.2 33.7 77.3 29 59.9 49.2 79.7 45.9 72 64.1 85.8
P2 62.4 40.5 34.8 70.2 53.7 52.1 41.9 75.9 87.4 70.1 72.7 85 82.4 83.5 82.6 91.7
P3 47.9 28.1 24.5 63.8 32.2 10.5 9.7 55.1 100 9.7 11.8 54.9 86.2 62.5 65.8 81.2
P4 16 4.5 4.2 52.2 44.9 37.1 30.7 68.4 37.1 32.8 33.5 66.3 68.4 63.8 63.1 81.8
P5 47.1 18.2 16.6 58.8 61.4 51.9 42.8 74.9 66.8 24.4 27.8 62 71.9 87.2 82.3 92.9
P6 65.2 15.3 14.5 57.6 22.3 15.6 13.3 57.5 97 35.7 40.9 67.9 79.2 70.2 68.1 84.8
P7 41.3 7.5 7.2 53.7 44.1 5.5 5.3 52.7 12.5 4.8 8.1 52.3 47.8 66.7 60.4 83.1
P8 31.3 19.2 16.7 59.2 30.6 18.4 16 58.8 34.7 25 26.5 62.1 38.6 61.1 49.6 79.2
P9 41.7 12.2 11.4 56 2.9 1.6 1.4 50 5.4 3 3.3 51.1 53.2 50.5 50.6 74.8
P10 56.7 24.1 21.8 62 27.7 50.3 34.6 74.6 67.2 44.7 47.8 72.2 74.9 68.1 68.6 84
Avg. 46.1 18.4 16.5 59.1 34.1 29.8 22.9 64.5 53.7 31 32.2 65.3 64.8 68.6 65.5 83.9
Imp. 18.8 50.2 49 24.9 30.7 38.8 42.6 19.4 11.1 37.6 33.4 18.6 - - - -
p-value 0.006** 0.000**0.000**0.000** 0.001** 0.000**0.000**0.000** 0.137 0.000**0.000**0.000** - - - -
1.136 4.451 5.077 4.431 1.528 2.488 4.136 2.529 0.516 2.042 1.952 2.042
Cohen’s d - - - -
(L) (L) (L) (L) (L) (L) (L) (L) (M) (L) (L) (L)
本文的 STRACE(AL+SSL) 模型有着显著的效果提升. 根据 Wilcoxon signed-rank (符号秩) 检验中差异的显著
性 p-value 值和效应量 Cohen’s d 值 (效应量小、中、大的区分临界点分别是: 0.20、0.50 和 0.80) 的结果, STRACE
(AL+SSL) 相对于基于信息检索的矢量空间模型 IR(VSM) 和基于随机森林的机器学习模型 Baseline(RF) 有大幅
度的提升. 在 10 个企业项目上, 与这两类传统模型相比, 综合指标 F2 分数分别平均提升了 49% 和 42.6%, AUC 值
分别平均提升了 24.9% 和 19.4%. 同样的, 6 个开源项目数据上, STRACE(AL+SSL) 相比与这两种传统模型 F2 值
提升了 44.5% 和 23.6%, AUC 值平均提升了 17.7% 和 13.7%. 这是因为, IR 模型是仅利用了软件制品间语义信息
的推荐模型, 其对软件制品间过程信息的利用极其有限. 基于随机森林的 Baseline(RF) 模型受到本文第 2 节详细
解析的数据稀疏性、数据不平衡等问题的影响, 且因为有标签样本中过少的实例数, 使得有监督模型很难学习到
泛化能力较强的分类模型.
相对于半监督模型 SPLINT [44] , 本文的 STRACE(AL+SSL) 模型在无论在开源项目 (+21.2%, +18.4% 和
+10.5%) 还是企业项目 (+37.6%、+33.4% 和+18.6%) 上, Recall、F2 及 AUC 值共 3 个指标上都有显著的提升. 这
是因为 SPLINT 是只依赖于 Baseline(RF) 中构建的初始训练模型生成伪标签的半监督模型, 其生成的伪标签质量
是难以保障的, 尤其在初始模型的训练效果不佳时, 选择伪标签样本加入训练集, 还可能使得模型整体效果不升反
降. 值得注意的是在部分项目 (如开源项目 Drools, Groovy 等, 企业项目 P2, P3 及 P6 等) 上, STRACE(AL+SSL) 相
比于 SPLINT, 其 Precision 存在不足, 其可能的原因之一是由于 STRACE(AL+SSL) 中同时结合了主动学习和半监
督学习, 两个模块中都是用于补充更多无标签数据, 模型可以更好地捕获可追踪性样本空间的整体分布, 从而更加
关注提升召回率 Recall, 相应地精确度 Precision 则会有所下降. 这恰好与恢复软件制品缺失链接, 预测结果得到较
高的召回率 [40] 的期望相吻合. 故 STRACE(AL+SSL) 更加符合本文的任务场景.