Page 181 - 《软件学报》2025年第10期
P. 181

4578                                                      软件学报  2025  年第  36  卷第  10  期


                    (3) 对于  B-SZZ、AG-SZZ  和  MA-SZZ  模型, 它们对该变更的预测结果均为有缺陷, 并且预测概率较高, 说明
                 在预测结果上它们与        RA-SZZ  一致. 具体而言, RA-SZZ  对预测结果产生最显著正向贡献的前              3  名度量元分别是
                 nuc、lt 和  la. 对于  B-SZZ, 贡献最显著的前  3  名度量元分别是   la、rexp  和  fix. 与  RA-SZZ  相比, B-SZZ  的错误标注
                 会影响   nuc、lt 和  la 的贡献程度. 对于  AG-SZZ, 贡献最为显著的前       3  名度量元分别为    la、lt 和  rexp. 与  RA-SZZ
                 相比, AG-SZZ  的错误标注会影响      nuc 和  la 的贡献程度. 至于   MA-SZZ, 贡献最为显著的前      3  名度量元分别为     la、
                 rexp  和  nuc. 与  RA-SZZ  相比, MA-SZZ  的错误标注会影响  nuc、lt 和  la 的贡献程度.
                    (4) 通过以上分析发现, 基于贡献程度最高的前             3  名度量元, B-SZZ、AG-SZZ、MA-SZZ     和  RA-SZZ  对预测
                 结果的解释并不完全一致. 然而它们都包含              la 度量元且都对预测为有缺陷的贡献大, 说明增加的代码行数这一度
                 量元是需要开发人员在代码提交中重点关注的.
                    上述解释结果仅涵盖了单个变更的局部影响. 为了进一步研究多次代码变更的解释结果, 本文汇报了所有项
                 目中所有变更的解释结果占比情况, 具体如下.
                    (1) 在类不平衡情况下, 针对每种        SZZ  模型, 计算所有项目中每个变更在         4  种  SZZ  模型上的  SHAP  值, 即每个
                 变更的每个度量元的       SHAP  值.
                    (2) 对于每个项目的每个变更, 计算每个度量元的              SHAP  值占比, 即该度量元的     SHAP  值除以当前变更所有度
                 量元的   SHAP  值之和.
                    (3) 最后, 对于所有项目的所有变更, 计算每个度量元的              SHAP  值占比.
                    图  7  展示了在类不平衡情况下所有项目中所有变更的                4  种  SZZ  模型的局部解释结果占比. 从图       7  中可以观
                 察到, 对于   B-SZZ  模型, 影响程度最大的     3  个度量元是   la (20%)、sexp (11%) 和  ld (9%); 对于  AG-SZZ  和  MA-
                 SZZ  模型, 影响程度最大的     3  个度量元是   la (20%)、sexp (11%) 和  lt (9%), 而对于  RA-SZZ  模型, 影响程度最大的
                 3  个度量元是   nuc (18%)、la (16%) 和  sexp (11%). 这表明, 在所有项目的所有变更中, 局部解释结果与全局解释的
                 结果相一致, 从而证实了全局解释对局部解释的泛化性. 这一发现与先前的研究工作                           [7] 的结论一致. 该研究使用
                 SHAP  对  TensorFlow  项目中的一个缺陷预测变更进行局部解释, 并使用            SHAP  对整个模型进行全局解释, 实验结
                 果验证了局部解释的泛化性.
                    RQ4: SZZ  错误标注的变更是否影响类平衡下的移动             APP  即时缺陷预测模型的解释?
                    研究动机: 在    RQ3  中, 本文研究了在类不平衡情况下          SZZ  错误标注的变更对移动       APP  即时缺陷预测模型解
                 释的影响. 考虑到类不平衡可能会影响模型的解释性, 本问题在                   RQ3  的基础上, 研究在类平衡情况下, SZZ        错误标
                 注的变更对移动      APP  即时缺陷预测模型解释的影响.
                    研究方法: 对于每一个移动         APP  项目, 本文采用    SMOTE  算法对训练数据进行类重平衡, 接着分别使用               B-
                 SZZ、AG-SZZ、MA-SZZ    和  RA-SZZ  标注的数据构建随机森林模型, 然后利用            SHAP  框架对预测结果进行解
                 释, 每种数据标注算法对应一组          SHAP  解释结果, 再整合每种标注算法对应的所有项目的解释结果, 最后对比                     B-
                 SZZ、AG-SZZ、MA-SZZ    与  RA-SZZ  在所有项目上的解释差异, 并重点关注对模型预测结果的影响程度排名
                 前  3  的度量元. 本文将分别从全局和局部的角度分别对模型预测结果进行可解释分析, 其具体实验步骤与                                RQ3
                 描述相同.
                    实验结果: 在全局解释方面, 图        8  展示了  SHAP  框架在所有项目上的      B-SZZ、AG-SZZ、MA-SZZ    和  RA-SZZ
                 即时缺陷预测模型的解释结果. 基于以上观察, 可以得出以下结论.
                    (1) 如图  8  所示, 对  RA-SZZ  模型预测结果的影响程度最大的前          3  名度量元为   nuc、age 和  la. 对于  B-SZZ、
                 AG-SZZ  和  MA-SZZ, 影响程度最大的前    3  名度量元分别为     la、entropy  和  sexp.
                    (2) 相较于  RA-SZZ, nuc 和  age 度量元在  B-SZZ、AG-SZZ  和  MA-SZZ  模型中的影响程度显著下降. 而       la 在
                 B-SZZ、AG-SZZ  和  MA-SZZ  模型中对预测结果的影响程度排名均为第             1.
                    (3) 在类重平衡情况下, B-SZZ、AG-SZZ、MA-SZZ        与  RA-SZZ  在全局解释方面并不一致, 然而它们的前            3
                 名度量元都包括      la 且倾向于对预测为有缺陷的贡献突出, 说明            la 对模型的预测结果有重要影响.
   176   177   178   179   180   181   182   183   184   185   186