Page 237 - 《软件学报》2026年第7期
P. 237
2922 软件学报 2026 年第 37 卷第 7 期
(4) Recall (召回率)
TP
Recall = (18)
TP+FN
(5) F1-score (F1 值)
2×Precision×Recall 2TP
F1-score = = (19)
Precision+Recall 2TP+FP+FN
(6) Specificity (特异性)
TN
Specificity = (20)
TN +FP
(7) G-mean (几何均值)
√
√ TP TN
G-mean = Recall×Specificity = × (21)
TP+FN TN +FP
(8) Balance (平衡准确率)
Recall+Specificity 1 ( TP TN )
Balance = = + (22)
2 2 TP+FN TN +FP
4.3 基线方法
对于跨项目缺陷预测, 本文采用 LR、RF、eCPDP、CodeBERT-PT、MNAFM 等方法作为基线模型; 基线模
型涉及传统机器学习方法、集成学习方法、联邦学习方法、跨项目软件缺陷预测的 state-of-the-art (SOTA) 方法
及预训练模型.
[55]
LR : 一种经典的线性分类模型. 它通过学习输入特征与缺陷概率之间的逻辑函数关系来进行预测.
DPDF [56] : 一种深度森林模型. 该模型充分利用集成学习和深度学习, 通过使用新的级联策略来识别更重要的
缺陷特征, 该策略将随机森林分类器转换为逐层结构.
eCPDP [57] : 一种跨项目缺陷预测技术. 它利用奇异值分解 (SVD) 进行迁移学习, 旨在无需完整的历史目标数
据即可在单元测试阶段对缺陷进行预测.
CodeBERT-PT [58] : 一种基于预训练语言模型 CodeBERT 的方法. 它通过在原始代码上进行微调来学习代码的
深层语义特征, 并直接预测代码模块是否包含缺陷.
MNAFM [59] : 一种异构缺陷预测方法. 它将软件度量转化为图像, 并利用基于注意力机制的元网络 (meta-
network) 来匹配源项目和目标项目的特征, 从而进行缺陷预测.
AC-GAN [60] : 一种基于生成式对抗网络的跨项目缺陷预测方法, 通过 GAN 网络的对抗训练来缩小源项目和目
标项目之间的数据分布差异, 从而提升跨项目缺陷预测的性能.
ALMITY [45] : 一种改进聚合策略的联邦学习方法. 它在联邦学习框架下仅共享模型更新与数据分布信息、不
传原始数据, 并在参数聚合时联合考虑“数据规模-数据平衡度-少数类可学习性”这 3 个属性, 以提升类不平衡数据
上的模型性能.
Fed-OLF [61] : 一种联邦过采样学习框架. 它结合基于扩散模型的本地数据过采样方法 (TabDiT) 和基于局部信
息熵的加权聚合策略 (LEW), 在保护数据隐私的同时, 解决多方协作下的软件缺陷数据不平衡问题并提升模型预
测性能.
4.4 实验方法
本文使用来自 MDP、GitHub-Python、ReLink、PROMISE、AEEEM 和 Enterprise 的 30 个项目作为实验数
据集. 跨项目缺陷预测实验采用留一 (leave-one-out) 法策略, 模拟真实的跨组织数据协作场景. 在该实验中, 数据
集组内的每个项目轮流作为测试集, 其余项目作为训练客户端参与联邦学习. 具体而言, 对于包含 n 个项目的数据
集组, 实验将进行 n 轮, 第 i 轮中项目 i 作为测试集, 项目 1 至 i−1 和 i+1 至 n 作为训练客户端. 实验环境配置为: 华为
Ascend 910B GPU, EulerOS 2.0 操作系统, PyTorch 1.11.0 深度学习框架, 结合 torch-npu 加速库和 CANN-6.3.RC2

