基于深度信念网络算法支持向量机的软件缺陷预测方法技术

技术编号:19341707 阅读:22 留言:0更新日期:2018-11-07 13:44
本发明专利技术公开了一种基于深度信念网络算法支持向量机DBN‑SVM的软件缺陷预测方法,采用深度信念网络DBN对从待预测软件提取的软件度量属性进行降维;降维后的数据进入支持向量机SVM进行分类,得到软件缺陷预测结果。本发明专利技术采用新型的软件缺陷分布预测模型——DBN‑SVM,解决软件缺陷分布的预测中,由多维测量引起的数据冗余所导致的预测精度降低的问题。

Software defect prediction method based on Support Vector Machine Based on deep belief network algorithm

The invention discloses a software defect prediction method based on deep belief network algorithm support vector machine DBN SVM, which uses deep belief network DBN to reduce dimensionality of software metrics attributes extracted from the software to be predicted, and after dimensionality reduction, data are classified into support vector machine SVM to obtain software defect prediction results. The invention adopts a new software defect distribution prediction model, DBN SVM, to solve the problem of reducing prediction accuracy caused by data redundancy caused by multi-dimensional measurement in software defect distribution prediction.

【技术实现步骤摘要】
基于深度信念网络算法支持向量机的软件缺陷预测方法
本专利技术涉及软件缺陷预测技术,尤其涉及一种基于深度信念网络算法支持向量机的软件缺陷预测方法。
技术介绍
软件缺陷分布预测在软件开发过程中起着重要的作用,对缺陷软件模块的及时准确预测将能够大大提高软件测试资源的有效配置。静态分析能够在软件发布前发现软件中存在的缺陷,且不会降低软件运行的效率。因此近年来,许多研究人员通过提取软件模块的软件度量属性形成训练样本,并利用机器学习技术构建软件缺陷分布预测模型,将机器学习技术应用于软件缺陷静态预测领域。传统的缺陷预测模型主要指在缺陷数据充足的情况下,利用常用的有监督的机器学习算法,对同一软件中的缺陷数据进行训练和预测的模型,其中常用到的机器学习算法主要包括决策树(DT)、随机森林(RF)、朴素贝叶斯(NB)、逻辑回归(LR)、支持向量机(SVM)、人工神经网络(ANN)等。但随着现代大规模软件系统在软件规模和软件复杂性方面的增长,使用机器学习方法构建软件缺陷预测模型需要面对巨大的高维度数据。在软件缺陷预测过程中,过多的度量属性将会导致数据冗余,从而导致较高的预测成本和较低的预测精度,同时由于数据具有非线性的特征,在单独使用SVM,构建分类超平面并进行预测时会形成干扰。
技术实现思路
有鉴于此,本专利技术提供了一种基于深度信念网络算法支持向量机(DBN-SVM)的软件缺陷分布预测方法,采用新型的软件缺陷分布预测模型——DBN-SVM,解决软件缺陷分布的预测中,由多维测量引起的数据冗余所导致的预测精度降低的问题。为了解决上述技术问题,本专利技术是这样实现的:一种基于深度信念网络算法支持向量机DBN-SVM的软件缺陷预测方法,包括:采用深度信念网络DBN对从待预测软件提取的软件度量属性进行降维;降维后的数据进入支持向量机SVM进行分类,得到软件缺陷预测结果。优选地,DBN-SVM模型的样本数据集来自美国国家航空航天局NASA的软件缺陷预测数据集MDP。优选地,选取MDP中的JM1、MC1和PC5数据集进行训练和验证。优选地,DBN-SVM模型的训练包括如下步骤:步骤1、在样本数据集中选择部分作为训练集X,用于对DBN进行预训练,获得经过降维的训练集X1以及构建好的DBN;步骤2、将所述训练集X1输入SVM分类器,对分类器进行训练;步骤3、从所述样本数据集中选择测试集Y,输入训练好的DBN-SVM,获得预测结果,与实际结果进行比较,以验证模型效果。优选地,将样本数据集随机分为10个子集;每次选取其中一个子集作为测试集,而剩余的9个子集被用作训练集,采用十倍交叉验证,共进行10次验证实验;将10次实验结果与实际结果进行比较,并取十次比较的平均值来评价模型的性能。有益效果:(1)本专利技术采用DBN和SVM构建两层网络,DBN可以解决软件度量属性数据冗余的问题,达到降维的作用。降维后的数据使用SVM进行分类,使得最后的缺陷分布预测结果较其他传统的预测技术相比拥有更高的准确度,同时由于DBN的使用,使得本专利技术较其他基于神经网络的缺陷预测方法相比,能够有效地提高神经网络训练速度。(2)与传统预测方法相比,本专利能够有效地提取和处理源程序的数据特征,性能优于SVM、LLE-SVM、NPE-SVM等部分缺陷预测方法。附图说明图1为MDP数据中的不同数据集。图2为数据集中包含的软件度量属性。图3为DBN进行预训练的结构。图4为DBN和SVM构建的两层网络。具体实施方式下面结合附图并举实施例,对本专利技术进行详细描述。为了更准确地预测软件中的各种缺陷以提高软件的质量,降低高维软件度量数据的维度是非常有必要的事情。流形学习是处理高维数据的一种重要方法,它可以发现隐藏在高维软件度量数据中的真实结构。目前,研究者主要提出了局部线性嵌入(LLE)、邻域嵌入保护(NPE)以及等距特征映射等方法。经过降维之后的度量数据还需要使用机器学习的方法构建预测模型对其进行分类。受深度学习在图像处理、语音识别、和自然语言处理方面的成功启发,本申请认为深度信念网络(DBN)等深度学习方法也可以成为检测软件缺陷的有效方法。DBN,DeepBeliefNets,是一种神经网络算法。DBN由若干层神经元构成,组成元件是受限玻尔兹曼机(RBM)。使用DBN对特征进行学习,通过训练其神经元间的权重,能够保留原始特征的特点,同时降低特征的维度。DBN可以有效在第一层降低数据维度,降低高维度数据对SVM带来的干扰。与其他神经网络相比,DBN的最大优点是,计算速度更快,进而有效解决了大型神经网络训练速度慢的问题。因此,本专利技术提出了一种结合深度信念网络和支持向量机的新型软件缺陷分布预测模型,其构建深度信念网络对软件度量属性进行有效特征提取,从而实现数据降维,然后利用降维后的数据构建缺陷分布预测模型,该模型使用SVM作为软件缺陷分布预测模型的基本分类器。可见,本专利技术采用DBN和SVM构建两层网络,如图4所示,DBN可以解决软件度量属性数据冗余的问题,达到降维的作用。降维后的数据使用SVM进行分类,使得最后的缺陷分布预测结果较其他传统的预测技术相比拥有更高的准确度,同时由于DBN的使用,使得本专利技术较其他基于神经网络的缺陷预测方法相比,能够有效地提高神经网络训练速度。下面对本专利技术进行详细描述。步骤1:获得软件缺陷预测数据集。本专利技术使用的实验数据来自NASA的MDP,它被广泛应用于软件缺陷预测研究。它包含13个数据集,如下图1所示。每个数据集合包含多个样本,每个样本对应于一个软件模块,并且每个软件模块由21个静态代码属性,以及1个标识属性组成。静态代码属性对每条数据中进行标识,包括代码行(Loc),Halstead属性和McCabe属性,以及最后的判断标签,该标签的值表示该条数据所对应的软件是否具有缺陷,有缺陷为true,无缺陷为false。在本专利中选择了NASA中JM1,MC1和PC5的数据集进行训练和验证。用户可以从中选择特定的数据集作为样本数据集。该步骤将在缺陷分布预测模型开始预测之前完成。步骤2:在样本数据集中选择训练集,用于构建DBN,进行预训练,获得经过降维的训练集以及构建好的DBN。该步骤是在步骤1获得的样本数据集之上选取训练集X和测试集Y,训练集X用于构建DBN,进行预训练;测试集则用于检验模型构建成果。为了验证模型的预测能力,本专利采用十倍交叉验证方法。首先,将步骤1获得的样本数据集随机分为10个子集。每次实验中,选取其中一个子集被作为测试集,而剩余的9个子集被用作训练集,总共进行10个验证实验。经过10次实验,我们通过10次实验的平均值来评价模型的性能。每次使用的训练集和测试集分别用X和Y进行表示。使用训练集X对DBN进行预训练。本专利预测模型中的DBN由5个堆叠RBM构成,其具体结构如下图3所示。将之前获得的训练集X分为两部分,将判断标签这一属性单独提出,剩余的部分作为最底层RBM的显示层的输入,通过训练调整该RBM中隐藏层与显示层的权值参数,然后将该隐藏层作为第二个RBM的输入,充分训练第二个RBM之后,继续向上执行训练步骤,检测权值并生成新的权值;直到在顶层的RBM训练时,将判断标签与前一个隐藏层的输出合并作为该层RBM的输入,经过训练后输出。该输出即为经过预训练的训练本文档来自技高网...

【技术保护点】
1.一种基于深度信念网络算法支持向量机DBN‑SVM的软件缺陷预测方法,其特征在于,包括:采用深度信念网络DBN对从待预测软件提取的软件度量属性进行降维;降维后的数据进入支持向量机SVM进行分类,得到软件缺陷预测结果。

【技术特征摘要】
1.一种基于深度信念网络算法支持向量机DBN-SVM的软件缺陷预测方法,其特征在于,包括:采用深度信念网络DBN对从待预测软件提取的软件度量属性进行降维;降维后的数据进入支持向量机SVM进行分类,得到软件缺陷预测结果。2.如权利要求1所述的方法,其特征在于,DBN-SVM模型的样本数据集来自美国国家航空航天局NASA的软件缺陷预测数据集MDP。3.如权利要求2所述的方法,其特征在于,选取MDP中的JM1、MC1和PC5数据集进行训练和验证。4.如权利要求1所述的方法,其特征在于,DBN-SVM模型的训练包括如下步骤:步骤1、...

【专利技术属性】
技术研发人员:单纯熊雯洁位华胡昌振毛俐旻
申请(专利权)人:北京理工大学北京计算机技术及应用研究所
类型:发明
国别省市:北京,11

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

1