一种提高JIT缺陷预测性能的方法技术

技术编号:37819927 阅读:10 留言:0更新日期:2023-06-09 09:53
本发明专利技术公开了一种提高JIT缺陷预测性能的方法,包括:获取CLI模型的输入信息,其中输入信息包含由SZZ注释的有噪声标签实例的数据集;采用不平衡数据概率预测组件获得数据集的预测概率矩阵;根据预测概率矩阵使用自信学习组件估计噪声标签和真实标签的联合分布,重新训练自信学习组件中的分类器;基于分类器判断数据集中的缺陷修改是否正确;根据分类器的预测结果,判断未被标签的缺陷修改是否正确。本方法可以使用CLI作为我们的去噪方法,通过将CLI应用于JIT预测,可以获得高质量的训练集,从而使JIT预测模型能够学习到更准确的类别信息,从而提高预测性能。从而提高预测性能。从而提高预测性能。

【技术实现步骤摘要】
一种提高JIT缺陷预测性能的方法


[0001]本专利技术涉及软件测试
,尤其涉及一种提高JIT缺陷预测性能的方法。

技术介绍

[0002]软件缺陷预测的目的是提前预测可能存在缺陷的软件实体。其基本思想是从软件项目的历史数据中提取特征来表示预测的软件实体,然后将这些特征输入分类器进行训练,得到预测模型,从而预测新生成的软件实体上出现bug的可能性。该方法可以优化资源分配,提高代码质量。传统的缺陷预测模型以文件、模块或包等粗粒度的软件实体为目标。这些用于粗粒度软件实体的模型在实际应用中面临挑战,例如,软件缺陷预测模型可能会将一个巨大的文件预测为缺陷,但对于开发人员而言,浏览整个文件以识别缺陷会消耗大量时间和精力。为了应对挑战,提出了JIT缺陷预测模型,在该模型中,预测的软件实体是由多个代码更改提交而组成的代码更改组合,并且为每个更改提供了一个名为更改分类的模型,以识别代码的潜在错误。
[0003]在JIT缺陷预测中,标签变化需要更加关注。许多JIT缺陷预测模型都使用软件缺陷智能分析技术来标记数据集。但是,SZZ的性能受到很多噪音的影响,这会导致JIT缺陷预测性能显著降低。最近的研究结果表明,绝大多数由SZZ方法自动识别的非功能性bug诱导的提交是假阳性。标签噪声引起的精度下降被认为比特征噪声等其他噪声更有害,在存在噪声标签的情况下,分类模型容易受到噪声标签的影响,从而导致性能下降。

技术实现思路

[0004]根据现有技术存在的问题,本专利技术公开了一种提高JIT缺陷预测性能的方法,具体包括如下步骤:
[0005]获取CLI模型的输入,含有由SZZ注释的有噪声标签实例的数据集X=该数据集X包含n个实例、m类标签;
[0006]使用采用不平衡数据概率预测组件解决类不平衡分布偏差,以生成准确的预测概率。通过对训练集进行随机欠采样的方法,得到均衡训练集,在平衡训练集上构建分类器并使用分类器来预测测试集中每个实例的预测概率;
[0007]使用自信学习组件根据预测的概率矩阵估计噪声标签和真实标签的联合分布,通过阈值t
j
确定真实标签,从而可以计算出计数矩阵
[0008][0009]根据得到的计数矩阵估计出噪声标签和真实标签的联合分布
[0010][0011]使用自信学习组件过滤掉有噪声的样本,减少标签错误,然后根据联合分布将每个i类下的损失权重修正为并重新训练分类器。
[0012]使用分类器判断数据集中的缺陷修改是否正确。对于带有未知标签的更改,我们首先提取相同的特征大小,接下来,这些特征被输入到分类器中。分类器生成预测结果,判断未被标签的缺陷修改是否正确。
[0013]由于采用了上述技术方案,本专利技术提供的一种提高JIT缺陷预测性能的方法,由于CLI模型可以提高JIT模型在分类器中的分类性能。这也证明了CLI对JIT缺陷预测的鲁棒性。因此,在JIT缺陷预测的大多数情况下,本方法可以使用CLI作为我们的去噪方法,通过将CLI应用于JIT预测,可以获得高质量的训练集,从而使JIT预测模型能够学习到更准确的类别信息,从而提高预测性能。这也说明CLI是通过SZZ方法对JIT缺陷预测进行标记错误处理的有效方法。
附图说明
[0014]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1为本专利技术方法的流程图
具体实施方式
[0016]为使本专利技术的技术方案和优点更加清楚,下面结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚完整的描述:
[0017]如图1所示的一种提高JIT缺陷预测性能的方法,具体包括如下步骤:
[0018]S1:获取CLI模型的输入信息;
[0019]其中输入信息含有由SZZ注释的有噪声标签实例的数据集该数据集X包含n个实例、m类标签。
[0020]S2:使用不平衡数据概率预测组件获得数据集的预测概率矩阵。具体步骤如下:
[0021]a)把输入的噪声实例数据集X平均分配成K份,将其中K

