CN107957946B - 基于邻域嵌入保护算法支持向量机的软件缺陷预测方法 - Google Patents
基于邻域嵌入保护算法支持向量机的软件缺陷预测方法 Download PDFInfo
- Publication number
- CN107957946B CN107957946B CN201711250307.7A CN201711250307A CN107957946B CN 107957946 B CN107957946 B CN 107957946B CN 201711250307 A CN201711250307 A CN 201711250307A CN 107957946 B CN107957946 B CN 107957946B
- Authority
- CN
- China
- Prior art keywords
- matrix
- training
- defect prediction
- software
- support vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2132—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on discrimination criteria, e.g. discriminant analysis
- G06F18/21322—Rendering the within-class scatter matrix non-singular
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Complex Calculations (AREA)
Abstract
本发明提出一种基于邻域嵌入保护算法支持向量机的软件缺陷预测方法,用于解决软件度量数据冗余的问题。包括:从软件缺陷预测数据集中选择训练集X1和测试集X2;采用NPE算法对所述训练集X1和测试集X2进行降维;将降维后的训练集Y1作为训练输入集,使用支持向量机SVM进行训练,获得经过训练后的缺陷预测模型;将降维后的测试集Y2作为测试输入集,使用训练后的缺陷预测模型进行预测,将预测结果与实际结果进行比较,如果预测结果满足终止条件,则此时的软件缺陷预测模型为最优软件缺陷预测模型;否则,重新执行SVM训练进行优化。
Description
技术领域
本发明涉及一种基于邻域嵌入保护算法支持向量机的软件缺陷预测方法,属于软件预测技术领域。
背景技术
软件缺陷:IEEE729-1983对缺陷有一个标准的定义,从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是软件系统与其原本所需要实现的某种功能的失效或违背。
静态预测:静态软件缺陷预测技术是出现较早也是目前研究和应用最多的预测技术,其主要基于提取软件相关的度量信息建立相应的预测模型进行缺陷预测。
基于机器学习的预测模型:基于机器学习的预测模型主要通过选取适当的学习算法针对历史的缺陷信息进行学习,以建立相应的预测模型从而对未知的模块进行缺陷相关的预测。
数据冗余:数据冗余是指数据之间的重复,也可以说是同一数据存储在不同数据文件中的现象。在本专利中具体指重复的软件度量信息。在软件缺陷预测过程中,过多的度量属性将会导致数据冗余,从而导致较高的预测成本和较低的预测精度。
维数:又称维度,在此指度量信息中独立参数的数目。
支持向量机(SVM):SVM方法是通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中,使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题。它通常用来进行模式识别、分类以及回归分析。
领域嵌入保护算法(NPE):NPE算法的主要思想就是在高维的空间中,每个数据点由K个邻域表示。当维度降低后,每个最近邻点的权重都将保持不变,重构维数被简化为对应数据点,使得重构误差最小。它是处理高维数据的一种重要方法,NPE算法可以在维数降低过程中保持数据的局部几何结构不变。
软件缺陷分布预测在软件开发过程中起着重要的作用,对缺陷软件模块的及时准确预测将能够大大提高软件测试资源的有效配置。静态分析能够在软件发布前发现软件中存在的缺陷,且不会降低软件运行的效率。因此近年来,许多研究人员通过提取软件模块的软件度量属性形成训练样本,并利用机器学习技术构建软件缺陷分布预测模型,将机器学习技术应用于软件缺陷静态预测领域。
为了更准确地预测软件中的各种缺陷以提高软件的质量,降低高维软件度量数据的维度是非常有必要的事情。流形学习是处理高维数据的一种重要方法,它可以发现隐藏在高维软件度量数据中的真实结构。经过降维之后的度量数据需要使用机器学习的方法构建预测模型对其进行分类。传统的缺陷预测模型主要指在缺陷数据充足的情况下,利用常用的有监督的机器学习算法,对同一软件中的缺陷数据进行训练和预测的模型,是目前研究最为广泛以及应用最多的模型。其中常用到的机器学习算法主要包括决策树(DT)、随机森林(RF)、朴素贝叶斯(NB)、逻辑回归(LR)、支持向量机(SVM)等。
随着现代大规模软件系统在软件规模和软件复杂性方面的增长,使用机器学习方法构建软件缺陷预测模型需要面对巨大的高维度数据。在软件缺陷预测过程中,过多的度量属性将会导致数据冗余,从而导致较高的预测成本和较低的预测精度。目前,研究者主要提出了局部线性嵌入(LLE)和等距特征映射等方法,但它们有一个共同的缺陷:只有在训练数据中映射,不直接映射新的测试数据,这将导致样本外检验的问题。而在直接使用NPE算法时,将会产生时间空间消耗巨大、特征矩阵无法计算等缺陷,因此目前而言预测的精度与使用的效率都有一些待改进的地方。
发明内容
本发明提出一种基于邻域嵌入保护算法支持向量机的软件缺陷预测方法,用于解决软件度量数据冗余的问题,使得最后的缺陷分布预测结果较其他传统的预测技术相比拥有更高的准确度。
本发明通过以下技术方案来实现:一种基于邻域嵌入保护算法(NPE)支持向量机的软件缺陷预测方法,包括:
从软件缺陷预测数据集中选择训练集X1和测试集X2;
采用NPE算法对所述训练集X1和测试集X2进行降维;
将降维后的训练集Y1作为训练输入集,使用支持向量机SVM进行训练,获得经过训练后的缺陷预测模型;
将降维后的测试集Y2作为测试输入集,使用训练后的缺陷预测模型进行预测,将预测结果与实际结果进行比较,如果预测结果满足终止条件,则此时的软件缺陷预测模型为最优软件缺陷预测模型;否则,重新执行SVM训练进行优化。
本发明的有益效果:
1、本发明使用邻域嵌入保护算法(NPE)对软件度量数据进行降维,保留其局部几何特性,然后利用降维后的数据构建缺陷分布预测模型,该模型使用SVM作为软件缺陷分布预测模型的基本分类器,从而解决软件度量数据冗余的问题,使得最后的缺陷分布预测结果较其他传统的预测技术相比拥有更高的准确度。
2、本发明改进了NPE算法,克服了高维小采样情况下广义特征分解的奇异问题,不需要采用其他中间过程来预降维,并可以有效的对高维数据进行特征分解,得到的特征向量更稳定正确,有效地降低了计算复杂程度和计算成本开销。
3、与传统预测方法相比,本发明提出的预测模型提高了软件缺陷分布预测方面3%~4%的准确率和查全率。
具体实施方式
本发明的一种基于邻域嵌入保护算法支持向量机的软件缺陷预测方法,具体实施例包括以下步骤:
(1)获得预测数据集:
本实施例使用的实验数据来自NASA组织提供的MDP,它被广泛应用于软件缺陷预测研究。它包含13个数据集,如表1所示。每个数据集合包含多个样本,每个样本对应于一个软件模块,并且每个软件模块由几个静态代码属性组成,并标识软件模块中的属性数。静态代码属性对每条数据中进行标识,包括代码行(Loc),Halstead属性和McCabe属性。在本实施例中选择NASA中CM1,KC3,MW1和PC1作为预测数据集。
Table 1:13 data sets provided by NASA
(2)从步骤(1)中获得的预测数据集中选择训练集X1和测试集X2,使用改进的NPE算法分别对两个数据集进行降维。
为了验证提出的模型的预测能力,本发明采用十字交叉法进行验证实验。步骤1中获得的预测数据集被随机地分为20个子集,每次实验需要1个子集作为测试集,其余为训练集。以这种方式,一共进行20次实验,每次实验使用1个测试集。最后,模型的性能以20次实验结果的平均值进行评估。每次使用的训练集和测试集分别用X1和X2表示。
构建降维算法首先需要对训练集X1进行分析,将训练集X1视作X矩阵,D为训练集的维数,n为样本个数,则训练集用矩阵表示为X=[x1,x2…xn],X矩阵为一个D*n的矩阵,使用改进的NPE算法对训练集和测试集进行降维;所述改进的NPE算法包括以下步骤:
1、获得X矩阵的几何空间计量模型,即最优权重矩阵W,它用量化的方法表示了数据之间的“空间结构”,在此根据NPE算法,对于X矩阵中每个数据点Xi,采用其局部最近邻点Xj进行线性重建。
2、根据步骤1中获得的W矩阵,计算获得降维所需要的线性投影矩阵G,即G=[g1,g2…gd];G矩阵为一个d*n的矩阵,其中d为降维处理后数据集应具有的维数,改进的NPE算法将原本NPE算法中奇异的广义特征计算问题转化为两个特征分解问题,其中,第一个特征分解在不损失有用的判别信息的情况下,简化广义特征计算问题;第二个特征分解将不稳定的广义特征计算问题转化为稳定的特征分解;具体步骤如下:
计算获得降维所需要的线性投影矩阵G时,采用以下方法简化广义特征计算问题:
计算矩阵{X[(1-W)TI]}TX[(1-W)TI]∈R2n*2n的特征分解,如公式(1-1)所示
其中[I]I是由该矩阵的非零特征值按从大到小顺序排列而成的对角矩阵,I
计算矩阵St=XMXT+XXT∈RD*D的特征分解中的矩阵Ur和∑I,其中M=(I-W)T(1-W),见公式(1-2)
该矩阵的前d个单元列向量组成G矩阵。
3、根据步骤2中获得的线性投影矩阵G,计算矩阵Y1=GTX1,Y2=GTX2,求得的Y1为经过降维的训练集,Y2为经过降维的测试集。
(3)、将获得的降低维数的训练集Y1用作训练输入集,使用SVM进行训练,获得经过训练的缺陷预测模型:
将经过降维的训练集Y1作为训练输入集,使用SVM构建软件缺陷预测模型。在SVM模型中选择RBF函数作为支持向量机的核函数,根据定义的值间隔和步长,使用网络搜索和十字交叉验证来优化参数,该方法用于优化SVM模型的参数,找到其中对应的C和g的值,其中C为惩罚因子,g为核函数参数,使其能够提高SVM的分类准确率。
(4)、将获得的经过降低维度的测试集Y2作为测试输入集,使用从步骤4中获得的经过训练的缺陷预测模型进行预测:
将测试输入集作为步骤3中获得的缺陷预测模型的输入,使用缺陷预测模型获得的预测结果将与实际结果进行比较。如果预测结果满足终止条件,则此时的软件缺陷预测模型为最优结果,获得优化的软件缺陷预测模型;否则,步骤3将继续执行,以此进行优化。在该过程中,终止条件是模型的预测精度达到给定阈值或周期数超过先前设置的最大周期数。
Claims (4)
1.一种基于邻域嵌入保护算法支持向量机的软件缺陷预测方法,其特征在于,包括:
从软件缺陷预测数据集中选择训练集X1和测试集X2;
采用NPE算法对所述训练集X1和测试集X2进行降维,具体为:
将训练集X1视作X矩阵,D为训练集的维数,n为样本个数,则训练集用矩阵表示为,X=[x1,x2,...xi,...xn],X矩阵为一个D*n的矩阵;
对于X矩阵中每个数据点xi,采用其局部最近邻点的方式进行线性重建,获得X矩阵的最优权重矩阵W;
根据获得的最优权重矩阵W,计算获得降维所需要的线性投影矩阵G,即G=[g1,g2…gd];G矩阵为一个d*n的矩阵,其中d为降维处理后数据集的维数;计算矩阵Y1=GTX1,Y2=GTX2,求得经过降维的训练集Y1和降维的测试集Y2;
所述计算获得降维所需要的线性投影矩阵G时,采用以下方法简化广义特征计算问题:
计算矩阵{X[(1-W)TI]}TX[(1-W)TI]∈R2n*2n的特征分解,如公式(1-1)所示
计算矩阵St=XMXT+XXT∈RD*D的特征分解中的矩阵Ur和∑I,其中D为训练集的维数,M=(I-W)T(1-W),见公式(1-2)
该矩阵的前d个单元列向量组成G矩阵;
将降维后的训练集Y1作为训练输入集,使用支持向量机SVM进行训练,获得经过训练后的缺陷预测模型;
将降维后的测试集Y2作为测试输入集,使用训练后的缺陷预测模型进行预测,将预测结果与实际结果进行比较,如果预测结果满足终止条件,则此时的软件缺陷预测模型为最优软件缺陷预测模型;否则,重新执行SVM训练进行优化。
2.如权利要求1所述的一种基于邻域嵌入保护算法支持向量机的软件缺陷预测方法,其特征在于,所述的终止条件是模型的预测精度达到给定阈值。
3.如权利要求1或2所述的一种基于邻域嵌入保护算法支持向量机的软件缺陷预测方法,其特征在于,所述SVM中选择RBF函数作为支持向量机的核函数,根据定义的值间隔和步长,使用网络搜索和十字交叉验证来优化参数,找到其中对应的惩罚因子C和核函数参数g的值。
4.如权利要求3所述的一种基于邻域嵌入保护算法支持向量机的软件缺陷预测方法,其特征在于,重新执行SVM训练进行优化时重新设置SVM中惩罚因子C和核函数参数g的值,再进行优化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711250307.7A CN107957946B (zh) | 2017-12-01 | 2017-12-01 | 基于邻域嵌入保护算法支持向量机的软件缺陷预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711250307.7A CN107957946B (zh) | 2017-12-01 | 2017-12-01 | 基于邻域嵌入保护算法支持向量机的软件缺陷预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107957946A CN107957946A (zh) | 2018-04-24 |
CN107957946B true CN107957946B (zh) | 2020-10-20 |
Family
ID=61963098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711250307.7A Active CN107957946B (zh) | 2017-12-01 | 2017-12-01 | 基于邻域嵌入保护算法支持向量机的软件缺陷预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107957946B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763096A (zh) * | 2018-06-06 | 2018-11-06 | 北京理工大学 | 基于深度信念网络算法支持向量机的软件缺陷预测方法 |
CN108959039A (zh) * | 2018-07-18 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种虚拟机故障预测的方法及装置 |
CN109165160A (zh) * | 2018-08-28 | 2019-01-08 | 北京理工大学 | 基于核主成分分析算法的软件缺陷预测模型设计方法 |
CN110162475B (zh) * | 2019-05-27 | 2023-04-18 | 浙江工业大学 | 一种基于深度迁移的软件缺陷预测方法 |
CN110443420B (zh) * | 2019-08-05 | 2023-05-09 | 山东农业大学 | 一种基于机器学习的作物产量预测方法 |
CN111177011A (zh) * | 2020-01-02 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 软件免测的预测方法、装置、设备及存储介质 |
CN111522743B (zh) * | 2020-04-17 | 2021-10-22 | 北京理工大学 | 一种基于梯度提升树支持向量机的软件缺陷预测方法 |
CN111459838B (zh) * | 2020-04-20 | 2021-09-03 | 武汉大学 | 一种基于流形对齐的软件缺陷预测方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810102A (zh) * | 2014-02-19 | 2014-05-21 | 北京理工大学 | 一种用于预测软件缺陷的方法和系统 |
CN103810101A (zh) * | 2014-02-19 | 2014-05-21 | 北京理工大学 | 一种软件缺陷预测方法和软件缺陷预测系统 |
US8881095B1 (en) * | 2012-03-30 | 2014-11-04 | Sprint Communications Company L.P. | Software defect prediction |
CN106446940A (zh) * | 2016-09-13 | 2017-02-22 | 大连理工大学 | 一种基于支持向量机的超级电容器电容值退化趋势的预测方法 |
-
2017
- 2017-12-01 CN CN201711250307.7A patent/CN107957946B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8881095B1 (en) * | 2012-03-30 | 2014-11-04 | Sprint Communications Company L.P. | Software defect prediction |
CN103810102A (zh) * | 2014-02-19 | 2014-05-21 | 北京理工大学 | 一种用于预测软件缺陷的方法和系统 |
CN103810101A (zh) * | 2014-02-19 | 2014-05-21 | 北京理工大学 | 一种软件缺陷预测方法和软件缺陷预测系统 |
CN106446940A (zh) * | 2016-09-13 | 2017-02-22 | 大连理工大学 | 一种基于支持向量机的超级电容器电容值退化趋势的预测方法 |
Non-Patent Citations (1)
Title |
---|
《一种用于人脸识别的正交邻域保护嵌入算法》;陶晓燕;《西安电子科技大学学报》;20080630;第35卷(第3期);339-443 * |
Also Published As
Publication number | Publication date |
---|---|
CN107957946A (zh) | 2018-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107957946B (zh) | 基于邻域嵌入保护算法支持向量机的软件缺陷预测方法 | |
CN110147321B (zh) | 一种基于软件网络的缺陷高风险模块的识别方法 | |
CN108709745A (zh) | 一种基于增强型lpp算法和极限学习机快速轴承故障识别方法 | |
Du et al. | Shape recognition based on radial basis probabilistic neural network and application to plant species identification | |
CN112557034B (zh) | 一种基于pca_cnns的轴承故障诊断方法 | |
CN112613536A (zh) | 一种基于smote和深度学习的近红外光谱柴油牌号识别方法 | |
CN112289391A (zh) | 一种基于机器学习的阳极铝箔性能预测系统 | |
CN105046323A (zh) | 一种正则化rbf网络多标签分类方法 | |
CN116821832A (zh) | 针对高压工商业用户用电负荷的异常数据辨识与修正方法 | |
CN114139639B (zh) | 一种基于自步邻域保持嵌入的故障分类方法 | |
CN110581840B (zh) | 基于双层异质集成学习器的入侵检测方法 | |
Dai et al. | Latent-enhanced variational adversarial active learning assisted soft sensor | |
Wang et al. | R2-trans: Fine-grained visual categorization with redundancy reduction | |
CN114510871A (zh) | 基于思维进化和lstm的云服务器性能衰退预测方法 | |
CN108763926A (zh) | 一种具有安全免疫能力的工业控制系统入侵检测方法 | |
CN117349583A (zh) | 用于低温液体储罐的智能检测方法及系统 | |
CN116503379A (zh) | 基于轻量化改进YOLOv5的零件识别方法 | |
Jiang et al. | A massive multi-modal perception data classification method using deep learning based on internet of things | |
CN106485286B (zh) | 一种基于局部敏感判别的矩阵分类模型 | |
CN116150687A (zh) | 一种基于多分类g-wlstsvm模型的流体管道泄漏识别方法 | |
CN115048987A (zh) | 基于流形结构的多源自适应迁移学习的电机振动预测方法 | |
CN114386311A (zh) | 基于关键性能指标的运维异常数据增强的方法和设备 | |
CN110175625B (zh) | 一种基于改进的ssd算法的微信群信息识别及管理方法 | |
CN111160635A (zh) | 一种基于ReliefF算法的区域物流需求影响因素预测方法 | |
Liu et al. | Surface defect classification of steels based on ensemble of extreme learning machines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |