基于机器学习的软件缺陷预测方法研究

资料来自用户(Rafael)上传,若本站收录的文献无意侵犯了您的著作版权,请点击版权申明
导师姓名
荆晓远
学科专业
信息安全
文献出处
南京邮电大学   2018年
关键词
软件缺陷预测论文  字典学习论文  半监督学习论文  特征选择论文  联合表示论文
论文摘要

随着信息技术的不断发展,信息安全面临的挑战日益严峻,其中软件安全引起人们越来越多的重视。作为软件安全风险的主要根源之一,软件缺陷不仅可威胁计算机信息系统的安全性和稳定性,甚至可能被黑客利用而恶意入侵。软件缺陷预测是软件工程领域中与软件质量保证密切相关的重要的研究课题,它对提高软件系统质量和优化测试资源分配都有重要意义。在软件工程数据挖掘领域中,基于机器学习的静态软件缺陷预测根据软件历史仓库数据,采用缺陷相关的度量对软件代码或开发过程进行分析,利用机器学习方法来预测软件项目中待测试程序模块的缺陷倾向性或缺陷数量。影响缺陷预测性能的主要因素有:度量元的设计、缺陷预测模型的构建以及缺陷预测数据集的相关处理。本文从机器学习的角度针对上述影响因素对软件缺陷预测方法进行了系统的研究,主要研究成果总结如下:(一)基于联合表示的软件缺陷数据特征选择与分类提出了基于联合表示值的过滤型软件缺陷数据特征选择方法(CRS)和基于联合表示的软件缺陷预测分类方法(CSDP)。为消除软件缺陷数据集中缺陷度量元间的冗余性和提高特征选择方法的计算效率,CRS利用联合表示和l2图构建缺陷数据关系图的邻接关系和权重,在考虑联合表示保留能力的同时考虑数据方差,通过联合表示值的大小排序并迭代选择缺陷数据特征。CSDP首先对无缺陷训练数据集进行Laplace Score采样以构建类别平衡的训练数据,接着利用联合表示求得查询样本的投影矩阵,最后利用基于正则化最小二乘的联合表示分类方法构建软件缺陷预测器。CSDP采用2l范数正则化取代1l范数正则化,进一步增强稀疏分类的效率、降低计算复杂度;CSDP中的联合表示分类器既利用类特定的表示残差的鉴别能力,又利用l2模“稀疏项”的鉴别信息,分类性能得到提升。在广泛使用的软件缺陷预测数据集上的实验结果表明了两种方法的有效性。(二)基于字典学习的软件缺陷预测将以预测缺陷倾向性为目标的软件缺陷预测看成是一个二分类问题,在分类预测时引入字典学习技术,针对软件缺陷预测的代价敏感性与类不平衡性特征、缺陷数据的逐步积累增量式学习和半监督场景下的缺陷预测的问题,分别提出了三个字典学习软件缺陷预测方法,即代价敏感鉴别字典学习(CDDL)、类特定增量字典学习(CIDL)和基于二次学习的半监督字典学习(TLSDL)。CDDL在构造初始字典原子时,通过PCA处理消除了类不平衡问题,利用软件模块间的相似性,设计出有鉴别能力的字典,同时考虑软件缺陷预测的风险成本,在鉴别字典学习缺陷预测模型中引入代价敏感学习。CIDL针对传统字典学习在大数据集上批量学习时计算代价过高的问题,设计了增量式字典学习方法。在初始集上采用类特定字典学习,学得的有监督字典有利于分类预测,在增量集上采用互信息最大原则选取增量字典原子,有利于充分利用增量数据的互补信息。为了解决在有标记样本较少而无标记样本丰富的半监督场景下构建有效的缺陷字典学习模型困难的问题,TLSDL采用二次学习框架,在第一阶段学习中,大量无标记样本通过概率软标记标注扩充到有标记训练样本集中,实现半监督学习的扩展,在第二阶段学习中,通过鉴别字典学习,实现稀疏表示分类和预测性能的提升。实验结果表明了三种字典学习方法的有效性。(三)基于图学习的半监督软件缺陷预测为了充分表示软件缺陷数据间潜在的聚类关系,提出了一个具备稀疏性、高鉴别能力和自适应近邻的信息图——非负稀疏图(NSG)的构建方法,NSG在稀疏图的学习过程中加入了非负限制,图上结点的连接关系和权重在非负稀疏编码时同时得到。在NSG上提出了两个基于图学习的半监督缺陷预测方法:基于非负稀疏图的协同训练缺陷预测方法(NSGCT)和基于非负稀疏图的标记扩散缺陷预测方法(NSGLP)。NSGCT方法结合基于图学习的方法和基于分歧的方法的优点,对无标记数据进行显式置信度估计,减少了噪声数据的引入,提高了半监督协同训练算法的性能。NSGLP方法采用拉普拉斯采样技术对数据集进行不平衡处理,利用NSG表示缺陷数据间的关系,在NSG上利用标记扩散半监督学习方法迭代预测无标记模块的类型标记,NSGLP通过不平衡处理和有效构建信息图提升了半监督缺陷预测的性能。实验结果表明了两种基于图的半监督方法的有效性。

论文目录
关闭目录

摘要

在线阅读全文下载
在线阅读全文下载