1份作为训练集,其余将作为测试集
[0022]b)对训练集进行随机欠采样,得到均衡训练集。我们随机删除多数类中的数据,直到多数类中的数据量大约等于少数类中的数据量
[0023]c)在平衡训练集上构建分类器
[0024]d)使用分类器来预测测试集中每个实例的预测概率。当每份数据被预测时,就可
以得到数据集的预测概率矩阵。该矩阵是一个n行m列的矩阵,表示为
[0025]S3:使用自信学习组件根据预测的概率矩阵估计噪声标签和真实标签的联合分布。具体步骤如下:
[0026]a)输入S2得到的样本预测概率矩阵以及噪声标签
[0027]b)使用阈值t
j
确定每个实例的真实标签
[0028][0029]在等式中,每个类的阈值t
j
是每个班级的期望(平均)自信。同时,阈值t
j
也可以用分位数、中位数等其他统计值来表示。
[0030]当类别j中实例X的预测概率大于或等于类别j的阈值t
j
时,这个实例y
*
的真实标签就是j。
[0031]c)计算计数矩阵
[0032]是一个m行m列的矩阵,矩阵的每一项都包括噪声标签i和真实标签j的实例数,的定义如下
[0033][0034]d)根据得到的计数矩阵估计出噪声标签和真实标签的联合分布
[0035][0036]S4:使用自信学习组件过滤掉有噪声的样本,减少标签错误。具体步骤如下:
[0037]a)使用S3得到的分布矩阵和预测概率(称为PBNR)发现有噪声的数据
[0038]b)在分布矩阵中,非对角线区域被认为是标签错误,使用最大余量的方法在非对角线区域中选择噪声最大的实例
[0039]c)使用噪声标签进行训练,过滤掉有噪声的样本后,根据联合分布将每个i类下的损失权重修正为并重新训练分类器
[0040]S5:根据S4得到的分类器,判断数据集中的缺陷修改是否正确。具体步骤如下:
[0041]a)提取相同的特征大小
[0042]b)把这些特征被输入到分类器中
[0043]c)分类器生成预测结果
[0044]S6:根据分类器的预测结果,判断未被标签的缺陷修改是否正确
[0045]以上所述,仅为本专利技术较佳的具体实施方式,但本专利技术的保护范围并不局限于此,任何熟悉本
的技术人员在本专利技术揭露的技术范围内,根据本专利技术的技术方案及其专利技术构思加以等同替换或改变,都应涵盖在本专利技术的保护范围之内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提高JIT缺陷预测性能的方法,其特征在于包括:获取CLI模型的输入信息,其中输入信息包含由SZZ注释的有噪声标签实例的数据集;采用不平衡数据概率预测组件获得数据集的预测概率矩阵;根据预测概率矩阵使用自信学习组件估计噪声标签和真实标签的联合分布,重新训练自信学习组件中的分类器;基于分类器判断数据集中的缺陷修改是否正确;根据分类器的预测结果,判断未被标签的缺陷修改是否正确。2.根据权利要求1所述的一种提高JIT缺陷预测性能的方法,其特征在于:采用不平衡数据概率预测组件获得数据集的预测概率矩阵采用如下方式:将输入的噪声实例数据集X平均分配成K份,将其中K

1份作为训练集,其余将作为测试集;对训练集进行随机欠采样获得均衡训练集,随机删除多数类中的数据,直到多数类中的数据量大约等于少数类中的数据量;在平衡...

【专利技术属性】
技术研发人员:李辉戚学欣徐志豪郭世凯李晓晨江贺
申请(专利权)人:大连海事大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1