基于航天软件缺陷数据分布离群点的缺陷预测方法及装置与流程

文档序号:23714573发布日期:2021-01-24 05:10阅读:123来源:国知局
基于航天软件缺陷数据分布离群点的缺陷预测方法及装置与流程

[0001]
本发明涉及软件缺陷预测技术领域,特别是一种基于航天软件缺陷数据分布离群点的缺陷预测方法及装置。


背景技术:

[0002]
有关数据分布离群点的检测研究大多数都是在统计学领域进行的,这些研究可以大致分为两类。第一类是基于统计分布方法,其中使用标准分布(例如正态分布,泊松分布等)来最佳拟合数据,离群值是根据概率分布定义的。这类测试的主要缺点是,使用的大多数分布都是单变量,用标准分布拟合数据是昂贵的,并且可能不会产生令人满意的结果。第二类是基于空间深度方法。将每个数据对象表示为空间中的一个点,并为其指定深度。关于离群值检测,离群值更可能是深度较小的数据对象,基于深度的方法效率低下,这是因为基于深度的方法依赖凸包的计算,复杂度增加。
[0003]
在航天嵌入式软件缺陷预测工程实践中,由于工程实践测试集在度量元基本圈复杂度、lcsaj数目、非重复操作符个数、深度优先调用层次、非循环路径数目等方面存在离群点,导致常规的贝叶斯类分类器、规则分类器、树分类器、元分类器、神经网络分类器等机器学习分类器预测效果不佳。
[0004]
因此,更好的解决航天嵌入式软件缺陷预测工程实践测试集数据分布离群点的问题,提高软件缺陷预测的准确性,成为同行从业人员亟待解决的问题。


技术实现要素:

