[发明专利]一种基于软件网络的缺陷高风险模块的识别方法有效
申请号: | 201910318037.1 | 申请日: | 2019-04-19 |
公开(公告)号: | CN110147321B | 公开(公告)日: | 2020-11-24 |
发明(设计)人: | 艾骏;杨益文;苏文翥;王飞;郭皓然;邹卓良 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 祗志洁 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 软件 网络 缺陷 风险 模块 识别 方法 | ||
1.一种基于软件网络的缺陷高风险模块识别方法,包括:
步骤一,构建自适应分类器,自适应分类器中包含多个分类器;
所述自适应分类器中包含16种不同的分类器:广义线性模型的线性回归、岭回归、套索回归、最小角回归、逻辑回归和随机梯度下降;向量机模型的支持向量机;最近邻模型的K最近邻;贝叶斯模型的高斯朴素贝叶斯;决策树模型的决策树;集合模型的随机森林、极端随机树、自适应增强算法和梯度提升决策树;判别分析模型的线性判别分析和二次判别分析;
步骤二,自适应特征选择方法,包括:
(1)预处理,设定方差阈值的上限值为0.16,计算数据集中每一项特征的方差值,如果数据集中某项特征的80%以上的实例值都相同,则删掉该特征;
(2)对带有惩罚因子的分类器采用递归特征消除算法进行特征的选择;
(3)对不带惩罚因子的分类器采用单变量特征选择的卡方检验方法进行特征选择;
步骤三,进行自适应阈值寻优;对每个分类器,基于训练集构建预测模型,将验证集输入预测模型得到预测值集合,不断遍历预测值集合中的预测值来更换分类器的阈值,每次根据预测标签集合和真实标签集合计算预测模型的性能指标AUC值,选出使AUC值最高的阈值作为分类器的最佳阈值;
所述的步骤三中,对每个分类器,利用训练集构建缺陷预测模型,将验证集输入缺陷预测模型得到预测值集合S1,将预测值集合S1中的数据按照值从小到大的顺序进行排序,得到集合S2;从S2的中位数开始,沿着预测值增大的方向对集合S2进行遍历,取S2中预测值更换阈值;在每次更换阈值后,重新对验证集预测得到预测标签集合P1,再结合验证集的真实标签集合,计算AUC值;在结束遍历后,选取其中最大的AUC值所对应的阈值作为分类器最优的阈值;
步骤四,进行自适应分类器内部参数调优;对于岭回归和套索回归分类器,采用随机搜索方法找到最佳步长,对于K最近邻分类模型采用网格搜索方法选出最佳样本数量k值;
步骤五,进行自适应最优预测模型的选择;应用不同的分类器在训练集合上构建缺陷预测模型,计算各缺陷预测模型在多个验证集上的AUC值,取AUC均值最大的缺陷预测模型为最优预测模型,然后利用最优预测模型对待测软件网络进行缺陷高风险模块识别。
2.根据权利要求1所述的方法,其特征在于,所述的步骤二中,使用卡方检验方法进行特征选择时,若计算特征与特征值的相关系数小于0.05时,保留该特征。
3.根据权利要求1所述的方法,其特征在于,所述的步骤五中,实现步骤包括:
步骤5.1:设获得训练集L={G1,G2,…,Gm},m代表训练集中的软件网络数量,软件网络包含缺陷网络和没有缺陷节点的网络,设获得测试集Gt;建立初始为空集的集合L1和L2;遍历训练集L,若其中的网络Gr中没有缺陷节点,将Gr加入集合L1,否则加入集合L2,r=1,2,…,m;
步骤5.2:将集合L2中所有软件缺陷网络按照版本从小到大排序,选择最后的K个网络构成验证版本集VD,然后将集合L2中剩余的网络与集合L1进行合并构成新的集合H;K为正整数;
步骤5.3:计算集合H、VD、Gt中每个网络中各节点的特征值,获得训练集合、验证集合和测试集合;
步骤5.4:应用步骤一中各分类器在训练集合上构建缺陷预测模型,计算在K个验证集上缺陷预测模型的AUC值;
步骤5.5:选出在K个验证集合中获得的AUC均值最大的缺陷预测模型作为最优预测模型,利用最优预测模型来对测试集进行预测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910318037.1/1.html,转载请声明来源钻瓜专利网。