首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 15 毫秒
1.
软件故障预测中若采用大量度量指标建立预测模型,可能因其中含有无关特征使预测模型性能受到不良影响,故障预测中的特征选择步骤选取一定维度的部分故障数据建立预测模型来提高模型性能,以达到压缩特征维度,提高模型预测精度,降低预测模型复杂度,节约计算资源的目的。传统特征排序方法仅评估单个特征对类标的影响,建立的预测模型有效性较低;特征子集选择方法需搜索所有特征子集,耗费计算资源且所选特征维数较高。针对以上问题,提出一种基于拓展贝叶斯信息准则的特征选择方法(EBIC-FS),该方法对数据进行线性回归,并计算出残差平方和较小且数据维数较少的特征模型。在公开数据集M&R及Promise上进行实验,结果表明该方法能有效压缩特征维度,且预测模型性能与5种基线方法相比有较大提升。  相似文献   

2.
甘露  臧洌  李航 《计算机科学》2017,44(4):229-233
软件缺陷预测技术在检测软件缺陷、保证软件质量方面发挥了重要的作用。利用神经网络分类算法构建的软件缺陷预测模型得到了广泛的应用。但是利用神经网络分类算法训练历史数据只能进行“浅层学习”,无法对数据特征进行深度挖掘。针对该问题,利用多层限制玻尔兹曼机叠加成深度信念网,先进行特征集成与迭代,并对这些特征数据进行深度学习,构建了基于深度信念网的软件缺陷预测模型(DBNSDPM)。仿真实验表明,本模型预测的准确性与传统的神经网络缺陷预测模型预测的准确性相比有显著提高。  相似文献   

3.
跨项目缺陷预测旨在解决传统的项目内缺陷预测的历史数据缺失,新项目初期缺乏训练数据等实际问题。然而,在跨项目缺陷预测中,不同项目之间以及实例之间的数据分布差异降低了其预测性能。针对这一问题,提出了基于分层数据筛选的跨项目缺陷预测方法。该方法将训练数据的筛选过程分为项目层筛选和实例层筛选,从源数据集中选出与目标项目数据分布最接近的候选项目集,在候选项目集中选出与目标项目中实例相似度较高的训练数据集,最后在训练数据集上训练朴素贝叶斯模型。在PROMISE数据集进行实验对比。结果表明,与项目内缺陷预测比较,提出的分层数据筛选方法优于项目内缺陷预测,并且有效降低了训练数据和目标项目数据之间的差异性。  相似文献   

4.
Defect prediction assists the rational allocation of testing resources by detecting the potentially defective software modules before releasing products. When a project has no historical labeled defect data, cross project defect prediction (CPDP) is an alternative technique for this scenario. CPDP utilizes labeled defect data of an external project to construct a classification model to predict the module labels of the current project. Transfer learning based CPDP methods are the current mainstream. In general, such methods aim to minimize the distribution differences between the data of the two projects. However, previous methods mainly focus on the marginal distribution difference but ignore the conditional distribution difference, which will lead to unsatisfactory performance. In this work, we use a novel balanced distribution adaptation (BDA) based transfer learning method to narrow this gap. BDA simultaneously considers the two kinds of distribution differences and adaptively assigns different weights to them. To evaluate the effectiveness of BDA for CPDP performance, we conduct experiments on 18 projects from four datasets using six indicators (i.e., F-measure, g-means, Balance, AUC, EARecall, and EAF-measure). Compared with 12 baseline methods, BDA achieves average improvements of 23.8%, 12.5%, 11.5%, 4.7%, 34.2%, and 33.7% in terms of the six indicators respectively over four datasets.  相似文献   

5.
倪超  陈翔  刘望舒  顾庆  黄启国  李娜 《软件学报》2019,30(5):1308-1329
在实际软件开发中,需要进行缺陷预测的项目可能是一个新启动项目,或者这个项目的历史训练数据较为稀缺.一种解决方案是利用其他项目(即源项目)已搜集的训练数据来构建模型,并完成对当前项目(即目标项目)的预测.但不同项目的数据集间会存在较大的分布差异性.针对该问题,从特征迁移和实例迁移角度出发,提出了一种两阶段跨项目缺陷预测方法FeCTrA.具体来说,在特征迁移阶段,该方法借助聚类分析选出源项目与目标项目之间具有高分布相似度的特征;在实例迁移阶段,该方法基于TrAdaBoost方法,借助目标项目中的少量已标注实例,从源项目中选出与这些已标注实例分布相近的实例.为了验证FeCTrA方法的有效性,选择Relink数据集和AEEEM数据集作为评测对象,以F1作为评测指标.首先,FeCTrA方法的预测性能要优于仅考虑特征迁移阶段或实例迁移阶段的单阶段方法;其次,与经典的跨项目缺陷预测方法TCA+、Peters过滤法、Burak过滤法以及DCPDP法相比,FeCTrA方法的预测性能在Relink数据集上可以分别提升23%、7.2%、9.8%和38.2%,在AEEEM数据集上可以分别提升96.5%、108.5%、103.6%和107.9%;最后,分析了FeCTrA方法内的影响因素对预测性能的影响,从而为有效使用FeCTrA方法提供了指南.  相似文献   