[0005]
本发明解决的技术问题是:克服现有技术的不足,提供了一种基于航天软件缺陷数据分布离群点的缺陷预测方法及装置。
[0006]
为了解决上述技术问题,本发明实施例提供了一种基于航天软件缺陷数据分布离群点的缺陷预测方法,包括:
[0007]
根据存在离群点现象的样本数据,构建航天嵌入式软件缺陷数据对应的离群点训练集和离群点测试集;
[0008]
根据所述离群点训练集,训练得到第一数量的软件缺陷预测模型;
[0009]
根据所述离群点测试集,对所述软件缺陷预测模型进行测试验证,并按照评价指标对所述软件缺陷预测模型进行排序,得到排序预测模型;
[0010]
基于遗传算法构建自动化搜索优化算法,并结合所述排序预测模型在元分类器基础上逐层递归,查找可被替换的模型节点;
[0011]
根据不同的评价指标和所述模型节点,优化得到目标模型结构,并获取航天嵌入式软件缺陷数据分布离群点的缺陷预测方法。
[0012]
可选地,所述根据存在离群点现象的样本数据,构建航天嵌入式软件缺陷数据对应的离群点训练集和离群点测试集,包括:
[0013]
对航天嵌入式软件的缺陷数据测试集度量元的数据进行探索性分析,得到数据分
析结果;
[0014]
根据所述数据分析结果,构建得到所述离群点训练集和所述离群点测试集。
[0015]
可选地,所述根据所述数据分析结果,构建得到所述离群点训练集和所述离群点测试集,包括:
[0016]
根据所述数据分析结果,确定缺陷数据测试集和缺陷数据训练集在基本圈复杂度、lcsaj数目、非重复操作符个数、深度优先调用层次和非循环路径数目的方面是否存在离群点;
[0017]
在存在离群点的情况下,根据所述缺陷数据测试集和所述缺陷数据训练,构建得到航天嵌入式软件缺陷数据离群点训练集和离群点测试集。
[0018]
可选地,所述根据所述缺陷数据测试集和所述缺陷数据训练,构建得到航天嵌入式软件缺陷数据离群点训练集和离群点测试集,包括:
[0019]
获取缺陷数据测试集的样本中超出训练集度量元的阈值的测试样本,及缺陷数据训练集的样本中超出训练集度量元的平均值的训练样本;
[0020]
根据所述测试样本构建得到所述离群点测试集,并根据所述训练样本构建得到所述离群点训练集。
[0021]
可选地,所述基于遗传算法构建自动化搜索优化算法,并结合所述排序预测模型在元分类器基础上逐层递归,查找可被替换的模型节点,包括:
[0022]
采用遗传算法框架构建自动化搜索优化算法,对当前层结构进行编码,生成种群;
[0023]
基于交叉验证的方式计算离群点测试集的待优化指标,若达到遗传代数,则返回最优结构,否则遗传、变异后继续优化;
[0024]
若未达到递归层数,并结合所述排序预测模型在元分类器基础上逐层递归,使用遗传算法查找可被替换的模型节点。
[0025]
可选地,所述根据不同的评价指标和所述模型节点,优化得到目标模型结构,并获取航天嵌入式软件缺陷数据分布离群点的缺陷预测方法,包括:
[0026]
配置不同的评价指标,及不同的模型深度;
[0027]
根据配置的评价指标和所述模型深度,获取最优的航天嵌入式软件缺陷数据分布离群点的缺陷预测方法。
[0028]
为了解决上述技术问题,本发明实施例还提供了一种基于航天软件缺陷数据分布离群点的缺陷预测装置,包括:
[0029]
离群数据集构建模块,用于根据存在离群点现象的样本数据,构建航天嵌入式软件缺陷数据对应的离群点训练集和离群点测试集;
[0030]
缺陷预测模型训练模块,用于根据所述离群点训练集,训练得到第一数量的软件缺陷预测模型;
[0031]
排序预测模型获取模块,用于根据所述离群点测试集,对所述软件缺陷预测模型进行测试验证,并按照评价指标对所述软件缺陷预测模型进行排序,得到排序预测模型;
[0032]
替换模型节点查找模块,用于基于遗传算法构建自动化搜索优化算法,并结合所述排序预测模型在元分类器基础上逐层递归,查找可被替换的模型节点;
[0033]
缺陷预测方法获取模块,用于根据不同的评价指标和所述模型节点,优化得到目标模型结构,并获取航天嵌入式软件缺陷数据分布离群点的缺陷预测方法。
[0034]
可选地,所述离群数据集构建模块包括:
[0035]
数据分析结果获取单元,用于对航天嵌入式软件的缺陷数据测试集度量元的数据进行探索性分析,得到数据分析结果;
[0036]
离群数据集构建单元,用于根据所述数据分析结果,构建得到所述离群点训练集和所述离群点测试集。
[0037]
可选地,所述离群数据集构建单元包括:
[0038]
离群点确定子单元,用于根据所述数据分析结果,确定缺陷数据测试集和缺陷数据训练集在基本圈复杂度、lcsaj数目、非重复操作符个数、深度优先调用层次和非循环路径数目的方面是否存在离群点;
[0039]
离群数据集构建子单元,用于在存在离群点的情况下,根据所述缺陷数据测试集和所述缺陷数据训练,构建得到航天嵌入式软件缺陷数据离群点训练集和离群点测试集。
[0040]
可选地,所述离群数据集构建子单元包括:
[0041]
训练样本获取子单元,用于获取缺陷数据测试集的样本中超出训练集度量元的阈值的测试样本,及缺陷数据训练集的样本中超出训练集度量元的平均值的训练样本;
[0042]
离群集构建子单元,用于根据所述测试样本构建得到所述离群点测试集,并根据所述训练样本构建得到所述离群点训练集。
[0043]
可选地,所述替换模型节点查找模块包括:
[0044]
种群生成单元,用于采用遗传算法框架构建自动化搜索优化算法,对当前层结构进行编码,生成种群;
[0045]
最优结果返回单元,用于基于交叉验证的方式计算离群点测试集的待优化指标,若达到遗传代数,则返回最优结构,否则遗传、变异后继续优化;
[0046]
模型节点查找单元,用于若未达到递归层数,并结合所述排序预测模型在元分类器基础上逐层递归,使用遗传算法查找可被替换的模型节点。
[0047]
可选地,所述缺陷预测方法获取模块包括:
[0048]
评价指标配置单元,用于配置不同的评价指标,及不同的模型深度;
[0049]
缺陷预测方法获取单元,用于根据配置的评价指标和所述模型深度,获取最优的航天嵌入式软件缺陷数据分布离群点的缺陷预测方法。
[0050]
本发明与现有技术相比的优点在于:
[0051]
本发明通过自动化机器学习模型融合,遗传算法自动化搜索优化,可以减少特征分析、模型选择、调参、评估等步骤的时间。在不同的评价指标方面,优化不同最佳的模型结构,揭示了航天嵌入式软件缺陷数据离群点训练集与离群点测试集的分布规律。此方法为航天软件缺陷预测辅助代码审查测试提供了原型,提高第三方软件测评效率,在工程实践应用方面具有重要的意义。
附图说明
[0052]
图1为本发明实施例提供的一种基于航天软件缺陷数据分布离群点的缺陷预测方法的步骤流程图;
[0053]
图2为本发明实施例提供的一种基于航天软件缺陷数据分布离群点的缺陷预测装置的结构示意图。
具体实施方式
[0054]
本发明实施例的技术构思在于:从自动化机器学习的领域,通过遗传算法构建自动化搜索优化(配置随机种子、遗传代数、种群规模、变异率),根据不同的评价指标,优化不同最佳的模型结构,获取最合适的航天嵌入式软件缺陷数据分布离群点的缺陷预测方法。
[0055]
实施例一
[0056]
参照图1,示出了本发明实施例提供的一种基于航天软件缺陷数据分布离群点的缺陷预测方法的步骤流程图,如图1所示,该基于航天软件缺陷数据分布离群点的缺陷预测方法具体可以包括如下步骤:
[0057]
步骤101:根据存在离群点现象的样本数据,构建航天嵌入式软件缺陷数据对应的离群点训练集和离群点测试集。
[0058]
在本发明实施例中,在需要为航天软件缺陷预测辅助代码审查测试提供原型时,首先可以根据存在离群点现象的样本数据,构建航天嵌入式软件缺陷数据对应的离群点训练集和离群点测试集,其中,离群点训练集可以应用于模型的训练过程,而离群点测试集可以应用于模型的测试过程。
[0059]
对于构建离群点训练集和离群点测试集的过程可以结合下述具体实现方式进行详细描述。
[0060]
在本发明的一种具体实现方式中,上述步骤101可以包括:
[0061]
子步骤a1:对航天嵌入式软件的缺陷数据测试集度量元的数据进行探索性分析,得到数据分析结果。
[0062]
子步骤a2:根据所述数据分析结果,构建得到所述离群点训练集和所述离群点测试集。
[0063]
在本发明实施例中,可以对航天嵌入式软件的缺陷数据测试集度量元的数据进行探索性分析,得到数据分析结果,并结合分析结果构建得到离群点训练集和离群点测试集,具体地,可以根据数据分析结果,确定缺陷数据测试集和缺陷数据训练集在基本圈复杂度、lcsaj数目、非重复操作符个数、深度优先调用层次和非循环路径数目的方面是否存在离群点,在存在离群点的情况下,根据所述缺陷数据测试集和所述缺陷数据训练,构建得到航天嵌入式软件缺陷数据离群点训练集和离群点测试集。具体地构建过程可以为:
[0064]
s11、航天嵌入式软件缺陷数据测试集度量元的数据探索性分析包括数据总览、判断数据缺失和异常、了解度量元的分布、数字特征分析、类型特征分析、生成数据分析报告。
[0065]
s12、航天嵌入式软件缺陷数据测试集的样本数据,若超出训练集度量元的阈值,则认为这样的测试集样本为离群点样本,构建离群点测试集。
[0066]
s13、航天嵌入式软件缺陷数据训练集的样本数据,若超出训练集度量元的平均值,构建离群点训练集。
[0067]
在构建得到离群点测试集和离群点训练集之后,执行步骤102和步骤103。
[0068]
步骤102:根据所述离群点训练集,训练得到第一数量的软件缺陷预测模型。
[0069]
在构建得到离群点训练集之后,可以利用离群点训练集对模型进行训练,可以得到第一数量的软件缺陷预测模型,在本示例中,软件缺陷预测模型的数量(即第一数量)可以为50个,在获取离群点训练集之后,可以采用离群点训练集对50个模型分别进行训练,以得到50个训练完成的软件缺陷预测模型。
[0070]
在根据离群点训练集训练得到第一数量的软件缺陷预测模型之后,执行步骤103。
[0071]
步骤103:根据所述离群点测试集,对所述软件缺陷预测模型进行测试验证,并按照评价指标对所述软件缺陷预测模型进行排序,得到排序预测模型。
[0072]
在获取到软件缺陷预测模型之后,可以根据离群点测试集对软件缺陷预测模型进行测试验证,以得到每个软件缺陷预测模型对应的评价指标,并按照评价指标对软件缺陷预测模型进行排序,得到排序预测模型,在本实施例中,可以采用降序的方式对软件缺陷预测模型进行排序,也可以采用升序的方式对软件缺陷预测模型进行排序,具体地,可以根据业务需求而定,本实施例对此不加以限制。
[0073]
在按照评价指标对软件缺陷预测模型进行排序得到排序预测模型之后,执行步骤104。
[0074]
步骤104:基于遗传算法构建自动化搜索优化算法,并结合所述排序预测模型在元分类器基础上逐层递归,查找可被替换的模型节点。
[0075]
在本实施例中,在得到排序预测模型之后,可以基于遗传算法构建自动化搜索优化算法,并结合排序预测模型在元分类器基础上逐层递归,查找可被替换的模型节点,具体地,可以结合下述具体实现方式进行详细描述。
[0076]
在本发明的另一种具体实现方式中,上述步骤104可以包括:
[0077]
子步骤b1:采用遗传算法框架构建自动化搜索优化算法,对当前层结构进行编码,生成种群;
[0078]
子步骤b2:基于交叉验证的方式计算离群点测试集的待优化指标,若达到遗传代数,则返回最优结构,否则遗传、变异后继续优化;
[0079]
子步骤b3:若未达到递归层数,并结合所述排序预测模型在元分类器基础上逐层递归,使用遗传算法查找可被替换的模型节点。
[0080]
在本发明实施例中,可以使用遗传算法框架构建自动化搜索优化,对当前层结构进行编码,生成种群,交叉验证计算离群点测试集的待优化指标,若达到遗传代数,则返回最优结构,否则遗传、变异后继续优化。若未达到递归层数,在元分类器基础上逐层递归,使用遗传算法查找可被替换的模型节点。
[0081]
在基于遗传算法构建自动化搜索优化算法,并结合排序预测模型在元分类器基础上逐层递归,查找到可被替换的模型节点之后,执行步骤105。
[0082]
步骤105:根据不同的评价指标和所述模型节点,优化得到目标模型结构,并获取航天嵌入式软件缺陷数据分布离群点的缺陷预测方法。
[0083]
在查找到可被替换的模型节点之后,可以根据不同的评价指标和所述模型节点,优化得到目标模型结构,并获取航天嵌入式软件缺陷数据分布离群点的缺陷预测方法,具体地,可以结合下述具体实现方式进行详细描述。
[0084]
在本发明的另一种具体实现方式中,上述步骤105可以包括:
[0085]
子步骤c1:配置不同的评价指标,及不同的模型深度;
[0086]
子步骤c2:根据配置的评价指标和所述模型深度,获取最优的航天嵌入式软件缺陷数据分布离群点的缺陷预测方法。
[0087]
在本发明实施例中,可以配置不同的评价指标percision、recall、f-measure、mcc、roc、prc,配置优化不同最佳的模型深度,获取最合适的航天嵌入式软件缺陷数据分布
离群点的缺陷预测方法。
[0088]
其中,遗传算法配置包括随机种子、遗传代数、种群规模、变异率。
[0089]
自动化机器学习软件缺陷预测原型配置包括预测类型的选择、离群点数据集的选择。
[0090]
评价指标配置包括percision、recall、f-measure、mcc、roc、prc六个评价指标。
[0091]
在一个实施例中,遗传算法配置包括随机种子设置为2020、遗传代数设置为20、种群规模设置为30、变异率设置为0.05。
[0092]
自动化机器学习软件缺陷预测原型配置预测类型的选择包括分类和回归,数据集的选择包括基本圈复杂度、lcsaj数目、非重复操作符个数、深度优先调用层次、非循环路径数目离群点的数据集。
[0093]
评价指标配置包括percision、recall、f-measure、mcc、roc、prc六个评价指标,其中percision精确率是指被正确预测的正例数与所有被预测为正例数的比率,反映了预测模型的准确程度,也称查准率。recall召回率是指被正确预测位正例数与实际正例数的比率,反映了一个有缺陷模块被正确预测出的概率,也称查全率。f-measure是信息检索领域的一个评价指标,常用的是f1度量,即精确率与召回率的调和平均数。mcc是常用于不平衡数据集识别结果的综合评价,其计算最为复杂,包含了混淆矩阵中的所有元素,值分布在-1到1之间,分类器将所有的样本均分类正确时得到最大值1。roc接受者操作特征曲线是描述分类模型真正例率和假正例率之间关系的一种图形化方法,曲线下方的面积即为auc的值。auc的取值范围为0-1,auc值越大,说明模型的性能越好。
[0094]
本发明实施例通过在不同的评价指标方面,优化不同最佳的模型结构,揭示了航天嵌入式软件缺陷数据离群点训练集与离群点测试集的分布规律。此方法为航天软件缺陷预测辅助代码审查测试提供了原型,提高第三方软件测评效率。
[0095]
实施例二
[0096]
参照图2,示出了本发明实施例提供的一种基于航天软件缺陷数据分布离群点的缺陷预测装置的步骤流程图,如图2所示,该基于航天软件缺陷数据分布离群点的缺陷预测装置具体可以包括如下模块:
[0097]
离群数据集构建模块210,用于根据存在离群点现象的样本数据,构建航天嵌入式软件缺陷数据对应的离群点训练集和离群点测试集;
[0098]
缺陷预测模型训练模块220,用于根据所述离群点训练集,训练得到第一数量的软件缺陷预测模型;
[0099]
排序预测模型获取模块230,用于根据所述离群点测试集,对所述软件缺陷预测模型进行测试验证,并按照评价指标对所述软件缺陷预测模型进行排序,得到排序预测模型;
[0100]
替换模型节点查找模块240,用于基于遗传算法构建自动化搜索优化算法,并结合所述排序预测模型在元分类器基础上逐层递归,查找可被替换的模型节点;
[0101]
缺陷预测方法获取模块250,用于根据不同的评价指标和所述模型节点,优化得到目标模型结构,并获取航天嵌入式软件缺陷数据分布离群点的缺陷预测方法。
[0102]
可选地,所述离群数据集构建模块210包括:
[0103]
数据分析结果获取单元,用于对航天嵌入式软件的缺陷数据测试集度量元的数据进行探索性分析,得到数据分析结果;
[0104]
离群数据集构建单元,用于根据所述数据分析结果,构建得到所述离群点训练集和所述离群点测试集。
[0105]
可选地,所述离群数据集构建单元包括:
[0106]
离群点确定子单元,用于根据所述数据分析结果,确定缺陷数据测试集和缺陷数据训练集在基本圈复杂度、lcsaj数目、非重复操作符个数、深度优先调用层次和非循环路径数目的方面是否存在离群点;
[0107]
离群数据集构建子单元,用于在存在离群点的情况下,根据所述缺陷数据测试集和所述缺陷数据训练,构建得到航天嵌入式软件缺陷数据离群点训练集和离群点测试集。
[0108]
可选地,所述离群数据集构建子单元包括:
[0109]
训练样本获取子单元,用于获取缺陷数据测试集的样本中超出训练集度量元的阈值的测试样本,及缺陷数据训练集的样本中超出训练集度量元的平均值的训练样本;
[0110]
离群集构建子单元,用于根据所述测试样本构建得到所述离群点测试集,并根据所述训练样本构建得到所述离群点训练集。
[0111]
可选地,所述替换模型节点查找模块240包括:
[0112]
种群生成单元,用于采用遗传算法框架构建自动化搜索优化算法,对当前层结构进行编码,生成种群;
[0113]
最优结果返回单元,用于基于交叉验证的方式计算离群点测试集的待优化指标,若达到遗传代数,则返回最优结构,否则遗传、变异后继续优化;
[0114]
模型节点查找单元,用于若未达到递归层数,并结合所述排序预测模型在元分类器基础上逐层递归,使用遗传算法查找可被替换的模型节点。
[0115]
可选地,所述缺陷预测方法获取模块250包括:
[0116]
评价指标配置单元,用于配置不同的评价指标,及不同的模型深度;
[0117]
缺陷预测方法获取单元,用于根据配置的评价指标和所述模型深度,获取最优的航天嵌入式软件缺陷数据分布离群点的缺陷预测方法。
[0118]
以上实施例对本发明进行了详细说明,本发明专利说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。对本发明的技术方法进行修改或者等同替换,都不脱离本发明技术方法的核心思想和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1