摘要:
静态分析工具可以帮助开发人员在项目编码初期定位可能存在缺陷的代码。然而有研究表明,此类工具往往会报告大量的警告,且其中大部分为误报警告。为了增强静态分析工具的可用性,研究者们通常采用统计和机器学习方法将警告分类为有效警告和误报警告。然而,现有警告分类方法并未考虑大量误报警告造成警告数据类不平衡问题,以及误分类代价不等的问题。鉴于此,分别将BP神经网络和基于过采样、阈值操作、欠采样方法的代价敏感神经网络应用到有效警告的分类中。实验结果对比发现,相比BP神经网络,基于代价敏感神经网络方法在有效警告查全率方面平均提高了44.07%,且当有效警告被误分类的代价高于一定值时,代价敏感分类方法能得到更低的分类代价。