6.
跨项目缺陷预测(cross-project defect prediction, CPDP)已经成为软件工程和数据挖掘领域的一个重要研究方向, 利用其他数据丰富项目的缺陷代码来建立预测模型, 解决了模型构建过程中的数据不足问题. 然而源项目和目标项目的代码文件之间存在的分布差异, 导致跨项目预测效果不佳. 大多数研究采用域适应方法来解决这一问题, 但是现有的方法一方面只考虑了条件分布或边缘分布对缺陷预测的影响, 忽视了其动态性; 另一方面没有选择合适的伪标签. 基于上述两个方面, 本文提出了一种基于动态分布对齐和伪标签学习的跨项目缺陷预测方法(DPLD). 具体来说, 我们通过对抗域适应方法分别在域对齐和类别对齐模块中减小项目间的边缘分布差异和条件分布差异, 并借助动态分布因子动态、定量地描述了两种分布的相对重要性. 此外, 本文也提出了一种伪标签学习方法, 通过数据间的几何相似性来增强伪标签作为真实标签的准确性. 本文在PROMISE数据集上进行了实验, F-measure和AUC的值分别提升了22.98%、15.21%, 表明了本文方法在减小项目间分布差异、提升跨项目缺陷预测性能上的有效性.  相似文献   

7.
朱朝阳  陈相舟  闫龙  张信明 《计算机科学》2017,44(Z6):483-485, 518
针对软件系统日益复杂以及软件缺陷难以预测的问题,提出了一种使用人工免疫识别系统的软件缺陷预测模型。模型的构建首先通过主成分分析法对软件缺陷预测数据集进行特征的识别和提取,进一步提高学习算法的性能;针对计算亲和度时欧氏距离不能满足非线性应用需求的情况,为了提高算法对非线性应用的适用性,使用基于高斯径向基核函数的亲和度计算来计算抗体和抗原之间的亲和度阈值。再基于亲和度计算,进行抗体训练、资源竞争以及记忆细胞的选择。最后,利用记忆细胞集进行分类。模拟实验表明,针对实验中的数据集,所提模型的预测准确度达到84%~90%,精准度达到85%~91%。  相似文献   

8.
陈曙  叶俊民  刘童 《软件学报》2020,31(2):266-281
软件缺陷预测旨在帮助软件开发人员在早期发现和定位软件部件可能存在的潜在缺陷,以达到优化测试资源分配和提高软件产品质量的目的.跨项目缺陷预测在已有项目的缺陷数据集上训练模型,去预测新的项目中的缺陷,但其效果往往不理想,其主要原因在于,采样自不同项目的样本数据集,其概率分布特性存在较大差异,由此对预测精度造成较大影响.针对此问题,提出一种监督型领域适配(domainadaptation)的跨项目软件缺陷预测方法.将实例加权的领域适配与机器学习的预测模型训练过程相结合,通过构造目标项目样本相关的权重,将其施加于充足的源项目样本中,以实例权重去影响预测模型的参数学习过程,将来自目标项目中缺陷数据集的分布特性适配到训练数据集中,从而实现缺陷数据样本的复用和跨项目软件缺陷预测.在10个大型开源软件项目上对该方法进行实证,从数据集、数据预处理、实验结果多个角度针对不同的实验设定策略进行分析;从数据、预测模型以及模型适配层面分析预测模型的过拟合问题.实验结果表明,该方法性能优于同类方法,显著优于基准性能,且能够接近和达到项目内缺陷预测的性能.  相似文献   

9.
软件缺陷预测是典型的类不均衡学习问题,其中有缺陷的样本数量远少于无缺陷的样本数量,但有缺陷的样本通常是预测的重点。现有的软件预测模型大多建立在基于静态度量元的软件缺陷数据集上,重点关注如何平衡类分布,而忽略了数据集中属性特征对软件缺陷的判别能力。当软件缺陷数据集中的属性特征对类目标概念缺乏判别能力时,传统机器学习算法难以构建有效的软件缺陷预测模型,从而无法获得有效的预测性能。为此,提出了一种基于不相似性的软件缺陷预测算法,通过改善软件缺陷数据集中属性的判别能力,进而提升软件缺陷预测性能。实验证明:基于不相似性的软件缺陷预测算法能够有效地改善传统机器学习算法在软件缺陷数据集上的预测性能。  相似文献   

