首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 受理局 / 形式要求 / 缺陷 / 一种软件缺陷预测方法和软件缺陷预测系统

一种软件缺陷预测方法和软件缺陷预测系统

阅读:65发布:2020-07-01

专利汇可以提供一种软件缺陷预测方法和软件缺陷预测系统专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种 软件 缺陷 预测方法和 软件缺陷 预测系统,用以解决现有的软件缺陷预测 精度 不高的问题。包括: 降维 处理单元、SVM训练单元和缺陷预测单元;其中步骤一、根据 局部线性嵌入 算法 LLE对第一 训练数据 集进行降维处理,得到第一训练数据集中每个样本点映射到低维空间中的低维向量,得到由各低维向量组成的第二训练数据集;步骤二、根据所述第二训练数据集对 支持向量机 SVM分类器进行训练,得到SVM分类器的最优分类 超平面 函数,进而得到训练好的SVM分类器;步骤三、根据所述训练好的SVM分类器对待预测软件进行缺陷预测。,下面是一种软件缺陷预测方法和软件缺陷预测系统专利的具体信息内容。

1.一种软件缺陷预测方法,其特征在于,包括以下步骤:
步骤一、根据局部线性嵌入算法LLE对第一训练数据集进行降维处理,得到第一训练数据集中每个样本点映射到低维空间中的低维向量,得到由各低维向量组成的第二训练数据集,其中所述第一训练数据集为NASA MDP软件缺陷数据集;
其中,第二训练数据集的获得方法如下:
1.1设第一训练数据集为{x1,x2,...,xN},xi∈RD,其中xi是属于D维空间的向量;
1.2计算第一训练数据集中每个样本点xi的K个近邻点;
1.3利用每个样本点的K个近邻点根据公式1计算出局部重建权值矩阵W;
其中,N为样本点数量,wij代表第i个样本点xi使用第j个近邻点表示的系数;第一训练数据集中所有样本点xi使用其近邻点表示的系数组成了局部重建权值矩阵W;
1.4根据得到的局部重建权值矩阵W和样本点的近邻点并依据公式2计算出每个样本点对应的低维向量;
其中,I是单位阵,M=(I-W)T(I-W);
步骤二、根据所述第二训练数据集对支持向量机SVM分类器进行训练,得到SVM分类器的最优分类超平面函数,进而得到训练好的SVM分类器;
其中,训练好的SVM分类器的获得方法如下:
根据公式3求解SVM分类器的最优分类超平面函数
其中,ω是正交于分类超平面的d维向量,b是偏差项,C是惩罚系数,ξi是松弛变量,φ(x)是SVM分类器使用的核函数;
其中,所述核函数为径向基核函数,形式为:
其中,σ是径向基核函数的宽度参数;
步骤三、根据所述训练好的SVM分类器对待预测软件进行缺陷预测;
上述的得到SVM分类器的最优分类超平面函数中,采用网格搜索方法和十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优,找到使SVM分类准确率最高的那对参数C和σ的取值,以确定SVM分类器的最优分类超平面函数;
上述的采用网格搜索方法和十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优包括:对选定的每组参数C、σ得到在此组参数取值下的分类准确率,采用十折交叉方法进行验证,取使分类准确率最高的那组参数作为最佳的参数取值;其中,采用十折交叉方法进行验证是指将第二数据集分为10个子集,1个子集做测试集,其余9个子集做训练集,得到在选定的某组参数下的1个分类准确率,如此重复10次;得到在这组参数下的10个分类准确率,将这10个分类准确率的平均数作为评价每一组参数优劣的指标,然后,比较选定的每组参数的分类准确率的平均数,将平均数最高的那组参数C,σ作为最佳的参数取值。
2.如权利要求1所述的一种软件缺陷预测方法,其特征在于,上述的采用网格搜索方法和十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优包括:采用网格搜索方法对参数C和σ进行取值;得到C的取值区间内所有的值与σ取值区间内所有的值组成的所有组合并进行搜索。
3.如权利要求1或2所述的一种软件缺陷预测方法,其特征在于,其中根据最优分类超平面函数进行软件缺陷预测采用下述方法:
首先,对待预测软件的数据集利用LLE算法进行降维处理;
其次,将降维后的数据集输入到所述训练好的SVM分类器中并进行判断;若所述输入的数据落入所述最优分类超平面函数确定的没有缺陷的空间中时,则确定该数据对应的软件模未包含缺陷并在SVM分类器的输出结果中进行标记;若所述输入的数据落入所述最优分类超平面函数确定的有缺陷的空间中时,则确定所述数据对应的软件模块包含缺陷并在SVM分类器的输出结果中进行标记。
4.一种软件缺陷预测系统,其特征在于,包括:降维处理单元、SVM训练单元和缺陷预测单元;
降维处理单元,用于根据局部线性嵌入算法LLE对第一训练数据集进行降维处理,得到第一训练数据集中每个样本点映射到低维空间中的低维向量,得到由各低维向量组成的第二训练数据集;其中所述第一训练数据集为NASAMDP软件缺陷数据集;
其中,所述得到由各低维向量组成的第二训练数据集采用下述方法:
1.1设第一训练数据集为{x1,x2,...,xN},xi∈RD,其中xi是属于D维空间的向量;
1.2计算第一训练数据集中每个样本点xi的K个近邻点;
1.3利用每个样本点的K个近邻点根据公式1计算出局部重建权值矩阵W;
其中,N为样本点数量,wij代表第i个样本点xi使用第j个近邻点表示的系数;第一训练数据集中所有样本点xi使用其近邻点表示的系数组成了局部重建权值矩阵W;
1.4根据得到的局部重建权值矩阵W和样本点的近邻点并依据公式2计算出每个样本点对应的低维向量;
其中,I是单位阵,M=(I-W)T(I-W);
SVM训练单元,用于根据第二训练数据集对支持向量机SVM分类器进行训练,得到SVM分类器的最优分类超平面函数,进而得到训练好的SVM分类器;
其中,所述的得到训练好的SVM分类器采用下述方法:
根据公式3求解SVM分类器的最优分类超平面函数
其中,ω是正交于分类超平面的d维向量,b是偏差项,C是惩罚系数,ξi是松弛变量,φ(x)是SVM分类器使用的核函数;
所述的核函数为径向基核函数,形式为:
其中,σ是径向基核函数的宽度参数;
缺陷预测单元,用于根据训练好的SVM分类器对待预测软件进行缺陷预测;
上述的得到SVM分类器的最优分类超平面函数中,采用网格搜索方法和十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优,找到使SVM分类准确率最高的那对参数C和σ的取值,以确定SVM分类器的最优分类超平面函数;
上述的采用网格搜索方法和十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优包括:对选定的每组参数C、σ得到在此组参数取值下的分类准确率,采用十折交叉方法进行验证,取使分类准确率最高的那组参数作为最佳的参数取值;其中,采用十折交叉方法进行验证是指将第二数据集分为10个子集,1个子集做测试集,其余9个子集做训练集,得到在选定的某组参数下的1个分类准确率,如此重复10次;得到在这组参数下的10个分类准确率,将这10个分类准确率的平均数作为评价每一组参数优劣的指标,然后,比较选定的每组参数的分类准确率的平均数,将平均数最高的那组参数C,σ作为最佳的参数取值。
5.如权利要求4所述的一种软件缺陷预测系统,其特征在于,上述的采用网格搜索方法和十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优包括:采用网格搜索方法对参数C和σ进行取值;得到C的取值区间内所有的值与σ取值区间内所有的值组成的所有组合并进行搜索。
6.如权利要求4或5所述的一种软件缺陷预测系统,其特征在于,其中根据最优分类超平面函数进行软件缺陷预测采用下述方法:
首先,对待预测软件的数据集利用LLE算法进行降维处理;
其次,将降维后的数据集输入到所述训练好的SVM分类器中并进行判断;若所述输入的数据落入所述最优分类超平面函数确定的没有缺陷的空间中时,则确定该数据对应的软件模块未包含缺陷并在SVM分类器的输出结果中进行标记;若所述输入的数据落入所述最优分类超平面函数确定的有缺陷的空间中时,则确定所述数据对应的软件模块包含缺陷并在SVM分类器的输出结果中进行标记。

