买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于搜索的代价敏感超图学习的软件缺陷预测方法及系统_清华大学_201810178494.0 

申请/专利权人:清华大学

申请日:2018-03-05

公开(公告)日:2020-06-26

公开(公告)号:CN108334455B

主分类号:G06F11/36(20060101)

分类号:G06F11/36(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.06.26#授权;2018.08.21#实质审查的生效;2018.07.27#公开

摘要:本发明提供了一种基于搜索的代价敏感超图学习的软件缺陷预测方法,所述方法包括:输入原始的训练和测试数据,获得软件模块的特征及相应的软件模块标签;对软件数据进行特征提取,将数据特征转换到新的特征空间;在新的特征空间中,基于测试数据选取与相应测试数据距离最近的训练数据;利用选取的训练数据和测试数据构建超图结构,超图的连接是根据软件模块在转换软件模块特征空间的距离来测算,不断优化错分代价敏感的测试数据总代价,并且优化超图结构;利用学习到的转换向量可以用来计算测试模块是否含有错误。

主权项:1.一种基于搜索的代价敏感超图学习的软件缺陷预测方法,其特征在于,所述方法包括下述步骤:步骤S1、输入原始的训练和测试数据,包括软件模块的特征及相应的软件模块标签;步骤S2、对软件数据进行特征提取,将数据特征转换到新的特征空间;步骤S3、在新的特征空间中,基于测试数据选取与相应测试数据距离较近的训练数据,所述训练数据中包括软件错误模块和无错模块;步骤S4、利用测试数据和选取的训练数据构建超图结构,超图的连接是根据在转换后的特征空间中不同软件模块的距离来测算的,不断优化错分代价敏感的测试数据集的总代价,并且优化超图结构,获得转换向量;步骤S5、利用学习到的转换向量可以用来计算测试模块是否含有错误,其中,所述步骤S2包括通过下式进行特征提取: 其中,Ns表示训练样本的个数,表示第i个样本的第k个特征,表示第k个特征的平均值,Ds是对角矩阵,其矩阵元素其中Sij表示样本i和j之间的关系,zi表示第i个样本的标签,costzi,zj表示区分zi类和zj的代价,φzi表示第zi个样本的重要性。

全文数据:基于搜索的代价敏感超图学习的软件缺陷预测方法及系统技术领域[0001]本发明属于软件错误预测领域,具体涉及利用超图学习,构建基于搜索代价敏感方法进行软件错误识别的软件错误预测方法及系统。背景技术[0002]随着网络技术的快速发展,对于各种软件系统的需求量急速增加,对软件功能的要求也不断提升,由于软件系统规模的日益增大及其逻辑复杂性日益增强,软件中潜在的缺陷必定会影响软件的质量、延长开发周期和增加开发成本。软件错误预测技术目标在于发现软件中的错误模块,提高软件系统质量。在具体的软件系统实现过程中,为了能够对测试的工作结果进行准确客观的评估,权衡潜在缺陷风险和测试成本之间的关系,控制软件开发质量和开发成本,及时、准确的对软件中的缺陷进行预测显得十分重要。[0003]目前,软件错误预测面临的主要问题为:[0004]1已标记软件错误模块数据过少,[0005]2软件无错模块和软件错误模块数据量不平衡[0006]3软件模块特征与软件模块标签之间度量关系不明确。[0007]而目前现有的软件错误预测方法有限,并且都无法解决上述问题。发明内容[0008]针对现有技术中存在的上述问题,本发明提出了一种新型的软件错误预测方法及系统。在本发明的方法和系统中引入错分代价,由于将错误模块错分成无错模块通常意味着更糟糕的后果,所以针对错误模块以及无错模块错分产生的不同影响,赋予两种错分情况不同的错分代价;针对训练数据不平衡的问题,本系统通过基于测试样例进行训练数据检索,选择有利于进行分类的有错和无错模块训练数据集。基于选择的训练数据集,为了更加全面的挖掘数据之间的关系,利用超图模型充分描述训练数据与测试数据之间关系,并通过半监督方式对软件模块进行分类,从而提高软件错误预测的准确性。[0009]具体而言,本发明提供了一种基于搜索的代价敏感超图学习的软件缺陷预测方法,其特征在于,所述方法包括下述步骤:[0010]步骤S1、输入原始的训练和测试数据,包括软件模块的特征及相应的软件模块标签;[0011]步骤S2、对软件数据进行特征提取,将数据特征转换到新的特征空间;[0012]步骤S3、在新的特征空间中,基于测试数据选取与相应测试数据距离较近的训练数据,所述训练数据中包括软件错误模块和无错模块;[0013]步骤S4、利用选取的训练数据和测试数据构建超图结构,超图的连接是根据在转换后的特征空间中不同软件模块的距离来测算的,不断优化错分代价敏感的测试数据集的总代价,并且优化超图结构,获得转换向量;[00M]步骤S5、利用学习到的转换向量可以用来计算测试模块是否含有错误。[0015]在一种优选实现方式中,所述步骤S2包括通过CSLS方法对软件数据进行特征提取。[0016]在另一种优选实现方式中,所述步骤S2包括通过下式进行特征提取:[0018]其中,Ns表示训练样本的个数,fkl表示第i个样本的第k个特征:表示第k个特征的平均值,Ds是对角矩阵,其矩阵元素:,其中3^表示样本i和j之间的关系,Zi表示第i个样本的标签,costZi,Zj表示区分Zi类和Zj的代价,ΦZi表示第Zi个样本的重要性。[0019]在另一种优选实现方式中,[0020]所述步骤S3还包括设定无错样本和有错样本的比例。[0021]在另一种优选实现方式中,所述步骤S3还包括对于任意一个待测试样本,计算待测试样本与训练样本之间的欧式距离,分别记录最近的若干个软件无错样本和软件错误样本,并且对所有的待测数据集执行搜索后,将选取的训练数据集结果进行综合排序,得到最终选取的训练数据。[0022]在另一种优选实现方式中,[0023]所述步骤S4还包括通过下式来描述超图的连接关系:[0025]其中Vcentral表示超图的中心点表示数据集中每两个点之间距离的平均值,表示在超边eP上与Vcentral相连的Vi点与Vcentral之间距离的平方,α为调节参数。[0026]另一方面,本发明提供一种基于搜索的代价敏感超图学习的软件缺陷预测系统,其特征在于,所述软件缺陷预测系统包括:[0027]数据获取模块、特征提取模块、训练数据搜索模块、超图构建模块以及软件错误预测模块,[0028]所述特征选取模块用于获取原始的训练和测试软件数据;[0029]所述特征提取模块用于提取软件模块的特征及相应的软件模块标签;[0030]所述训练数据搜索模块基于测试数据选取与相应测试数据距离最近的训练数据,所述训练数据中包括软件错误模块和无错模块;[0031]所述超图构建模块用于利用选取的训练数据和测试数据构建超图结构,并进行代价敏感学习;[0032]所述软件错误预测模块利用代价敏感学习方式优化后的超图结构计算测试模块是否含有错误。[0033]所述训练和测试数据包括软件以及软件缺陷数据。[0034]有益效果[0035]本发明的方法及系统利用CSLS特征提取方法构建新的特征空间降低数据维度,通过基于测试数据的训练数据搜索方法,解决了数据不平衡的问题。针对软件模块特征与标签之间关系的复杂性及标记数据过少等问题,利用超图结构通过半监督的方式在更高层次上构建训练数据与测试数据关系,并且在学习过程中,考虑不同类型软件模块的错分代价,结合实际建立更加有效地构建软件错误预测系统。附图说明[0036]图1为用于执行本发明基于搜索的代价敏感超图学习方法的系统的架构示意图;[0037]图2为本发明的基于搜索的代价敏感超图学习方法的示意性流程图;图3为超图的不意图。具体实施方式[0038]以下结合附图及其实施例对本发明进行详细说明,但并不因此将本发明的保护范围限制在实施例描述的范围之中。[0039]—、基于搜索选取训练样本[0040]搜索阶段目的在于选取训练样本子集,选取相关性高的标记样本并且解决数据不平衡的问题。[0041]1申请人发现,原始的数据空间往往不利于区分软件错误模块和无错模块,所以首先进行特征提取,申请人采用成本敏感的拉普拉斯得分CSLS方法进行特征选取,申请人发现采用CSLS方法进行特征提取能够促进软件度量的多样性和保存局部特征。在CSLS中,第K个特征的Sk的计算方式如下:[0043]其中,Ns是指训练样本的个数,fkl是指第i个样本的第k个特征,S是指第k个特征的平均值,Ds是对角矩阵,并且Dsii,其中Slj指的是样本i和j之间的关系,21是第i个样本的标签,costZi,Zj是区分Zi类和Zj的代价,ΦZi指的是Zi个样本的重要性,在本实施例中,申请人选取了相关性最高的15个特征,构建新的特征空间,在新的特征空间中,不同类别之间的数据逐渐远离,相同类别的数据之间逐渐接近,使得在新的特征空间中类别的分类更加明显。[0044]2在新的特征空间中,拿到一个待测试样本,计算待测试样本与训练样本之间的欧式距离,按照一定比例例如:1:1或者1:2分别记录最近的p个软件无错样本和g个软件错误样本,P、g的数目可以根据需要进行选取。对所有的待测数据集执行上述搜索后,将选取的训练数据集结果进行综合排序,得到最终选取的训练数据。[0045]二、代价敏感的超图学习[0046]在得到搜索的训练数据和测试数据之后,我们利用超图结构来描述数据之间的关系。[0047]1构建超图,每个超图结构利用G=V;E;w来描述,V中的每个顶点代表一个训练和测试数据,E代表连接定点的超边,利用常用的星型拓展方法来构建超图。在超图的构建过程中,每次取V中的一个定点作为中心定点,在新的特征空间里选取最近的几个样本并且用超边连接起来,如图3所示。[0048]⑵在构建超图的过程中,申请人利用H矩阵来描述超图的连接关系,[0050]其中Vantral是超图的中心点,是数据集中每两个点之间距离的平均值,是指在超边eP上与VcentraI相连的Vi点与VcentraI二者之间的距离,在本实施例中α的值被设置为〇.05,α是调节参数。[0051]关于超图结构相关的定义:[0052]超图定点的度:[0053]超边的度:[0054]错误分类代价:,是对角矩阵,每一个对角元素TW表示第i个元素的错分代价。在本实施例中,将错误模块的代价设置为10,无错模块代价设置为5.[0055]3在分类问题中,要考虑三个部分:包括超图拉普拉子正则化Ωω,代价敏感的经验损失ί以及最优超图结构的正则化ΞW,[0056]其中超图拉普拉斯正则化可以表示为:[0058]其中,wXl表示第i个软件模块的标签,Dv表示超图中超点的度的对角矩阵,De表示超图中超边的度的对角矩阵。Xw表示所有软件模块的标签。[0059]代价敏感的经验损失可以表示为:[0061]优化超图结构的正则化ΞW可以表示为:[0063]对代价敏感的超图学习结构可以被定义为[0066]对于公式的优化是凸的,所以可以利用交替优化策略进行优化。步骤如下:[0067]1首先固定W优化ω,公式可以写为:[0069]对ω求偏导可得:[0072]2固定ω,对W进行优化,公式可以写为[0075]对W求偏导可以得到:[0078]其中是单位矩阵[0079]3在每一次迭代的过程中减少目标函数值,迭代完成优化。对于每一个测试样本,它的预测类标可以表示为[0080]本发明的软件错误预测方法利用基于测试数据的检索技术解决了训练数据不平衡的问题;在得到选取的训练数据后,基于测试数据和选取的训练数据构建超图,充分描述数据之间的关联关系,针对训练数据过少的问题,采用半监督的方式进行软件错误预测,同时,在预测时将错分代价作为重要属性,构建代价敏感的超图结构,从而提高系统预测的准确率。[0081]虽然上面结合本发明的优选实施例对本发明的原理进行了详细的描述,本领域技术人员应该理解,上述实施例仅仅是对本发明的示意性实现方式的解释,并非对本发明包含范围的限定。实施例中的细节并不构成对本发明范围的限制,在不背离本发明的精神和范围的情况下,任何基于本发明技术方案的等效变换、简单替换等显而易见的改变,均落在本发明保护范围之内。

权利要求:1.一种基于搜索的代价敏感超图学习的软件缺陷预测方法,其特征在于,所述方法包括下述步骤:步骤S1、输入原始的训练和测试数据,包括软件模块的特征及相应的软件模块标签;步骤S2、对软件数据进行特征提取,将数据特征转换到新的特征空间;步骤S3、在新的特征空间中,基于测试数据选取与相应测试数据距离较近的训练数据,所述训练数据中包括软件错误模块和无错模块;步骤S4、利用选取的训练数据和测试数据构建超图结构,超图的连接是根据在转换后的特征空间中不同软件模块的距离来测算的,不断优化错分代价敏感的测试数据集的总代价,并且优化超图结构,获得转换向量;步骤S5、利用学习到的转换向量可以用来计算测试模块是否含有错误。2.根据权利要求1所述的基于搜索的代价敏感超图学习的软件缺陷预测方法,其特征在于,所述步骤S2包括通过CSLS方法对软件数据进行特征提取。3.根据权利要求2所述的基于搜索的代价敏感超图学习的软件缺陷预测方法,其特征在于,所述步骤S2包括通过下式进行特征提取:其中,Ns表示训练样本的个数,fkl表示第i个样本的第k个特征表示第k个特征的平均值,Ds是对角矩阵,其矩阵元素Dsii其中Slj表示样本i和j之间的关系,Z1表示第i个样本的标签,costZvZj表示区分21类和Zj的代价,ΦZ1表示第Z1个样本的重要性。4.根据权利要求1所述的基于搜索的代价敏感超图学习的软件缺陷预测方法,其特征在于,所述步骤S3还包括设定无错样本和有错样本的比例。5.根据权利要求1所述的基于搜索的代价敏感超图学习的软件缺陷预测方法,其特征在于,所述步骤S3还包括对于任意一个待测试样本,计算待测试样本与训练样本之间的欧式距离,分别记录最近的若干个软件无错样本和软件错误样本,并且对所有的待测数据集执行搜索后,将选取的训练数据集结果进行综合排序,得到最终选取的训练数据。6.根据权利要求1所述的基于搜索的代价敏感超图学习的软件缺陷预测方法,其特征在于,所述步骤S4还包括通过下式来描述超图的连接关系:其中Vc^ntral表示超图的中心点,d表示数据集中每两个点之间距离的平均值,表示在超边eP上与VcentraI相连的Vi点与VcentraI之间距离的平方,α为调节参数。7.—种基于搜索的代价敏感超图学习的软件缺陷预测系统,其特征在于,所述软件缺陷预测系统包括:数据获取模块、特征提取模块、训练数据搜索模块、超图构建模块以及软件错误预测模块,所述特征选取模块用于获取原始的训练和测试软件数据;所述特征提取模块用于提取软件模块的特征及相应的软件模块标签;所述训练数据搜索模块基于测试数据选取与相应测试数据距离最近的训练数据,所述训练数据中包括软件错误模块和无错模块;所述超图构建模块用于利用选取的训练数据和测试数据构建超图结构,并进行代价敏感学习;所述软件错误预测模块利用代价敏感学习方式优化后的超图结构计算测试模块是否含有错误。

百度查询: 清华大学 基于搜索的代价敏感超图学习的软件缺陷预测方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。