10.
杨杰  燕雪峰  张德平 《计算机科学》2017,44(8):176-180, 206
Boosting重抽样是常用的扩充小样本数据集的方法,首先针对抽样过程中存在的维数灾难现象,提出随机属性子集选择方法以进行降维处理;进而针对软件缺陷预测对于漏报与误报的惩罚因子不同的特点,在属性选择过程中添加代价敏感算法。以多个基本k-NN预测器为弱学习器,以代价最小为属性删除原则,得到当前抽样集的k值与属性子集的预测器集合,采用代价敏感的权重更新机制对抽样过程中的不同数据实例赋予相应权值,由所有预测器集合构成自适应的集成k-NN强学习器并建立软件缺陷预测模型。基于NASA数据集的实验结果表明,在小样本情况下,基于Boosting的代价敏感软件缺陷预测方法预测的漏报率有较大程度降低,误报率有一定程度增加,整体性能优于原来的Boosting集成预测方法。  相似文献   

11.
熊婧  高岩  王雅瑜 《计算机科学》2016,43(7):186-190
将Adaboost算法应用到软件缺陷预测模型中是软件缺陷预测的一种新思路,Adaboost算法原理通过训练多个弱分类器构成一个更强的级联分类器,有效地避免了过拟合问题。通过采用美国国家航空航天局(NASA)的软件缺陷数据库的仿真实验,分别对原始BP神经网络算法和Adaboost算法进行分析对比,其中Adaboost的弱分类器采用神经网络。实验结果表明,Adaboost级联分类器有效地提高了软件缺陷预测模型的预测性能。  相似文献   

12.
软件缺陷预测技术   总被引:32,自引:6,他引:32  
王青  伍书剑  李明树 《软件学报》2008,19(7):1565-1580
软件缺陷预测技术从20世纪70年代发展至今,一直是软件工程领域最活跃的内容之一,在分析软件质量、平衡软件成本方面起着重要的作用.研究和讨论了软件缺陷预测技术的起源、发展和当前所面临的挑战,对主流的缺陷预测技术进行了分类讨论和比较,并对典型的软件缺陷的分布模型给出了案例研究.  相似文献   

13.
软件缺陷预测是根据软件产品中提取的度量信息和已经发现的缺陷来尽早地预测软件可能还存在的缺陷,基于预测结果可合理分配测试和验证资源.基于机器学习的缺陷预测技术能够较全面地、自动地学习模型来发现软件中的缺陷,已经成为缺陷预测的主要方法.为了提高预测的效率和准确性,对机器学习算法的选择和研究是很关键的.对不同的机器学习缺陷预测方法进行对比分析,发现各算法在不同评价指标上有不同的优势,利用这些优势并结合机器学习中的stacking集成学习方法提出了将不同预测算法的预测结果作为软件度量并进行再次预测的基于组合机器学习算法的软件缺陷预测模型,最后用该模型对Eclipse数据集进行实验,表明了该模型的有效性.  相似文献   

14.
郭树强  黄蕊  李卿 《控制工程》2021,28(3):600-605
针对软件缺陷预测领域特征之间存在紧密关联性而影响朴素贝叶斯分类性能的问题,提出一种改进加权朴素贝叶斯的分类算法.首先,通过预处理步骤以及特征成对计算,创建彼此之间的依赖关系.然后,通过构造权值的方式实现朴素贝叶斯的独立性假设松弛.最后,使用离散化方法将软件指标的数值转化为分类值,并利用min-max归一化程序对数据进行...  相似文献   

15.
静态软件缺陷预测方法研究   总被引:7,自引:7,他引:7  
静态软件缺陷预测是软件工程数据挖掘领域中的一个研究热点.通过分析软件代码或开发过程,设计出与软件缺陷相关的度量元;随后,通过挖掘软件历史仓库来创建缺陷预测数据集,旨在构建出缺陷预测模型,以预测出被测项目内的潜在缺陷程序模块,最终达到优化测试资源分配和提高软件产品质量的目的.对近些年来国内外学者在该研究领域取得的成果进行了系统的总结.首先,给出了研究框架并识别出了影响缺陷预测性能的3个重要影响因素:度量元的设定、缺陷预测模型的构建方法和缺陷预测数据集的相关问题;接着,依次总结了这3个影响因素的已有研究成果;随后,总结了一类特殊的软件缺陷预测问题(即,基于代码修改的缺陷预测)的已有研究工作;最后,对未来研究可能面临的挑战进行了展望.  相似文献   

