欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2020105815837
申请人: 江苏工程职业技术学院
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种可缓解类重叠问题的跨版本深度缺陷预测方法,其特征在于:包括如下:1、跨版本软件缺陷预测中面向深度语义学习的整体框架;2、基于卷积神经网络的语义特征学习模型;3、面向深度语义学习的混合式最近邻清理策略;

具体如下:

1.跨版本软件缺陷预测中面向深度语义学习的整体框架:

该方法采用混合式最近邻清理策略处理深度语义特征学习过程中的类重叠,使用该方法可以自动的从源代码中学习语义和结构特征,为分类器提供基于深度语义学习的特征向量;

该方法首先从训练数据集和测试数据集出发,构建抽象语法树(Abstract Syntax Trees),具体实验中,采用软件开发过程中发布的前一个版本的历史数据作为训练数据集,下一个版本的软件开发数据作为测试数据集;构建抽象语法树过程中,选择具有代表性的语法树节点表示软件模块,每个软件模块构筑符号向量;

符号向量采用one-hot编码方式进行编码,对输入向量进行词嵌入,作为卷积神经网络的输入,卷积神经网络随后从输入向量中自动学习深度语义特征,由于标注过程中的噪音的存在,类重叠不可避免,有必要对深度语义特征进行预处理;考虑在软件缺陷预测数据集中普遍存在的类不平衡问题,对训练数据进行过采样,过采样完的数据集可能会带来更多的类重叠;从近邻出发,对多数类与少数类同时进行清理,处理潜在的重叠软件模块向量;

经过预处理的深度语义特征,作为传统分类器,比如Logistic Regression分类器的输入;

在Logistic Regression分类器上训练分类模型,并对测试数据集进行测试;

2.基于卷积神经网络的语义特征学习模型:

卷积神经网络拥有深度特征提取的能力,基于源代码使用one-hot编码以后的特征向量具有内在的语义和语法结构,通过引入CNN能够创建表征语义信息的新的深度特征向量;

本文提出的基于卷积神经网络的语义特征学习模型采用的是有监督的深度语义学习范式,通过对训练数据集的优化能够生成更加适合当前项目的语义;

假定当前软件项目有文件数目为n,X={x1x2,..xn},软件缺陷预测问题可以被形式化为学习任务,该学习任务从训练数据集中学习预测函数:F:X→Y,yi∈Y={1,0}   (1)

其中yi∈Y,指示软件模块是否含有软件缺陷;

软件项目源文件被编码为one-hot特征向量,以one-hot特征向量输入采用预训练的word2vec模型获取词嵌入向量;对项目文件xi,其one-hot特征向量为表示为该文件中最大特征标记数目;该标记指的是具有代表性的语法树节点,同时剔除了文件中数目小于3的标记;经过word2vec模型处理完以后,得到具有固定长度的词嵌入向量,该向量为vi∈Rp×q;vi表示对应于项目文件xi的词嵌入向量;

训练过的词嵌入向量作为CNN的输入,在输入方向设置多个一维卷积核,从词嵌入向量中提取单词的特征,并将输出结果输入到池化层;为了对优化过程中的参数加以约束,引入正则化,采用dropout方法在反向传播误差更新权值时候随机删除部分神经元;

对池化层输出展开为全连接层,多次迭代训练得到语义特征向量;训练过程中采用minibatch stochastic gradient descent算法,优化器选用Adam optimizer,基于该语义特征向量来判断当前模块是否存在缺陷;

3.面向深度语义学习的混合式最近邻清理策略:

该策略以生成的深度语义特征向量集合为输入,根据集合中标记的不同,将样例分为Cmax和Cmin两类,算法过程大致分为三个步骤:第一个步骤是对少数类样例循环遍历,依据欧式距离选择k个最近邻,并使用随机种子数在某个样例与最近邻之间生成新的样例,迭代完成过采样,实现多数类与少数类之间的平衡,解决类不平衡问题;

第二个步骤是在新生成的少数类集合C′min与多数类集合Cmax上分别进行迭代,依据欧式距离计算得到与样例最近的Nx近邻;如果该近邻的标记与当前的标记不一致,则最终删除,实现对多数类与少数类潜在类重叠模块的清理;

第三个步骤是将第二个步骤的输出{C″min,C′max}作为输入,计算当前两类模块的统计分布值,使用标准K-means聚类算法划分为k簇,对每个簇进行遍历,根据当前簇两个模块的统计分布值删除对应的模块,实现对多数类与少数类潜在类重叠模块的清理。

2.根据权利要求1所述的可缓解类重叠问题的跨版本深度缺陷预测方法,其特征在于:所述面向深度语义学习的混合式最近邻清理策略中的算法1混合式最近邻策略如下:

1)输入:训练数据集T={Cmax,Cmin},其中Cmax属于多数类,Cmin属于少数类,d表示有缺陷模块与所有模块数目的比值;

输出:清理完成的数据集T′={C″′max,C″′min};

2)遍历Cmin.集合中的每个样例;

3)利用欧氏距离选择k最近邻;

4)选择样例xi(nn),生成随机数δ,δ∈{0,1};

5)利用当前样例与xi(nn)生成新样例:xi1=xi+δ*(xi(nn)-xi);

6)将新生成样例加入到Cmin集合,更新集合为C′min;

7)遍历Cmin.集合中的每个样例完成后,遍历Cmin集合中的每个样例;

8)根据预定义的欧式距离计算与当前样例最近的Nx个样例;

9)如果Nx中任意一个样例包含于集合Cmax,则删除;

10)更新集合Cmax为C′max;

11)同理,遍历Cmax集合中的每个样例,删除类重叠样例,更新C′min为C″min;

12)定义当前的输入数据集为{C″min,C′max};

13)计算更新完成以后的当前少数类集合与多数类集合的比值,

14)使用标准K-means算法将数据集分为k簇;

15)循环遍历每个簇;

16)在每个簇中计算少数类集合与多数类集合的比值,

17)如果当前的比值 则删除当前簇中少数类;

18)如果当前的比值 则删除当前簇中多数类;

19)合并所有簇中剩余的样例为新的输出集合T′。