Page 236 - 《软件学报》2026年第7期
P. 236
刘子扬 等: 基于个性化联邦学习的跨项目软件缺陷预测方法 2921
表 1 实验数据集 (续)
分组 项目 样本数量 度量数量 缺陷率 (%)
ant-1.3 125 16
camel-1.6 965 19.48
ivy-2.0 352 11.36
jedit-4.1 312 25.32
log4j-1.2 205 92.2
[54]
PROMISE 20
poi-2.0 314 11.78
prop-6 660 10
synapse-1.2 269 31.97
tomcat 858 8.97
Xalan-2.4 723 15.21
Software1 1 247 18.2
EnterpriseSDP Software2 2 063 35 24.7
Software3 856 13.1
为补充工业界实际应用场景的验证, 本文还收集了来自北京某科技公司的企业级软件缺陷数据集 EnterpriseSDP.
该数据集包含 3 个由同一开发工作室开发的企业管理系统软件项目, 分别命名为 Software1、Software2 和 Software3.
这 3 个软件项目均采用 Java 语言开发, 面向企业内部管理和业务流程自动化, 涵盖了人力资源管理、财务管理和
项目管理等核心业务模块. 每个项目数据集包含 35 个代码复杂度指标, 涵盖了传统的 Halstead 度量、McCabe 循
环复杂度、面向对象设计度量等维度. 与开源数据集相比, 企业数据集具有更严格的代码规范和更完整的测试覆
盖, 为验证本文方法在工业环境中的实际效果提供了重要的实证基础.
4.2 评价指标
在跨项目软件缺陷预测的联邦学习框架中, 由于不同项目的缺陷分布存在显著差异, 且通常呈现类别不平衡
特征 (缺陷样本通常远少于非缺陷样本), 传统的单一准确率指标难以全面反映模型的预测性能. 因此, 本文采用多
维度评估体系来综合评估联邦学习模型在跨项目软件缺陷预测任务中的性能表现.
具体而言, 选择以下 8 个评估指标的原因如下: (1) AUC (area under curve) 作为主要评估指标, 其不受类别分
布影响的特性使其特别适用于评估跨项目场景下的模型泛化能力; (2) Precision、Recall 和 F1-score 构成经典的
信息检索评估三角, 分别从查准率、查全率和综合性能角度评估模型对缺陷的识别能力; (3) Specificity 补充评估
模型对非缺陷代码的正确识别能力, 与 Recall 共同反映模型的全面性能; (4) G-mean (几何均值) 和 Balance (平衡
准确率) 专门针对不平衡数据集设计, 能够平衡考虑正负样本的分类性能; (5) Accuracy 作为基础指标提供整体分
类性能的参考基准. 这种多指标评估体系能够从不同维度全面、客观地评估联邦学习模型在跨项目软件缺陷预测
任务中的有效性.
设真正例为 TP (true positive), 真负例为 TN (true negative), 假正例为 FP (false positive), 假负例为 FN (false
negative). 各评估指标的计算公式如下.
(1) AUC (曲线下面积)
∫ 1
AUC = TPR d (FPR) (15)
0
TP FP
其中, TPR = , FPR = .
TP+FN FP+TN
(2) Accuracy (准确率)
TP+TN
Accuracy = (16)
TP+TN +FP+FN
(3) Precision (精确率)
TP
Precision = (17)
TP+FP

