1.一种软件缺陷预测方法,其特征在于,包括以下步骤:
步骤一、将训练样本集进行降维处理,获得投影到低维空间的训练样本数据集,具体包括:(1)将样本集中的样本分为有标记样本和无标记样本,其中对有标记样本进一步划分为有缺陷样本和无缺陷样本,然后分别构建三类邻接图,具体是:对于第一类邻接图,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于同类样本且近邻则建立连接边;
对于第二类邻接图,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于异类样本且近邻则建立连接边;
对于第三类邻接图,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于无标记样本且近邻则建立连接边;
(2)对于每种邻接图,根据结点之间的连接情况确定样本点之间的距离权重,其中对于第二类邻接图,在计算样本点距离权重时引入代价敏感信息;
(3)采用拉普拉斯特征映射算法的原理,根据步骤(2)确定的样本点之间的距离权重以及映射后的样本点之间的距离建立目标函数,将该目标函数转换成广义特征值方程,求解该方程获得特征向量矩阵,进一步获得投影到低维空间的样本集;
步骤二、对待测试样本集根据步骤一的流程进行降维处理,得到降维后的测试样本数据集;
步骤三、通过朴素贝叶斯分类器,根据步骤一获得的训练样本数据集和步骤二获得的测试样本数据集,训练预测模型并预测测试样本数据集的分类情况,得出软件缺陷预测结果。
2.根据权利要求1所述的软件缺陷预测方法,其特征在于,在步骤一的分步骤(1)中:训练样本集X={xi,l},其中xi表示训练样本,xi∈Rd,d是训练样本的维数,i=1,2,...n,n是样本的数量,l是样本的类别标签,l∈{0,-1,1},其中-1表示无标记样本,0表示无缺陷样本,1表示有缺陷样本;同类样本表示两个结点均是有缺陷样本或均是无缺陷样本,异类样本表示两个结点一个是有缺陷样本一个是无缺陷样本。
3.根据权利要求1所述的软件缺陷预测方法,其特征在于,在步骤一的分步骤(2)中确定样本点之间的距离权重具体为:对于第一类邻接图,若结点i,j有边连接,则权重 否则Wij=0;t为热核宽度;
对于第二类邻接图,若结点i,j有边连接,则权重 否则Bij=0;其中Ca,b为代价敏感参数;
对于第三类邻接图,若结点i,j有边连接,则权重 否则Sij=0。
4.根据权利要求3所述的软件缺陷预测方法,其特征在于,步骤一的分步骤(3)具体如下:A、建立目标函数:假设y=[y1,y2,...,yn]是投影到低维空间的样本,则需要解决下面的最大化问题:其中,α表示调节参数,yi、yj均表示映射后的样本点,i=1,2,...n,j=1,2,...n;
B T
B、将步骤A中的目标函数转换成广义特征值的求解问题:La=λLa;通过求解该式,求B B T T出矩阵A={a1,a2,...,ar},其中,λ表示特征值;L =D -B、L =D -T;即其中, 即DB与DT均是对角矩阵且DB与DT的每个对角元素分别是B与T中的每一行或者每一列之和;B是第二类邻接图构建的权重矩阵,Τ=W+αS,W是第一类邻接图构建的权重矩阵,S是第三类邻接图构建的权重矩阵;
C、根据矩阵A求出投影后的样本y,y为矩阵A中的每一行向量组成的矩阵,即,yi是A的第i行向量, 其中,r代表矩阵A中特征向量的数量, 表示向量fj的第i个分量,j=1,2,...r。
5.根据权利要求1所述的软件缺陷预测方法,其特征在于,在步骤一的分步骤(1)中,根据结点之间的近邻情况建立连接边是采用ε领域法,即:如果结点i,j满足||xi-xj||2<ε,则在结点i,j间连接一个边,ε为设定值。
6.根据权利要求1所述的软件缺陷预测方法,其特征在于,在步骤一的分步骤(1)中,根据结点之间的近邻情况建立连接边是采用n最近邻法,即:当结点i是结点j的n近邻结点或者结点j是结点i的n近邻结点,则结点i,j使用一条边连接。
7.根据权利要求1所述的软件缺陷预测方法,其特征在于,在步骤一的分步骤(2)中确定样本点之间的距离权重具体为:对第一类、第三类的邻接图,如果结点i,j是有边连接的,其权重均设置为1,否则均设置为0;
对第二类的邻接图,如果结点i,j是有边连接的,则权重设为Ca,b,否则设为0,其中:Ca,b是代价敏感参数。
8.根据权利要求3或7所述的软件缺陷预测方法,其特征在于,代价敏感参数Ca,b表示将a类样本错误分类为b类样本的代价,Ca,b为实验设定值,其中,当a类样本指有缺陷样本时,b类样本指无缺陷样本;或者当a类样本指无缺陷样本时,b类样本指有缺陷样本。
9.一种软件缺陷预测系统,其特征在于,包括:数据预处理模块、降维处理模块、训练预测模块,数据预处理模块,用于获取训练样本数据集和测试样本数据集,将样本集中的样本分为有标记样本和无标记样本,其中对有标记样本进一步划分为有缺陷样本和无缺陷样本;
降维处理模块,用于将样本集进行降维处理,获得投影到低维空间的样本数据集;
训练预测模块,用于通过朴素贝叶斯分类器,将降维处理后的训练样本数据集和测试样本数据集,训练预测模型并预测测试样本数据集的分类情况,得出软件缺陷预测结果;
其中,降维处理模块进一步具体包括:
邻接图构建单元,用于构建三类邻接图,具体包括:
第一构建单元,用于构建第一类邻接图,具体为:将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于同类样本且近邻则建立连接边;
第二构建单元,用于构建第二类邻接图,具体为:将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于异类样本且近邻则建立连接边;
第三构建单元,用于构建第三类邻接图,具体为:将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于无标记样本且近邻则建立连接边;
距离权重计算单元,用于对于每种邻接图,根据结点之间的连接情况确定样本点之间的距离权重,其中对于第二邻接图,在计算样本点距离权重时引入代价敏感信息;
拉普拉斯特征映射单元,用于采用拉普拉斯特征映射算法的原理,根据距离权重计算单元确定的样本点之间的距离权重以及映射后的样本点之间的距离建立目标函数,将该目标函数转换成广义特征值方程,求解该方程获得特征向量矩阵,进一步获得投影到低维空间的样本集。
10.根据权利要求9所述的软件缺陷预测系统,其特征在于,距离权重计算单元包括:第一计算单元,用于计算第一类邻接图中样本点之间的距离权重,具体为:若结点i,j有边连接,则权重 否则Wij=0;t为热核宽度;
第二计算单元,用于计算第二类邻接图中样本点之间的距离权重,具体为:若结点i,j有边连接,则权重 否则Bij=0;其中Ca,b为代价敏感参数;
第三计算单元,用于计算第三类邻接图中样本点之间的距离权重,具体为:若结点i,j有边连接,则权重 否则Sij=0。