7、提升神经网络在预测缺陷软件中泛化能力的两步法

提升神经网络在预测缺陷软件中泛化能力的两步法

1. 材料与方法
1.1 数据集

数据集是通过合并 12 个 NASA 项目的预清理数据集构建而成。由于每个源数据集包含不同的软件指标集,在合并数据之前,需要找出它们之间的共同指标类型。确定了 19 个数值特征(指标)作为所有数据集的共同指标集,这些指标表征了与软件质量相关的代码特征,包括不同的代码行度量、McCabe 指标、基本和派生的 Halstead 度量以及分支计数。去除了每个数据集中存在的其他指标数据,然后将 12 个数据集合并为一个单一的数据集。

这个跨项目和跨语言的数据集包含了用 C、C++ 和 Java 编写的 17,147 个软件模块的源代码指标,其中 17.1% 的模块存在缺陷,且没有缺失值。由于每个类别的实例数量不同,数据集是不平衡的。但为了验证一种处理不平衡数据集的新方法,没有使用过采样、欠采样、案例加权、成本敏感学习或合成少数过采样技术(SMOTE)等技术来平衡数据集类别。

1.2 机器学习方法和实验协议

人工神经网络(ANN)通过调整权重来最小化预测值与真实值之间的误差,因此 ANN 训练是一个优化问题。传统上,ANN 训练是一步完成的,但这里使用了一种新颖的两步学习方法来减少不平衡数据集的影响,并提高分类器预测软件模块是否有缺陷的性能。

  • 第一步 :使用随机梯度下降算法(反向传播)作为一阶优化方法来调整神经元的权重。
  • 第二步 :在第一步训练之后,使用拟牛顿法(Broyden - Fletcher - Goldfarb - Sha
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值