16.
针对跨项目软件缺陷预测过程中,软件缺陷数据存在无关信息或数据冗余等问题,提出融合多策略特征筛选的跨项目软件缺陷预测(cross-project software defect prediction based on Multi-Policy Feature Filtering,MPFF)方法。采用多策略筛选方法与过采样方法进行数据预处理;使用代价敏感的域自适应方法进行分类,分类过程使用少量已标记目标项目数据改善项目间分布差异;在AEEEM、NASA MDP及SOFTLAB数据集上进行了不同度量下预测实验。实验结果表明,在同构度量下MPFF方法相比Burank filter、Peters filter、TCA+和TrAdaBoost方法预测效果最佳。  相似文献   

17.
跨项目缺陷预测(cross-project defect prediction, CPDP)已经成为软件工程数据挖掘领域的一个重要研究方向,它利用其他项目的缺陷代码来建立预测模型,解决了模型构建过程中的数据不足问题.然而源项目和目标项目的代码文件之间存在着数据分布的差异,导致跨项目预测效果不佳.基于生成式对抗网络(generative adversarial network,GAN)中的对抗学习思想,在鉴别器的作用下,通过改变目标项目特征的分布,使其接近于源项目特征的分布,从而提升跨项目缺陷预测的性能.具体来说,提出的抽象连续生成式对抗网络(abstract continuous generative adversarial network, AC-GAN)方法包括数据处理和模型构建两个阶段:(1)首先将源项目和目标项目的代码转换为抽象语法树(abstract syntax tree,AST)的形式,然后以深度优先方式遍历抽象语法树得出节点序列,再使用连续词袋模型(continuous bag-of-words model,CBOW)生成词向量,依据词向量表将节点序列转化为数值向量;(...  相似文献   

18.
软件缺陷预测可以有效提高软件的可靠性,修复系统存在的漏洞。Boosting重抽样是解决软件缺陷预测样本数量不足问题的常用方法,但常规Boosting方法在处理领域类不平衡问题时效果不佳。为此,提出一种代价敏感的Boosting软件缺陷预测方法CSBst。针对缺陷模块漏报和误报代价不同的问题,利用代价敏感的Boosting方法更新样本权重,增大产生第一类错误的样本权重,使之大于无缺陷类样本权重与第二类错误样本的权重,从而提高模块的预测率。采用阈值移动方法对多个决策树基分类器的分类结果进行集成,以解决过拟合问题。在此基础上,通过分析给出模型构建过程中权重和阈值的最优化设置。在NASA软件缺陷预测数据集上进行实验,结果表明,在小样本的情况下,与CSBKNN、CSCE方法相比,CSBst方法的BAL预测指标分别提升7%和3%,且时间复杂度降低一个数量级。  相似文献   

19.
当对HMM(Hidden Markov Model,隐马尔科夫模型)语音模型进行GMM(Gaussian Mixture Model,混合高斯模型)区分训练增加组件时,语音模型的识别率会随着GMM的组件增多而增加,模型的大小也会增加,这就造成了语音模型的臃肿。而在移动端使用本地语音模型进行识别时,存放一个几百兆的模型很不合适。针对上述问题,本文提出将一个GMM组件数较多的语音模型利用BIC准则压缩到指定的组件数,从而在模型大小合适的情况下尽量保证模型的识别率。实验结果表明,使用本方法进行压缩之后的语音识别率比未压缩的相同组件数的语音识别模型的识别率要高。  相似文献   

20.
宫丽娜  姜淑娟  姜丽 《软件学报》2019,30(10):3090-3114
随着软件规模的扩大和复杂度的不断提高,软件的质量问题成为关注的焦点,软件缺陷是软件质量的对立面,威胁着软件质量,如何在软件开发的早期挖掘出缺陷模块成为一个亟需解决的问题.软件缺陷预测通过挖掘软件历史仓库,设计出与缺陷相关的内在度量元,然后借助机器学习等方法来提前发现与锁定缺陷模块,从而合理地分配有限的资源.因此,软件缺陷预测是软件质量保证的重要途径之一,近年来已成为软件工程中一个非常重要的研究课题.汇总近8年(2010年~2017年)国内外的缺陷预测技术的研究成果,并以缺陷预测的形式为主线进行分析,首先介绍了软件缺陷预测模型的框架;然后从软件缺陷数据集、构建模型的方法及评价指标这3个方面对已有的研究工作进行分类归纳和比较;最后探讨了软件缺陷预测的未来可能的研究方向、机遇和挑战.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号