说明书全文

一种软件缺陷预测方法和软件缺陷预测系统

技术领域

[0001] 本发明涉及软件安全领域,特别涉及一种软件缺陷预测方法和软件缺陷预测系统。

背景技术

[0002] 软件缺陷预测技术诞生于20世纪70年代,主要作用体现在对质量保证工作的指导以及为平衡软件成本提供高价值参考。软件缺陷预测主要分为动态预测和静态预测,目前主要的研究集中在静态预测方面,本发明属于静态预测中的分布预测技术。支持向量机(Support Vector Machine,简称SVM)在统计学习理论基础上发展起来的一种新的机器学习方法,在解决小样本、非线性及高维模式识别中具备有许多独特优势,现有的软件缺陷预测主要是利用是支持向量机SVM这一工具来建立预测模型对软件缺陷进行预测。与软件缺陷预测相关的专利主要有:基于需求变更的缺陷预测方法和系统(公开号CN200910080742)以及基于改进的支持向量机的软件缺陷优先级预测方法(公开号CN201210057888)。
[0003] 现有技术的思路包含两个部分,对数据集的降维和对支持向量机参数的寻优,针对这两个问题,现有技术提出不同的解决方案,并取得了一定成果,但现有技术所选择的降维方法具有一定的局限性,降维后的结果不能保证原始数据的完整性,也不是本征维数的最好体现,而软件缺陷预测技术本身是对数据集的操作,数据完整性的保证对保证预测结果的准确性有着很重要的意义。

发明内容

[0004] 本发明提供了一种软件缺陷预测方法和软件缺陷预测系统,用以解决现有的软件缺陷预测精度不高的问题。
[0005] 一种软件缺陷预测方法,包括以下步骤:
[0006] 步骤一、根据局部线性嵌入算法LLE对第一训练数据集进行降维处理,得到第一训练数据集中每个样本点映射到低维空间中的低维向量,得到由各低维向量组成的第二训练数据集;
[0007] 步骤二、根据所述第二训练数据集对支持向量机SVM分类器进行训练,得到SVM分类器的最优分类超平面函数,进而得到训练好的SVM分类器;
[0008] 步骤三、根据所述训练好的SVM分类器对待预测软件进行缺陷预测。
[0009] 其中步骤一中得到由各低维向量组成的第二训练数据集采用下述方法:
[0010] 1.1设第一训练数据集为{X1,X2,...,XN},Xi∈RD,,其中Xi是属于D维空间的向量;
[0011] 1.2计算第一训练数据集中每个样本点Xi的K个近邻点;
[0012] 1.3利用每个样本点的K个近邻点根据公式1计算出局部重建权值矩阵W;
[0013]     公式1
[0014] 其中,N为样本点数量,wij代表第i个样本点Xi使用第j个近邻点表示的系数;第一训练数据集中所有样本点Xi使用其近邻点表示的系数组成了局部重建权值矩阵W;
[0015] 1.4根据得到的局部重建权值矩阵W和样本点的近邻点并依据公式2计算出每个样本点对应的低维向量;
[0016]     公式2
[0017] 其中,I是单位阵,M=(I-W)T(I-W)。
[0018] 其中步骤二所述的得到训练好的SVM分类器采用下述方法:
[0019] 根据公式3求解SVM分类器的最优分类超平面函数
[0020]     公式3
[0021] 其中,ω是正交于分类超平面的d维向量,b是偏差项,C是惩罚系数,ξi 是松弛变量,φ(x)是SVM分类器使用的核函数。
[0022] 上述的核函数为径向基核函数,形式为:
[0023]     公式4
[0024] 其中,σ是径向基核函数的宽度参数。
[0025] 上述的得到SVM分类器的最优分类超平面函数中,采用网格搜索方法和十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优,找到使SVM分类准确率最高的那对参数C和σ的取值,以确定SVM分类器的最优分类超平面函数。
[0026] 上述的采用网格搜索方法和十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优包括:采用网格搜索方法对参数C和σ进行取值;得到C的取值区间内所有的值与σ取值区间内所有的值组成的所有组合并进行搜索。
[0027] 上述的采用网格搜索方法和十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优包括:对选定的每组参数C、σ得到在此组参数取值下的分类准确率,采用十折交叉方法进行验证,取使分类准确率最高的那组参数作为最佳的参数取值;其中,采用十折交叉方法进行验证是指将第二数据集分为10个子集,1个子集做测试集,其余9个子集做训练集,得到在选定的某组参数下的1个分类准确率,如此重复10次;得到在这组参数下的10个分类准确率,将这10个分类准确率的平均数作为评价每一组参数优劣的指标,然后,比较选定的每组参数的分类准确率的平均数,将平均数最高的那组参数C,σ作为最佳的参数取值。
[0028] 其中根据最优分类超平面函数进行软件缺陷预测采用下述方法:
[0029] 首先,对待预测软件的数据集利用LLE算法进行降维处理;
[0030] 其次,将降维后的数据集输入到所述训练好的SVM分类器中并进行判断;若所述输入的数据落入所述最优分类超平面函数确定的没有缺陷的空间中时,则确定该数据对应的软件模未包含缺陷并在SVM分类器的输出结果中进行标记;若所述输入的数据落入所述最优分类超平面函数确定的有缺陷的空间中时,则确定所述数据对应的软件模块包含缺陷并在SVM分类器的输出结果中进 行标记。
[0031] 一种软件缺陷预测系统,包括:降维处理单元、SVM训练单元和缺陷预测单元;
[0032] 降维处理单元,用于根据局部线性嵌入算法LLE对第一训练数据集进行降维处理,得到第一训练数据集中每个样本点映射到低维空间中的低维向量,得到由各低维向量组成的第二训练数据集;
[0033] SVM训练单元,用于根据第二训练数据集对支持向量机SVM分类器进行训练,得到SVM分类器的最优分类超平面函数,进而得到训练好的SVM分类器;
[0034] 缺陷预测单元,用于根据训练好的SVM分类器对待预测软件进行缺陷预测。
[0035] 本发明的有益效果:
[0036] 本发明提供的软件缺陷预测方法和软件缺陷预测系统,首先,采用局部线性嵌入算法对训练数据集进行降维处理,保证降维后数据集中样本点的几何结构不变,使得降维后的数据能更完全地反映出原始数据集的各种特征,其次,根据网格搜索算法寻找SVM的参数C和核函数的参数σ进行寻优,配合十折交叉验证方法找到使SVM分类准确率最高的那组C、σ的值,确定为最优参数,并根据该最优参数确定SVM的最优分类超平面函数,利用最优分类超平面函数进行软件缺陷预测达到提高软件缺陷预测准确率的目的。附图说明
[0037] 图1是本发明一个实施例提供的一种软件缺陷预测方法的框图
[0038] 图2是本发明又一个实施例提供的一种软件缺陷预测方法的流程图
[0039] 图3是本发明又一个实施例提供的一种软件缺陷预测系统的框图。

具体实施方式

[0040] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0041] 本发明的技术构思是针对现有的降维方法的局限性,即降维后的结果并不能保证数据的完整性,也不是本征维数的最好体现。本发明实施例采用局部线性嵌入(locally linear embedding,简称LLE)算法进行软件缺陷数据集的 降维,该算法的思想即是从样本数据的空间结构出发,能够保证降维后数据样本的几何结构不变,使得降维后的数据能更完全地反映出原始数据集的各种特征,软件缺陷预测技术本身是对数据集的操作,更加完整的体现原始数据的特征对提高预测结果的准确性是极其重要的。
[0042] 本发明一个实施例提供了一种软件缺陷预测方法。图1是本发明一个实施例提供的一种软件缺陷预测方法的框图,参见图1,该方法包括:
[0043] 步骤S100:根据局部线性嵌入算法LLE对第一训练数据集进行降维处理,得到第一训练数据集中每个样本点映射到低维空间中的低维向量,得到由各低维向量组成的第二训练数据集;
[0044] 步骤S110:根据第二训练数据集对支持向量机SVM分类器进行训练,得到SVM分类器的最优分类超平面函数,进而得到训练好的SVM分类器;
[0045] 步骤S120:根据最优分类超平面函数对待预测软件进行缺陷预测。
[0046] 在本实施例中,根据局部线性嵌入算法LLE对第一训练数据集进行降维处理,得到第一训练数据集中每个样本点映射到低维空间中的低维向量,得到由各低维向量组成的第二训练数据集包括:
[0047] 设第一训练数据集为{X1,X2,...,XN},Xi∈RD其中,Xi是属于D维空间的向量;
[0048] 计算第一训练数据集中每个样本点Xi的K个近邻点;
[0049] 利用每个样本点的K个近邻点根据公式1计算局部重建权值矩阵W;
[0050]     公式1
[0051] 其中,N为样本点数量,wij代表第i个样本点Xi使用第j个近邻点表示的系数;第一训练数据集中所有样本点Xi使用其近邻点表示的系数组成了局部重建权值矩阵W;
[0052] 根据得到的局部重建权值矩阵W和其近邻点并依据公式2计算出每个样本点的对应的低维向量;
[0053] 公式2
[0054] 其中,I是单位阵,M=(I-W)T(I-W)。
[0055] 在本实施例中,根据第二训练数据集对支持向量机SVM分类器进行训练,得到SVM分类器的最优分类超平面函数包括:
[0056] 根据公式3求解SVM分类器的最优分类超平面函数
[0057]     公式3
[0058] 其中,ω是正交于分类超平面的d维向量,b是偏差项,C是惩罚系数,ξi是松弛变量,φ(x)是SVM分类器使用的核函数。
[0059] 在本实施例中,核函数为径向基核函数,形式为:
[0060]     公式4
[0061] 其中,σ是径向基核函数的宽度参数。
[0062] 图2是本发明又一个实施例提供的一种软件缺陷预测的方法的流程图;参见图2,具体地,本发明实施例可以具体分为三个部分,第一部分,对训练数据集进行降维处理:这一部分包括步骤S200和S210:第二部分包括步骤S220;第三部分则包括步骤S230.[0063] 步骤S200:获取软件缺陷预测时使用的第一训练数据集;
[0064] 步骤S210:使用LLE算法对第一训练数据集进行降维;本实施例中采用的数据集为软件缺陷预测领域研究中广泛使用的NASA MDP软件缺陷数据集,该数据集可从网上通过下载获得。该数据集包含13个子数据集,每个子数据集记录了NASA的实际软件项目中各个模块的度量属性和标记位,其中标记位代表该模块是否具有缺陷。得到第一训练数据集后,对数据集进行降维处理。具体地,降维步骤可以分为:
[0065] 1)设第一训练数据集为{X1,X2,...,XN},Xi∈RD,其中,R代表空间,D代表维度。
[0066] 2)确定每个样本点和其他样本点之间的距离,计算公式为dij=||Xi-Xj||,计算出每个样本点和其他样本点之间的距离后,选定其中距离最短的K个作为近邻点;
[0067] 3)由样本点Xi的近邻点计算出局部重建权值矩阵W,使样本点的重建误差最小,即求解最优化问题:
[0068]     公式1
[0069] 其中,N为样本点数量,wij代表第i个样本点使用第j个近邻点表示的系数,wij也是一个权值,代表了第j个近邻点对第i个样本点的贡献。采用LLE算法对数据集进行降维具体而言:是对数据集中的每一个样本点都用该样本点的K近邻点表示该样本点。这样,每个样本点在用近邻点来表示时,都有K近邻点表示该样本点的K个系数,单个近邻点表示该样本点时,系数是一个具体的数值,每个样本点的K个系数组成了一个系数向量;数据集中所有样本点的系数向量就构成了一个权值矩阵W。
[0070] 4)然后固定上一步得到的局部重建权值矩阵W,按目标函数求解每一个样本点Xi对应的低维向量Yi,目标函数为:
[0071]     公式2
[0072] 其中,I是一个单位矩阵,M=(I-W)T(I-W),最终M的第2至d+1个特征向量就是输出结果。这里,d代表对样本点进行降维后的维度,最终的输出结果是d个低维向量。
[0073] 经过上述4个步骤,得到第一训练数据集中每个样本点映射到低维空间中的低维向量,然后用这些低维向量组成的第二训练数据集对SVM分类器进行训练。
[0074] 第二部分,使用降维后的数据集对SVM分类器进行训练:
[0075] 步骤S220:将降维后的数据集输入到SVM分类器中,结合网格搜索方法和十折交叉验证方法对参数寻优,并对SVM分类器进行训练。
[0076] 其中,根据第二训练数据集对支持向量机SVM分类器进行训练,得到SVM分类器的最优分类超平面函数具体包含如下的过程:
[0077] 使用降维后的第二训练数据集对SVM分类器进行训练,训练的过程即是求解SVM的最优分类超平面。
[0078] 具体地对SVM进行训练的问题可转换为一个求凸二次规划的问题:
[0079]     公式3
[0080] 其中,ω是正交于分类超平面的d维向量,b是偏差项,C是惩罚系数,ξi是松弛变量,φ(x)为选择使用的核函数。惩罚因子C决定了有多重视离群点带来的损失,显然当所有离群点的松弛变量的和一定时,定的C越大,对目标函数的损失也越大,此时就暗示着你非常不愿意放弃这些离群点,最极端的情况是你把C定为无限大,这样只要稍有一个点离群,目标函数的值上变成无限大,马上让问题变成无解,这就退化成了硬间隔问题。松弛变量ξi的值实际上标示出了对应的点到底离群有多远,值越大,点就越远。核函数的作用通过将低维空间的数据映射到高维空间,从而使线性不可分转换为线性可分。
[0081] 由于径向基核函数具有较宽的收敛范围,因此,在本实施例采用径向基核函数作为SVM分类器的核函数。核函数的形式为:
[0082]     公式4
[0083] 引入拉格朗日乘子,利用标准拉格朗日对偶原理化简求解前述二次规划问题,得到一个符号判别函数:
[0084]     公式5
[0085] 对于SVM中惩罚系数C和径向基核函数中的参数σ的确定,在本实施例中,采用网格搜索方法配合十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优,找到使SVM分类准确率最高的那对参数C和σ的取值,以确定SVM分类器的最优分类超平面函数。
[0086] 具体地,在本实施例中,采用网格搜索方法确定最优的参数C和σ的值; 即让这两个参数在预先给定的范围划分网格并遍历所有网格进行取值,其中,C的取值区间设为[2-10,27],σ取值区间设为[2-10,23],两个参数的步长都为0.1,得到C的取值区间内所有的值与σ取值区间内所有的值组成的所有组合并进行搜索。
[0087] 在本实施例中,对选定的每组参数C、σ得到在此组参数取值下的分类准确率,采用十折交叉方法进行验证,取使分类准确率最高的那组参数C、σ作为最佳的参数取值;其中,采用十折交叉方法进行验证的实现过程为:将第二数据集分为10个子集,1个子集做测试集,其余9个子集做训练集,得到选定的某组参数下的1个分类准确率,如此重复10次;得到在这组参数下的10个分类准确率,将这10个分类准确率的平均数作为评价每一组参数优劣的指标,然后,比较选定的每组参数的分类准确率的平均数,将平均数最高的那组参数C,σ作为最佳的参数取值。
[0088] 找到最优的参数C,σ的取值后,确定SVM分类器的最优分类超平面函数,进而得到训练好的SVM分类器。
[0089] 第三部分:利用训练好的SVM分类器对待测软件进行缺陷预测。
[0090] 步骤S230:使用训练好的SVM分类器进行软件缺陷预测;
[0091] 具体地,在本实施例中,首先对待预测软件的数据集利用LLE算法进行降维处理;若输入的数据落入最优分类超平面函数确定的没有缺陷的空间中时,则确定该数据对应的软件模块未包含缺陷并在SVM分类器的输出结果中进行标记;若输入的数据落入最优分类超平面函数确定的有缺陷的空间中时,则确定数据对应的软件模块包含缺陷并在SVM分类器的输出结果中进行标记。
[0092] 在本实施例中,在SVM分类器的输出结果上进行显示时,若软件模块具有缺陷则用字母Y进行标记为。若软件模块不具有缺陷则用字母N进行标。
[0093] 由此,本发明实施例提供的软件缺陷预测方法采用局部线性嵌入算法对训练数据集进行降维处理,保证降维后数据集中样本点的几何结构不变,使得降维后的数据能更完全地反映出原始数据集的各种特征。
[0094] 本发明又一个实施例还提供了一种软件缺陷预测的系统,图3是本发明又一个实施例提供的一种软件缺陷预测系统的框图。参见图3,该系统300包括:降维处理单元310、SVM训练单元320和缺陷预测单元330;
[0095] 降维处理单元310,用于根据局部线性嵌入算法LLE对第一训练数据集进行降维处理,得到第一训练数据集中每个样本点映射到低维空间中的低维向量,得到由各低维向量组成的第二训练数据集;
[0096] SVM训练单元320,用于根据第二训练数据集对支持向量机SVM分类器进行训练,得到SVM分类器的最优分类超平面函数,进而得到训练好的SVM分类器;
[0097] 缺陷预测单元330,用于根据训练好的SVM分类器对待预测软件进行缺陷预测。
[0098] 在本发明的一个实施例中,根据局部线性嵌入算法LLE对第一训练数据集进行降维处理,得到第一训练数据集中每个样本点映射到低维空间中的低维向量,得到由各低维向量组成的第二训练数据集包括:
[0099] 设第一训练数据集为{X1,X2,...,XN},Xi∈RD其中,Xi是属于D维空间的向量;
[0100] 计算第一训练数据集中每个样本点Xi的K个近邻点;
[0101] 利用每个样本点的K个近邻点根据公式1计算出局部重建权值矩阵W;
[0102]     公式1
[0103] 其中,N为样本点数量,wij代表第i个样本点Xi使用第j个近邻点表示的系数,第一训练数据集中所有样本点Xi使用近邻点表示的系数组成了所有样本点的局部重建权值矩阵W;
[0104] 根据得到的局部重建权值矩阵W和其近邻点并依据公式2计算出每个样本点的对应的低维向量;
[0105]     公式2
[0106] 其中,I是单位阵,M=(I-W)T(I-W)。
[0107] 在本发明的一个是实施例中,根据第二训练数据集对支持向量机SVM分类器进行训练,得到SVM分类器的最优分类超平面函数包括:
[0108] 根据公式3求解SVM分类器的最优分类超平面函数
[0109]     公式3
[0110] 其中,ω是正交于分类超平面的d维向量,b是偏差项,C是惩罚系数,ξi是松弛变量,φ(x)是SVM分类器使用的核函数。
[0111] 在本发明的一个实施例中,核函数为径向基核函数,形式为:
[0112]     公式4
[0113] 其中,σ是径向基核函数的宽度参数。
[0114] 在本发明的一个实施例中,SVM训练单元,还用于采用网格搜索方法配合十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优,找到使SVM分类准确率最高的那对参数C和σ的取值,以确定SVM分类器的最优分类超平面函数。
[0115] 在本发明的一个实施例中,采用网格搜索方法配合十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优包括:
[0116] 采用网格搜索方法对所述参数C和σ进行取值;其中,C的取值区间设为[2-10,27],σ取值区间设为[2-10,23],两参数的步长都为0.1,得到由C的取值区间内所有的值与σ取值区间内所有的值组成的所有组合并进行搜索。
[0117] 在本发明的一个实施例中,采用网格搜索方法配合十折交叉验证方法对SVM分类器的参数C以及核函数参数σ进行寻优还包括:
[0118] 对选定的每组参数C、σ得到在此组参数取值下分类准确率,采用十折交叉方法进行验证,取使分类准确率最高的那组参数作为最佳的参数取值,其中,所述采用十折交叉方法进行验证是指将所述第二数据集分为10个子集,1个子集做测试集,其余9个子集做训练集,得到选定的某组参数下的1个分类准确率,如此重复10次;得到在这组参数下的10个分类准确率,将这10个分类准确率的平均数作为评价每一组参数优劣的指标,然后,比较选定的每组参数的分类准确率的平均数,将平均数最高的那组参数C,σ作为最佳的参数取值。
[0119] 在本发明的一个实施例中,根据训练好的SVM分类器进行软件缺陷预测包括:
[0120] 对待预测软件的数据集利用LLE算法进行降维处理;
[0121] 将降维后的数据集输入到训练好的SVM分类器中并进行判断;若输入的数据落入最优分类超平面函数确定的没有缺陷的空间中时,则确定该数据对应的软件模块未包含缺陷并在SVM分类器的输出结果中进行标记;若输入的数据落入最优分类超平面函数确定的有缺陷的空间中时,则确定数据对应的软件模块包含缺陷并在SVM分类器的输出结果中进行标记。
[0122] 需要强调的是,本发明实施例提供的这种软件缺陷预测系统进行软件缺陷预测的过程可以概括为构建基于LLE算法以及SVM分类器的预测模型的过程。该预测模型构建过程主要包含两个模块,第一是降维处理,第二是缺陷预测。其中,降维处理中对SVM分类器采用的训练集需要进行降维处理,同时,在实际应用中,对待测软件的测试数据集也同样采用LLE降维处理,然后根据降维后的数据集以及求得的SVM最优分类超平面函数进行具体预测。这样可以保证降维后的数据集能够更加全面的体现原始数据的数据特征,从而提高软件缺陷预测的准确率。
[0123] 本发明实施例提供的软件缺陷预测系统是与前述介绍的软件缺陷预测方法相对应的,具体的使用过程参见前述方法实施例中的相关内容,此处不在赘述。
[0124] 综上所述,本发明实施例提供的这种软件缺陷预测方法和软件缺陷预测系统,采用局部线性嵌入算法对训练数据集进行降维处理,使得降维后的数据能更完全地反映出原始数据集的各种特征,并根据SVM的最优分类超平面函数,利用最优分类超平面函数进行软件缺陷预测,从而达到提高软件缺陷预测准确率的目的。
[0125] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