增加度量元的迁移学习跨项目软件缺陷预测
软件工程中的缺陷预测与分析
软件工程中的缺陷预测与分析一、引言随着软件应用的普及,人们对软件质量的要求越来越高,但是软件的缺陷和错误却无处不在。
为了保证软件应用的质量,软件工程领域发展了很多技术来预测和分析软件缺陷,其中缺陷预测和分析技术是其中最重要的一项技术。
二、缺陷预测缺陷预测是通过分析软件历史数据,建立预测模型,对未来的软件缺陷进行预测。
缺陷预测技术主要分为以下两种:1. 基于统计学方法的缺陷预测技术基于统计学方法的缺陷预测技术是通过分析软件历史数据,对软件缺陷的发生概率进行统计分析,从而预测未来的软件缺陷。
该方法主要采用回归分析、决策树分析、朴素贝叶斯分类等技术来建立缺陷预测模型。
这种方法的优点是易于实施和高效,但是缺点是无法处理软件系统的复杂性和非线性关系。
2. 基于机器学习的缺陷预测技术基于机器学习的缺陷预测技术是通过分析软件历史数据,使用机器学习算法来建立缺陷预测模型,从而预测未来的软件缺陷。
该方法主要采用支持向量机、神经网络、决策树等算法来建立缺陷预测模型。
这种方法的优点是可以处理软件系统的复杂性和非线性关系,但是缺点是需要大量的历史数据和计算资源。
三、缺陷分析缺陷分析是对软件缺陷进行分析,找出产生缺陷的原因和解决方法。
缺陷分析技术主要分为以下两种:1. 基于人工的缺陷分析技术基于人工的缺陷分析技术是通过专业的质量分析师对软件缺陷进行分析,找出产生缺陷的原因和解决方法。
该方法主要采用故障树分析、质量功能展开等方法进行缺陷分析。
这种方法的优点是专业性强,可以找出产生缺陷的精确原因和解决方法,但是缺点是需要大量的人力和时间。
2. 基于自动化的缺陷分析技术基于自动化的缺陷分析技术是通过软件工具对软件缺陷进行分析,找出产生缺陷的原因和解决方法。
该方法主要采用静态分析、动态分析、模型检测等技术进行缺陷分析。
这种方法的优点是速度快、成本低,但是缺点是无法找出复杂缺陷的原因和解决方法。
四、结论缺陷预测和分析技术在软件工程领域中占据了重要位置,可以有效地提高软件质量和可靠性,并减少软件维护成本。
基于迁移学习的软件缺陷预测模型研究
摘要软件缺陷预测技术可以用于预测软件缺陷是否存在以及其可能存在的数目,以决定软件是否可以交付,对于软件性能的提升、质量的保证和测试成本的控制有着重要的意义。
已有的软件缺陷预测模型大多利用机器学习算法进行训练和构建,传统机器学习的应用则存在缺少原始数据、数据之间不满足独立同分布等固有限制,这些限制条件制约了该项技术的发展。
迁移学习可以较好的弥补这一缺陷。
因此本课题针对迁移学习与缺陷预测相关算法进行了深入研究和优化。
首先本文对迁移学习分类和软件缺陷预测的基础理论及相关技术进行了研究,并针对跨项目的软件缺陷预测问题,重点分析和研究了现有的软件缺陷分布预测技术。
对相关技术的核心步骤进行了可优化性关键要素分析,具体包括数据预处理阶段的特征选择和构建预测模型的相关算法。
然后在软件预测模型构建过程中,首先对数据预处理技术进行了研究和分析,基于过滤式特征选择方法和SMOTE抽样方法开展研究工作。
然后针对TrAdaboost和Rareboost两个算法,分析了其样本权值变更和子分类器构建方式,对软件缺陷问题的不平衡性特征,设计出了一个新的TrRareboost算法,且对其合理性和正确性进行了分析。
并结合Adaboost算法思想,对TrAdaboost 的权重变更参数进行了优化设计,得到了一种新的迁移学习方法。
最后本文通过设计一系列的实验,对多个数据集的测试来验证优化后的TrRareboost算法相比于TrAdaboost这一现有迁移学习算法的优越性,同时完成的实验还包括特征选择和数据抽样对预测结果的影响,以及TrRareboost同NN-filter迁移学习方法的预测结果对比。
这些实验的结果也都验证了TrRareboost算法可以有效的提升软件缺陷预测模型的性能。
本文为跨项目软件缺陷预测提供了一种新的算法和思路,有效的提高了软件缺陷预测模型的可用性,具有较好的应用价值,为这项技术应用到实际问题中贡献了自己的力量。
基于迁移学习的软件缺陷预测算法研究
基于迁移学习的软件缺陷预测算法研究
软件缺陷预测是软件工程领域内的一个重要研究方向,它旨在提高软件的可靠性、稳定性和安全性。
然而,由于软件系统的规模和复杂度不断增加,传统的基于机器学习的软件缺陷预测算法往往存在泛化能力弱、样本分布不平衡等问题,从而影响了其预测性能。
为了解决这些问题,近年来出现了一种新兴的技术——迁移学习。
迁移学习是指将已学习到的知识导入到新领域中,以提高模型的泛化能力和预测精度。
与传统的机器学习算法相比,基于迁移学习的软件缺陷预测算法具有更好的适应性和泛化能力,能够更好地应对实际问题。
目前,关于基于迁移学习的软件缺陷预测算法研究还处于初步阶段,研究者们正在探索不同的迁移学习算法并提出相应的应用方案。
以下是一些典型的基于迁移学习的软件缺陷预测算法。
一、基于领域自适应的迁移学习算法
这种算法主要采用源域和目标域之间相似的特征或实例来提高预测效果。
其核心思想是将源域的知识应用到目标域,并通过使用自适应权重来增强源域数据的贡献。
这种算法采用深度神经网络结构,从而能够更好地提取特征信息,并在多个领域之间迁移学习。
特别是,采用卷积神经网络(CNN)或循环神经网络(RNN)的算法,可以提高预测精度。
这种算法采用源域和目标域之间的交互学习方式,通过共享参数和知识来提高预测效果。
它可以通过多个领域之间的知识协同学习来增强模型的泛化能力和预测性能。
综上所述,基于迁移学习的软件缺陷预测算法是一个新兴的研究方向,它在解决机器学习算法中的限制性问题方面具有潜在的优势。
未来,研究者们将继续深入探索新的迁移学习算法,并将其应用到实际软件工程中,以提高软件系统的可靠性和安全性。
基于迁移学习的软件缺陷预测算法研究
基于迁移学习的软件缺陷预测算法研究近年来,软件缺陷的预测算法一直是软件工程领域中的热点问题。
随着软件规模和复杂度的不断增加,软件缺陷的数量也不断增加,这给软件开发过程带来了很大的风险。
因此,开发一种准确预测软件缺陷的算法成为重要任务之一。
尤其对于大型软件系统而言,缺陷的数量和规模更是庞大。
现有的软件缺陷预测方法主要基于机器学习技术,但是这些方法的准确率和性能往往受到数据量和质量的限制。
迁移学习是指在不同的任务之间迁移知识和经验,来提高新任务的性能。
在软件缺陷预测领域,迁移学习的思想可以应用于以下两个方面:1. 在不同的软件项目之间迁移知识和经验来改进预测性能;2. 在不同的阶段之间迁移知识和经验来改进预测性能;对于第一种情况,研究人员通常从大量的软件项目中选择一些相似的项目作为源和目标,利用源项目中的经验和知识来改进目标项目的预测性能。
而对于第二种情况,研究人员可以在软件开发的不同阶段中应用迁移学习,例如在开发初期预测缺陷,然后在测试和维护阶段利用预测的结果来进一步优化软件质量。
基于以上思路,研究人员提出了一些基于迁移学习的软件缺陷预测方法。
其中,最通用的方法是基于特征的迁移学习。
该方法的基本思想是,在多个软件项目中通过相同或相似的特征构建模型,再将模型应用于目标项目中。
这样可以利用源项目中的特征信息来预测目标项目中的缺陷。
此外,基于数据的迁移学习也是一种常见的软件缺陷预测方法。
该方法的基本思路是,将源项目的数据集和目标项目的数据集进行合并,然后从合并后的数据集中重新学习模型。
这样可以将源项目的知识和经验迁移到目标项目中,提高预测性能。
基于实验结果的评估,基于迁移学习的软件缺陷预测方法相比较传统的机器学习方法有更好的性能。
这得益于迁移学习的特点,即能够利用源任务的知识和经验来辅助目标任务的学习,从而获得更好的预测性能。
总之,基于迁移学习的软件缺陷预测算法是一种非常有前景的研究方向。
随着数据量和质量的不断提高,基于迁移学习的预测方法将会得到更广泛的应用和发展。
基于迁移学习的软件缺陷预测算法研究
基于迁移学习的软件缺陷预测算法研究【摘要】本文基于迁移学习的软件缺陷预测算法进行了深入研究。
在介绍了研究背景、研究意义和研究目的。
接着详细解释了迁移学习的概念和原理,以及软件缺陷预测算法的概述。
然后提出了基于迁移学习的软件缺陷预测算法设计,并进行了实验设计与结果分析,最后对算法性能进行比较。
在总结了本文的研究成果,展望了未来研究方向,并探讨了实际应用前景。
通过本文的研究,为软件缺陷预测领域提供了新的思路和方法,为软件开发过程中的质量保障提供了有益的借鉴。
【关键词】迁移学习、软件缺陷预测算法、研究背景、研究意义、研究目的、迁移学习概念、软件缺陷预测算法概述、基于迁移学习的软件缺陷预测算法设计、实验设计、结果分析、算法性能比较、研究总结、未来研究方向、实际应用前景.1. 引言1.1 研究背景现在软件系统已经成为人们生活和工作中不可或缺的一部分,然而随着软件规模不断扩大和复杂度不断增加,软件缺陷的出现也变得更加频繁和严重。
软件缺陷不仅会导致软件功能异常,还可能造成系统崩溃、数据损失等严重后果。
软件缺陷预测成为了软件工程领域中一项重要的研究课题。
迁移学习作为机器学习领域的一个重要分支,通过利用不同领域或任务的知识,来改善目标领域或任务的学习性能。
在软件缺陷预测领域,传统的机器学习算法往往需要大量的标记数据来训练模型,但标记数据往往难以获取或成本较高。
基于迁移学习的软件缺陷预测算法应运而生,可以利用已有的标记数据进行知识迁移,从而提高软件缺陷预测的性能和准确度。
本文旨在研究基于迁移学习的软件缺陷预测算法,探讨如何有效地利用迁移学习方法来提高软件缺陷预测的效果。
通过对迁移学习的概念和原理进行深入解析,结合软件缺陷预测算法的概述,设计出针对软件缺陷预测的迁移学习算法,并通过实验设计和结果分析来验证算法的性能和有效性。
希望通过本研究能为软件工程领域的软件缺陷预测问题提供新的思路和解决方案。
1.2 研究意义本研究旨在探索基于迁移学习的软件缺陷预测算法,结合迁移学习的核心原理和软件缺陷预测算法的特点,设计出更加具有适用性和稳健性的预测模型,为软件开发人员提供更加准确和可靠的缺陷预测结果。
基于迁移学习的源码变更缺陷预测
基于迁移学习的源码变更缺陷预测随着软件的广泛应用,程序的安全性、可靠性和性能要求也越来越高,源码的质量也越来越受到重视。
在软件开发生命周期的各个阶段中,源码变更管理是非常关键的一环。
在软件开发中,源码的修改和更新是不可避免的,但是一旦源码被修改,就有可能引入一些缺陷。
因此,在源码被更新或修改之前,进行源码变更缺陷预测是非常必要的。
源码变更缺陷预测是一种能够在源代码发生更改时预测可能引入的缺陷的方法。
这种方法可以帮助开发人员在源代码被修改之前,就发现和修复安全漏洞、性能问题等缺陷,从而提高软件的质量。
近年来,迁移学习已经被证明是一种有效的源码变更缺陷预测方法。
迁移学习可以通过利用不同软件产品之间的共同点,将已有的模型知识转移到新的软件产品上。
在源码变更缺陷预测中,模型知识可以是已有软件产品中的源码变更缺陷预测模型。
然后,利用这些模型知识,就可以在新的软件产品上构建一个高效而准确的源码变更缺陷预测模型。
与传统的机器学习方法相比,迁移学习方法不需要重新训练模型,因此可以极大地减少开发人员的工作量。
在应用迁移学习方法进行源码变更缺陷预测之前,需要进行特征选取,并且需要选择一个合适的迁移学习算法。
通常,特征选取的目标是通过选择重要和相关的特征,来最大程度地提高预测模型的准确性和可靠性。
在源码变更缺陷预测中,一些常用的特征包括代码修复历史、代码复杂度、代码规模等。
另外,针对不同的迁移学习算法,需要进行适当的参数调整。
例如,当使用基于实例的迁移学习方法时,需要设置一个合适的相似性度量方法,以保证所选择的源码数据和目标码数据具有相似的变更模式。
值得注意的是,尽管迁移学习方法是一种高效而准确的源码变更缺陷预测方法,但是也存在一些挑战。
例如,不同软件产品之间的差异可能会影响迁移学习方法的准确性。
此外,如果所选的源码数据不具有代表性,则迁移学习方法的效果也可能会受到影响。
因此,在应用迁移学习方法进行源码变更缺陷预测时,需要特别注意这些限制和注意事项。
《2024年结合特征对齐与实例迁移的跨项目缺陷预测》范文
《结合特征对齐与实例迁移的跨项目缺陷预测》篇一一、引言随着软件开发的快速发展,跨项目缺陷预测成为了质量保障领域的重要研究方向。
如何准确预测软件项目中的潜在缺陷,并提前采取相应的修复措施,对于提高软件质量和减少开发成本具有重要意义。
本文提出了一种结合特征对齐与实例迁移的跨项目缺陷预测方法,旨在解决传统方法中存在的数据分布不一致和特征差异问题,提高预测的准确性和可靠性。
二、研究背景与现状在软件缺陷预测领域,跨项目预测是一个具有挑战性的任务。
由于不同项目之间存在数据分布的差异和特征的不一致性,直接将一个项目的模型应用于另一个项目往往会导致预测效果不佳。
近年来,虽然有许多研究者提出了各种跨项目缺陷预测方法,但仍然存在准确率不高、泛化能力弱等问题。
三、方法介绍本文提出的结合特征对齐与实例迁移的跨项目缺陷预测方法,主要包括以下两个部分:1. 特征对齐特征对齐是解决不同项目之间特征差异的关键步骤。
通过分析各项目的特征分布,提取出具有代表性的共同特征,并进行特征映射和转换,使得不同项目的特征在统一的空间中进行对齐。
这样可以在一定程度上消除数据分布的差异,提高模型的泛化能力。
2. 实例迁移实例迁移是利用已标记的源项目数据和未标记的目标项目数据进行模型训练的方法。
首先,在源项目上训练一个初始模型;然后,通过特征对齐后的数据,将源项目的知识迁移到目标项目上;最后,利用目标项目的未标记数据进行模型微调,以提高在目标项目上的预测性能。
四、实验与分析为了验证本文方法的有效性,我们进行了大量的实验。
实验数据来自多个真实的软件项目,包括不同领域、不同规模的软件项目。
通过与传统的跨项目缺陷预测方法进行对比,我们发现本文方法在准确率、召回率、F1值等指标上均有显著提高。
具体来说,我们首先进行了特征对齐的实验。
通过对比对齐前后的特征分布,我们发现特征在对齐后更加一致,数据分布的差异得到了有效消除。
这为后续的实例迁移打下了良好的基础。
基于机器学习的软件缺陷预测技术研究
基于机器学习的软件缺陷预测技术研究机器学习是一种人工智能的分支,通过利用算法和模型从数据中进行学习和预测,其应用范围非常广泛。
其中,基于机器学习的软件缺陷预测技术是解决软件缺陷问题的一种有效手段。
本文将探讨该技术的原理、应用和发展。
一、机器学习的原理机器学习基于大量数据,通过构建算法和模型,从中提取特征并进行学习和预测。
其主要原理包括监督学习、非监督学习和强化学习。
1、监督学习监督学习是一种基于标签的学习方式,即给定训练数据和标签,构建模型预测新的数据标签。
在软件缺陷预测中,将训练数据和其对应的缺陷标签作为输入,构建分类模型,对新的数据进行缺陷预测。
2、非监督学习非监督学习是一种无标签的学习方式,即通过数据自身的特征进行模型构建和预测。
在软件缺陷预测中,将软件数据输入,通过聚类、降维等算法提取特征,构建模型进行缺陷预测。
3、强化学习强化学习是一种基于奖惩机制的学习方式,即通过与环境的互动,根据奖励或惩罚进行学习和预测。
在软件缺陷预测中,将软件数据输入网络,根据反馈结果修正模型,提高预测准确率。
二、机器学习在软件缺陷预测中的应用1、缺陷检测目前,缺陷检测是基于机器学习的软件缺陷预测技术的主要应用领域。
通过对软件代码中可能出现缺陷的部分进行预测,可以及早发现并修复潜在的问题。
同时,通过对缺陷分布的分析,可以帮助改进软件开发过程。
2、质量评估机器学习可以通过预测缺陷数、缺陷密度等指标,对软件的质量进行评估。
相比于传统的质量评估方法,机器学习可以更加准确地预测软件缺陷,提高预测的准确性和效率。
3、缺陷定位通过机器学习对软件缺陷进行定位,可以帮助快速定位和修复问题。
在软件开发过程中,快速定位和修复缺陷可以提高软件的迭代速度和质量。
三、机器学习在软件缺陷预测中的发展趋势1、深度学习深度学习是机器学习的一种新型技术,其通过多层神经网络进行特征学习和提取,可以提高准确性和鲁棒性。
在软件缺陷预测中,深度学习可以通过自适应特征学习,提高预测的准确度。
《2024年结合特征对齐与实例迁移的跨项目缺陷预测》范文
《结合特征对齐与实例迁移的跨项目缺陷预测》篇一一、引言随着软件工程领域的不断发展,软件质量与可靠性问题日益受到关注。
其中,缺陷预测作为软件质量保障的关键环节,对于提升软件项目的成功率具有重要意义。
传统的缺陷预测方法往往局限于单一项目内部,缺乏跨项目间的信息共享与学习。
因此,本文提出了一种结合特征对齐与实例迁移的跨项目缺陷预测方法,旨在提高预测的准确性和可靠性。
二、研究背景及意义在软件开发的实际过程中,不同项目之间往往存在相似的开发环境和开发语言,但每个项目的数据集和特征空间可能存在差异。
这种差异导致在单一项目内部建立的缺陷预测模型难以直接应用于其他项目。
因此,如何有效地利用不同项目间的信息,实现跨项目的缺陷预测,成为了一个亟待解决的问题。
本文的研究旨在通过特征对齐和实例迁移的方法,实现跨项目间的知识迁移和共享,从而提高缺陷预测的准确性和效率。
三、方法与技术(一)特征对齐特征对齐是本文研究方法的重要一环。
首先通过特征选择算法从各个项目中提取出关键特征。
随后利用统计方法和机器学习算法,对这些特征进行相似度分析和空间映射,使得不同项目的特征空间能够在一定程度上进行对齐。
(二)实例迁移在完成特征对齐的基础上,本文进一步采用了实例迁移技术。
该技术通过构建源项目和目标项目之间的桥梁,实现知识从源项目到目标项目的迁移。
在这个过程中,利用基于迁移学习的深度神经网络模型进行模型的迁移学习和训练,以达到提高目标项目缺陷预测精度的目的。
四、实验与分析为了验证本文提出的结合特征对齐与实例迁移的跨项目缺陷预测方法的有效性,我们选择了多个具有代表性的软件项目作为实验对象。
通过对比实验结果,我们发现该方法在跨项目缺陷预测方面取得了显著的成效。
具体表现在以下几个方面:1. 提高了预测准确性:通过特征对齐和实例迁移的方法,使得不同项目间的知识得以有效迁移和共享,从而提高了缺陷预测的准确性。
2. 降低了误报率:在保证高准确性的同时,本文方法也显著降低了误报率,使得预测结果更加可靠。
基于迁移学习的软件缺陷预测算法研究
基于迁移学习的软件缺陷预测算法研究
随着软件开发的日益复杂化和规模的扩大,软件缺陷预测成为提高软件质量和效率的
重要手段。
然而现有的软件缺陷预测算法往往依赖大量的已标记的数据,而且在不同的软
件项目间很难实现泛化。
这给软件开发过程中的缺陷预测带来了巨大的挑战。
需要选择一个合适的源领域和目标领域。
源领域是已经拥有大量标记数据的领域,而
目标领域是需要进行预测的领域。
通常情况下,源领域与目标领域之间的特征分布和概率
分布存在一定的差异,这就需要通过一定的技术手段进行匹配。
需要选择一个合适的迁移方法。
常见的迁移方法包括实例迁移、特征迁移和模型迁移。
实例迁移通过选择源领域中与目标领域相似的实例进行预测,特征迁移通过将源领域中的
特征应用到目标领域中进行预测,而模型迁移则是通过将源领域中的模型迁移到目标领域
中进行预测。
然后,需要选择一个适当的迁移学习算法。
常见的迁移学习算法包括基于实例选择的
迁移学习算法、基于特征选择的迁移学习算法和基于模型选择的迁移学习算法。
这些算法
可以根据具体的需求和特点进行选择。
需要进行实验评估和结果分析。
实验评估主要是通过对比迁移学习算法和传统的软件
缺陷预测算法的性能差异来评估迁移学习算法的有效性。
结果分析则主要是对实验结果进
行统计和分析,从而得出结论。
基于迁移学习的软件缺陷预测算法是一种新的研究方向,可以有效提高软件缺陷预测
的准确性和泛化能力。
未来的研究方向可以进一步细化和深入,探索更加有效的迁移学习
算法和方法,从而改进软件开发过程中的缺陷预测。
基于迁移学习的软件缺陷预测算法研究
基于迁移学习的软件缺陷预测算法研究近年来,软件缺陷预测成为软件工程领域的研究热点之一。
尤其是在工业界,对软件缺陷的预测和检测显得尤为重要。
然而,在实践中,软件缺陷预测的精度并不高,为了改善其精度,需要采取一些有效的措施。
其中,迁移学习是一种有效的方法,它可以借鉴已有领域的知识,迁移到新的领域,从而提高预测精度。
本文将探讨基于迁移学习的软件缺陷预测算法。
首先,我们需要了解什么是迁移学习。
简单来说,迁移学习是一种通过学习不同任务之间的联系来迁移知识的技术。
在软件缺陷预测中,我们可以将已有的软件缺陷数据集作为源领域数据集,将目标领域数据集作为目标领域数据集,通过迁移学习的方法,从源领域数据中提取有用的特征和知识,然后将其迁移到目标领域数据中进行软件缺陷预测。
基于迁移学习的软件缺陷预测算法主要分为四个步骤:源领域特征提取、特征转移、目标领域特征融合和目标领域缺陷预测。
以下将对这四个步骤进行详细的介绍。
首先,源领域特征提取是指从源领域数据集中提取出有用的特征。
在软件缺陷预测中,数据集通常包括开发人员提交的代码、缺陷报告和版本库历史记录等。
因此,我们可以从这些数据中提取出一些特征,如代码复杂度、注释质量、开发人员经验等等。
然后,特征转移是将源领域的特征转移到目标领域。
在迁移学习中,我们通常使用一些算法来进行特征转移,如最大均值差异化(Maximum Mean Discrepancy,MMD)、核均匀对齐(Kernel Mean Alignment,KMA)等等。
接着,目标领域特征融合是将源领域特征和目标领域特征进行融合。
这个步骤很重要,因为它能够将两个领域的特征进行有机的结合,从而得出更精确的预测。
融合方法包括加权融合、决策树融合、神经网络融合等等。
最后,目标领域缺陷预测是将融合后的特征应用于目标领域,进行缺陷预测。
这个步骤可以使用机器学习算法,如支持向量机(Support Vector Machine,SVM)、随机森林(Random Forest,RF)等等。
机器学习模型的迁移学习问题及解决方法
机器学习模型的迁移学习问题及解决方法迁移学习是指将一个已经训练好的模型应用于新的、相关的任务中,以加快模型在新任务上的学习速度或提高新任务的表现。
在机器学习领域,迁移学习正在得到越来越广泛的应用。
本文将探讨机器学习模型的迁移学习问题以及解决方法。
一、迁移学习问题迁移学习问题主要涉及以下几个方面:1. 领域差异:源领域和目标领域之间存在一定的差异,例如特征分布的不同、数据标签的缺失等。
2. 数据不平衡:目标领域的数据常常存在标签不平衡的情况,即某些类别的样本数量远远多于其他类别。
3. 少样本学习:目标领域的可用样本数量较少,不足以支撑模型在新任务上的准确学习。
4. 领域间转移学习:源领域和目标领域的数据存在共享的特征空间,可以通过在源领域上训练的模型来提取特征,然后在目标领域上进行学习。
二、解决方法为了解决迁移学习问题,研究者们提出了多种方法,下面介绍其中几种常用的方法:1. 特征选择和映射:在源领域上训练的模型可以提取到与目标领域相关的特征,因此可以使用特征选择和映射的方法,将源领域和目标领域的特征空间进行关联,以提高模型在目标领域上的学习效果。
2. 领域自适应:领域自适应方法通过对源领域和目标领域进行对齐,来减小领域差异带来的影响。
常用的领域自适应方法包括最大均值差异、核对齐和深度自适应等。
3. 多任务学习:多任务学习可以将多个相关的任务组合在一起进行学习,通过共享网络部分参数的方式,使得不同任务之间可以互相学习和迁移。
多任务学习的方法可以有效地利用源领域和目标领域之间的相互关系,提高模型在新任务上的泛化能力。
4. 无监督学习:在目标领域上往往很难获得足够的标注样本,因此无监督学习的方法可以通过利用未标注数据来进行训练,以提高模型在目标领域上的性能。
5. 增量学习:当目标领域的数据逐渐增加时,模型需要能够逐步学习新样本的特征。
增量学习的方法可以通过提取源领域和目标领域的共享特征,以及动态更新模型参数来实现。
基于迁移学习的软件缺陷预测算法研究
基于迁移学习的软件缺陷预测算法研究迁移学习是一种借助源领域数据来提升目标任务学习性能的方法。
在软件工程中,软件缺陷预测是一项重要的任务,旨在根据历史数据预测潜在的软件缺陷。
由于软件系统的多样性和复杂性,以及数据的稀缺性,传统的软件缺陷预测算法往往难以取得理想的效果。
基于迁移学习的软件缺陷预测算法应运而生。
基于迁移学习的软件缺陷预测算法主要通过将源领域的知识应用到目标领域来改进预测性能。
换句话说,它利用源领域数据和模型学习到的知识来辅助目标任务的学习。
这样做的好处是可以充分利用源领域的丰富信息,加快目标任务的学习过程,提高预测的准确性。
在基于迁移学习的软件缺陷预测算法中,最常用的方法是领域自适应。
领域自适应通过最小化源领域和目标领域之间的分布差异来实现知识迁移。
具体而言,它通过引入领域适应器或领域间的类别权重调整来实现。
通过这种方式,源领域的知识可以在目标领域中得到有效利用,从而提高预测性能。
基于迁移学习的软件缺陷预测算法还可以结合其他技术手段,例如特征选择、特征权重调整和异常检测等。
这些手段可以进一步改善预测性能,适应不同的软件系统和数据集。
基于迁移学习的软件缺陷预测算法仍然存在一些挑战。
领域间的分布差异通常很大,导致迁移学习的效果不稳定。
源领域的知识可能并不总是适用于目标领域,需要进行精细的调整。
迁移学习的效果往往受到训练数据的质量和数量的限制。
基于迁移学习的软件缺陷预测算法在提高软件缺陷预测性能方面具有重要的研究意义。
通过充分利用源领域的知识,借助领域自适应和其他技术手段,可以有效改善软件缺陷预测的准确性和可靠性。
还需要进一步的研究来解决迁移学习中的挑战,以推动该领域的发展。
基于迁移学习的软件缺陷预测
基于迁移学习的软件缺陷预测程铭;毋国庆;袁梦霆【摘要】传统软件缺陷预测方法在解决跨项目缺陷预测过程中适应能力不足,主要是因为源项目和目标项目之间存在不同的特征分布.为了解决这个问题,提出一种新的加权贝叶斯迁移学习算法,算法首先收集训练数据和测试数据的特征信息,然后计算特征差异,将不同项目数据之间差异转化为训练数据权重,最后基于这些权重数据建立预测模型.在8个开源项目数据集上进行实验比较,实验结果表明与其他方法相比本文方法显著提高跨项目缺陷预测性能.【期刊名称】《电子学报》【年(卷),期】2016(044)001【总页数】8页(P115-122)【关键词】软件缺陷预测;迁移学习;机器学习;朴素贝叶斯【作者】程铭;毋国庆;袁梦霆【作者单位】武汉大学计算机学院,湖北武汉430072;武汉大学软件工程国家重点实验室,湖北武汉430072;武汉大学计算机学院,湖北武汉430072;武汉大学软件工程国家重点实验室,湖北武汉430072;武汉大学计算机学院,湖北武汉430072;武汉大学软件工程国家重点实验室,湖北武汉430072【正文语种】中文【中图分类】TP311随着软件系统规模不断扩大,为了提高软件质量,高效的软件缺陷预测技术越来越受人们的关注[1~4].软件缺陷预测能够在系统开发初期,及时准确地预测软件模块是否包含缺陷,合理分配测试资源,针对性的对缺陷模块进行分析提高产品质量[1].目前,关于软件缺陷预测研究主要集中于两个方面:一是提出新的预测模型; Jing[2]提出一种基于字典学习的软件缺陷预测方法,能够高效地预测项目内缺陷分布.Wang[3]结合斯皮尔曼秩相关系数,提出一种基于C4.5缺陷预测方法.二是不同方法组合提高预测性能.Jiang[4]提出将支持向量机(Support Vector Machine,SVM)和蚁群算法相结合,使用蚁群算法优化求解SVM参数提高缺陷预测准确性和适用性.但上述研究均基于项目内缺陷预测,即利用相同项目的历史数据构建预测模型.在实践中,跨项目缺陷预测是必要的.新项目缺少建立预测模型所必须的历史数据,因此使用其他项目数据建立预测模型,预测新项目缺陷分布已经成为发展趋势[5~10].Zimmermann[5]使用12个项目构建了622个跨项目组合,评估跨项目缺陷预测模型的性能,发现当前预测模型并不能提供令人满意的预测效果,其主要原因是不同项目间存在不同的数据分布.而大部分机器学习分类器的设计是假设训练数据和测试数据具有相同特征空间或数据分布[6],并不支持跨项目缺陷预测.为了解决这个问题,Turhan[7]提出利用K近邻过滤器,选择不同项目中相似实例作为训练样本,丢弃差异较大的数据构建预测模型.在一定程度上提高了预测性能,但是丢弃数据可能包含有用的训练信息.Canfora[8]提出基于遗传算法的多目标逻辑回归预测模型,充分考虑成本效益之间的权衡进行跨项目缺陷预测. 近年来基于迁移学习的跨项目缺陷预测方法被提出,Nam[9]利用迁移成分分析技术挖掘不同项目数据的共有特征空间,迁移有用信息消减数据差异,选择最优规范化策略进行跨项目缺陷预测.Ma[10]提出迁移贝叶斯模型(Transfer Naive Bayes,TNB)使用加权训练数据构造贝叶斯分类器,虽然该方法有效地提高了缺陷预测性能,但TNB算法在计算权值时只考虑目标数据每个属性的最大值和最小值,并不能完全反映目标数据集所有特征.为了进一步提高跨项目缺陷预测性能,本文充分考虑所有训练样本特征信息不丢弃任何样本,提出一种加权贝叶斯迁移学习算法(Weighted Naive Bayes,WNB).将训练数据集和目标数据集之间的特征差异转换为训练实例权重;在加权训练数据上建立预测模型预测缺陷分布.实验结果表明,WNB算法简单适用、鲁棒性强显著提高跨项目缺陷预测性能优于其他比较算法.在基于迁移的软件缺陷预测中,每个特征为软件模块度量特征,所有度量值向量构成对应软件的特征空间.假设软件特征空间为χ,软件模块数据集为X = { x1,…,xn}∈χ,其中xi为相应软件的第i个模块的度量值向量.通常情况下,不同的软件项目数据集,在相同度量特征的前提下,特征空间的特征值范围是不同的(即特征分布不同).因此,本文提出一种加权贝叶斯迁移学习算法能够最大限度的利用跨项目数据的特征信息,提高预测性能.2.1 朴素贝叶斯缺陷预测模型假设训练样本集为L = {(x1,y1),…,(xn,yn)},其中xi表示第i个样本,yi为样本xi的类别属性,n为训练样本个数.在软件缺陷预测问题中yi∈('true','false'):缺陷模块被标记为('true'),无缺陷模块标记为('false').假定T = { t1,…,tm}为测试数据集,m为测试数据集样本个数.朴素贝叶斯分类器可以使用下列公式对测试实例t进行分类:其中t = { a1,…,aj,…ak},aj为测试实例第j个属性,k为属性个数.P(y)、P(aj|y)和P(y|t)分别表示先验概率、条件概率和后验概率.朴素贝叶斯分类器(Naive Bayes,NB)是一个经典的贝叶斯分类算法.该算法假定属性值对给定类的影响独立于其他属性值.本文所提WNB算法也是基于这个假设.在软件缺陷预测中,每个软件模块使用软件度量提取特征,度量属性之间相互独立并不存在依赖关系,因此我们认为各个属性同样重要具有相同权重.2.2 加权贝叶斯模型(Weighted Naive Bayes,WNB)为了迁移测试数据信息,首先收集测试集数据,将每个训练实例与其进行比较,计算每个训练实例与测试集的相似度;然后基于数据引力方法将相似度转化为该训练实例权重,最后基于加权训练数据建立预测模型.2.2.1 相似度计算在WNB方法中,每个实例表示为xi= { ai1,ai2,…aik},aij为xi的第j个属性,k为属性个数.为了获取训练实例和测试集之间的相似度,首先计算测试集和训练集在对应属性上的特征差异.定义属性特征向量(Attribute Characteristic Vector,ACV),其由5个元素组成,分别为数据集中该属性的最小值、最大值、平均值、中位值以及标准差,记作: ACVj= { att-minj,att-maxj,att-meanj,att-medianj,att-stdj},其中j = 1,…,k,ACVj为第j个属性的属性特征向量.计算测试集和训练集属性特征向量集合,即: ACVSet-Test = { ACV1,…,ACVk},ACVSet-Train = { ACV1,…,ACVk} .在本文,属性特征之间的差异,根据它们之间的距离度量,距离越大属性差异越大.欧式距离是较常用的距离计算形式,由于软件缺陷数据类型为数值型,欧式距离适用于分析数值型数据之间的特征差异.因此本文利用欧式距离计算测试集与训练集在对应属性上的特征差异,构造属性差异向量Dif = { d1,…,dk},其中dj为第j个属性的差异.设训练实例xi= { ai1,…,aik},计算其每个属性与测试数据对应属性的差异,计算公式如下:其中,differenceij为训练实例xi第j个属性与测试集中对应属性差异,m为测试样本个数,表示第m个测试样如果differenceij≤dj,则s(aij)= 1,否则s(aij)= 0.在此给一个例子,设3个训练实例: x1= { 2,6,3,'false'},x2= { 7,8,2,'false'},x3= { 3,5,6,'true'} .3个测试实例: t1= { 5,2,4},t2= { 2,6,3},t3= { 1,3,2} .通过上述公式,计算训练集和测试集属性特征向量集合ACVSet-Train = { { 2,7,4,3,2.6},{ 5,8,6.3,6,1.5},{ 2,6,3.7,3,2} }、ACVSet-Test = { { 1,5,3,3,2},{ 2,6,3.7,3,2},{ 2,4,3,3,1} },二者之间的属性差异向量为Dif = { 2.5,5.4,2.4} .然后,根据式(2)、(3)计算每个训练实例的相似度simi.因为训练样本x1的3个属性所对应属性差异difference1j分别为{ 1.9,2.9,0.8},1.9<2.5,2.9<5.4,0.8<2.4,所以sim1=3.同理sim2= 2,sim3=2.2.2.2 训练数据权重为了迁移测试数据集信息本文引入数据引力概念,数据引力是指在数据分析中模拟万有引力,目前有许多研究将数据引力方法应用到机器学习领域[11,12].本文通过模拟引力定律,计算训练数据权重.万有引力定律:自然界中任何两个物体都是相互吸引的,引力大小与两个物体质量乘积成正比,它们之间距离平方成反比,即本的第j个属性.每个属性在测试样本中贡献相同,通过比较differenceij和Dif对应分量dj的值计算训练实例xi与测试集的相似度,计算相似属性个数为: G 是引力常数,m1和m2为研究对象的质量,r是两者之间距离.在训练数据和测试数据上模拟一个“力”,假设样本数据中每个属性的质量为M,那么测试样本质量之和为mkM,每个训练样本质量为simiM(所有相似属性质量之和).因此训练实例xi的权重与mksimiM2成正比,与(k - simi+1)2成反比(分别对应万有引力中两个物体质量的乘积和距离的平方).因此,训练数据权重公式为:根据上述公式,实例xi与测试集相似度越高,赋予权重wi越大.根据数据加权计算先验概率,先验概率计算公式主要反映测试数据类分布.如果训练实例与测试数据集相似,则这个训练实例应具有更多权重,那么该训练实例所在类也应具有更多权重,因为这个类可以认为更多存在于测试数据集中.根据文献[13],先验概率加权计算公式为:其中,wi为训练样本xi权重,yi为其所属类属性值,n为训练实例个数,ny为类别个数.θ(yi,y)是一个指示函数,如果yi= y则为1,否则为0.相同类训练数据越多,该类的先验概率越大.对于测试实例x,第j个属性aj的条件概率为:其中,aij为第i个训练实例中第j个属性值,nj为第j个属性不同值数量.由于软件缺陷数据的属性均为数字型,需要对其进行离散化处理.结合以上公式,测试数据可以根据预测模型进行分类.对于上面的例子,假设对测试数据t2= { 2,6,3}进行分类,根据式(4),得w1=3,w2=0.5,w3=0.5.根据式(5)计算P(y),其中ny=2,n =3,所以:P('false')=同理,P('true')=0.25.根据式(6)计算P(aj|y),依据上例有,n1=3,n2= 3,n3=3,所以:P(a1=2|'false')=,同理P(a2=6|'false')=P(a1=2|'true')=P(a3= 3 |'true')=,因此对于测试数据t2,根据式(1)得: P('false'|t2)=0.969,P('true'|t2)=0.031.因为0.969>0.031,t2被预测为'false'.2.2.3 WNB 算法分析算法1给出了WNB分类器伪代码.假设训练数据个数为n,测试数据个数为m,k 为属性数量.WNB分类器主要包括3个部分:相似度计算,权值计算以及构造WNB 分类器.理论上,计算训练数据和测试数据的属性特征向量需要运行时间分别为O(kn)和O(km),训练实例和测试数据的相似度计算需要运行时间为O(kmn),权重赋值需要运行时间为O(kn).最后WNB分类器构建的运行时间为O(kn).因此WNB分类器理论运行时间为O(kmn).它与NN过滤器方法的理论运行时间相当,高于TNB方法运行时间.由于实际的训练集与测试集之间存在的分布差异,因此WNB分类器具有很大的优势.文献[7],通过计算它们之间的距离,利用最近邻k个训练实例来训练预测模型,距离较大实例被丢弃.文献[9],挖掘训练集和测试集之间的共有特征空间,将二者映射到该空间消减二者的差异.但本文认为任何丢弃训练数据以及消减差异都可能包含有用信息.因此我们为所有训练样本赋予不同权重,在此基础上构建预测模型.基于这个策略预测模型可以最大限度地利用跨项目数据信息,从而避免损失训练数据的问题.实验结果表明WNB方法性能更优.3.1 数据集本文在两个数据集AEEEM[14]和ReLink[15]上构造了26组跨项目缺陷预测任务.自动的缺陷信息提取技术会产生标记偏差,因此本文采用手工方式进行缺陷信息提取[16],如表1和表2所示.其中AEEEM包含61个度量属性,ReLink包含26个度量属性,表3表4分别列出部分度量信息描述.3.2 实验结果分析本文采用查全率、查准率和F1值来评估模型的预测能力.这些度量基于表5所示的混淆矩阵.查全率(recall),正确预测缺陷模块数与真实有缺陷模块数比值,计算公式如下: 查准率(precision),正确预测缺陷模块数与预测缺陷模块数比值,计算公式如下: F1为查全率和查准率的调和平均数,值越高性能(1)跨项目缺陷预测实验结果比较分析构造了26组跨项目缺陷预测任务,AEEEM数据集中包含20组跨项目组合: EQ->PDE、JDT->EQ、ML->JDT等.数据集ReLink中包含6组跨项目组合.由于数据集AEEEM和ReLink之间存在不同的度量属性,因此不能交叉组合.将WNB和朴素贝叶斯分类器NB,NN(相似训练数据选择K = 10)[7]、TCA[9]以及TNB[10]等方法进行比较.表6~7分别为本文方法与其他方法在26组跨项目组合上的预测结果对比.基于NB建立的模型预测结果较差,这是由于该方法并没有考虑不同项目之间数据差异;基于NN和TCA建立模型的预测性能明显优于基于NB方法,但由于它们在构建过程中丢弃了部分差异较大的训练样本而这些训练中可能包含有用的信息,因此这两种方法预测性能并不十分理想;基于TNB建立模型预测性能结果较好,但是该模型只考虑了目标样本属性的极大极小值,并不能完全反映目标数据集所有特征,只有在属性特征差异较小时才能取得较好的预测效果;基于WNB建立的预测模型不丢弃任何训练样本,并充分考虑目标样本的所有属性值,使得预测性能优于其他比较模型.在表6和表7中也展示了项目内部缺陷预测性能(Test->Test,十折交叉验证).通常情况下,项目内部缺陷预测的性能优于跨项目缺陷预测.但是WNB的预测结果较接近甚至高于项目内部缺陷预测性能.此外使用Wilcoxon符号秩检测方法对实验结果F1值进行统计分析,显著性水平设置为5%,即P值小于0.05时认为两种比较方法的性能差异具有统计学意义,结果表明所有数据集中P值均小于0.05,因此WNB与其他比较方法在统计学意义上存在显著差异.越好,计算公式如下:(2)基于不同训练数据规模实验探讨训练数据规模对预测模型的影响,在数据集ReLink和AEEEM中构造8组实验数据,选择单个项目作为测试数据合并其他项目数据作为训练数据构造跨项目组合.数据集ReLink可以构造3组实验数据对: Apache + ZXing->Safe、Apache + Safe->Zxing、Safe + Zxing->Apache.同理,AEEEM数据集可构造5组实验数据对.训练规模依次从10%到100%,观察预测模型的性能.图1~8分别展示了各种方法在不同数据规模上的F1值.从图中可以看出,相对于其他方法,WNB始终有较好的F1性能.虽然TNB的F1值较接近WNB方法,但它并不是一个合理的模型,因为其只考虑属性的最大值和最小值来捕获不同项目数据之间的相似权重,很可能会丢失有用信息.当训练样本规模增加时,WNB可以使用更多的数据信息.因此训练数据量的不同显著影响预测模型的性能,当训练数据和测试数据相似时,随着训练数据量的增加预测模型性能提高;当训练数据和测试数据之间存在较大差异,随着训练样本数量逐渐增大,预测模型性能下降.本文针对跨项目缺陷预测问题提出了一种新的基于加权贝叶斯模型的迁移学习算法WNB.该算法能够最大限度的利用跨项目数据信息,避免现有预测模型丢弃大量训练数据的问题.在8个开源项目数据集上进行实验,实验结果表明WNB算法显著提高了跨项目缺陷预测性能.在后续工作中,我们将收集更多的开源项目来验证WNB的通用性,同时进一步考虑如何获取目标数据更多的信息提高预测性能.程铭男,1985年生于河南郑州,武汉大学计算机学院博士研究生,研究方向:软件工程、缺陷预测、机器学习.E-mail:*****************.cn毋国庆男,1954年生,教授,博士生导师,研究方向:软件工程、软件演化.E-mail:***********.cn【相关文献】[1]Pizzi N J.A fuzzy classifier approach to estimating software quality[J].Information Sciences,2013,241: 1 -11.[2]Jing X Y,Ying S,et al.Dictionary learning based software defect prediction[A].Proceedings of the 36th International Conference on Software Engineering[C].Hyderabad: ACM,2014.414 -423.[3]Wang J,Shen B J,Chen Y pressed C4.5 models for software defect prediction[A].Proceedings of the 12th International Conference on Quality Software [C].Xi'an: IEEE,2012.13 -16.[4]姜慧研,宗茂,刘相莹.基于ACO-SVM的软件缺陷预测模型的研究[J].计算机学报,2011,34(6): 1148 -1154.Jiang Hui-yan,Zong Mao,Liu Xiang-ying.Research of software defectprediction model based on ACO-SVM[J].Chinese Journal of Computers,2011,34(6): 1148 - 1154.(in Chinese)[5]Zimmermann T,Nagappan N,et al.Cross-project defect prediction[A].Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on Foundations of Software Engineering [C].Amsterdam: ACM,2009.91 -100.[6]Pan S J,Yang Q.A survey on transfer learning[J].IEEE Transactions on Knowledge and Data Engineering,2010,22(10): 1345 -1359.[7]Turhan B,Menzies T,et al.On the relative value of crosscompany and within-company data for defect prediction[J].Empirical Software Engineering,2009,14(5):540 -578.[8]Canfora G,Lucia A D,et al.Multi-objective cross-project defect prediction [A].Proceedings of the 6th IEEE International Conference on Software Testing,Verification and Validation[C].Luxembourg: IEEE,2013.252 -261.[9]Nam J,Pan S J,et al.Transfer defect learning[A].Proceedings of the 35th International Conference on Software Engineering[C].San Francisco: ACM /IEEE,2013.382 -391.[10]Ma Y,Luo G C,et al.Transfer learning for crosscompany software defect prediction[J].Information and Software Technology,2012,54(3): 248 -256.[11]Peng L Z,Yang B,et al.Data gravitation based classification[J].Information Sciences,2009,179(6): 809 -819.[12]Wang C,Chen Y Q.Improving nearest neighbor classification with simulated gravitational collapse[A].Proceedings of the First International Conference on Natural Computation[C].Changsha: Springer-Verlag,2005.845 -854.[13]Frank E,Hall M,et al.Locally weighted naive Bayes [A].Proceedings of the 9th International Conference on Uncertainty in Artificial Intelligence[C].San Francisco: Morgan Kaufmann,2003.249 -256.[14]D’Ambros M,Lanza M,et al.An extensive comparison of bug prediction approaches[A].Proceedings of the 7th IEEE Working Conference on Mining Software Repositories[C].Cape Town: IEEE,2010.31 -41.[15]Wu R X,Zhang H Y,et al.Relink: recovering links between bugs and changes [A].Proceedings of the 19th ACM SIGSOFT Symposium and the Thirteenth European Conference on Foundations of Software Engineering[C].Szeged: ACM,2011.15 -25. [16]Bird C,Bachmann A,et al.Fair and balanced?: bias in bug-fix datasets[A].Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on Foundations of Software Engineering [C].Amsterdam: ACM,2009.121 -130.。
基于主动学习的跨项目软件缺陷预测方法
基于主动学习的跨项目软件缺陷预测方法基于主动学习的跨项目软件缺陷预测方法引言:随着软件行业的快速发展,软件缺陷成为了制约软件质量的重要因素之一。
因此,预测和预防软件缺陷成为了软件开发过程中的重要任务。
目前,已经有很多软件缺陷预测方法被提出,其中基于机器学习的方法在过去的几年中得到了广泛的应用。
然而,许多现有方法只能在单一项目上进行缺陷预测,无法满足跨项目预测的需求。
为解决这一问题,本文提出了一种基于主动学习的跨项目软件缺陷预测方法。
主体:1. 跨项目软件缺陷预测的重要性跨项目软件缺陷预测是指通过利用一个项目的缺陷数据来预测另一个项目的缺陷情况。
这种预测方法的重要性在于,不同项目之间往往存在相似的代码特征和缺陷规律,因此通过跨项目预测,可以有效提高缺陷预测的准确性和可靠性。
2. 主动学习的基本原理主动学习是一种机器学习方法,其基本原理是通过选择合适的样本进行训练,以提高机器学习模型的性能。
在跨项目软件缺陷预测中,主动学习可以帮助选择最具代表性的训练样本,从而提高预测的准确性和泛化能力。
3. 基于主动学习的跨项目软件缺陷预测方法步骤本文提出的基于主动学习的跨项目软件缺陷预测方法包括以下步骤:(1)数据预处理:对跨项目的缺陷数据进行处理,包括去除噪声数据、特征选择和数据标准化等。
(2)初始训练集选择:从源项目中选择一小部分具有代表性的训练样本,用于初始化预测模型。
(3)模型训练:使用初始训练集训练机器学习模型,比如支持向量机、随机森林等。
(4)不确定度计算:对目标项目中的未知样本进行预测,并计算其预测结果的不确定度。
(5)样本选择:根据不确定度选择最具有代表性的样本,并将其加入到训练集中,用于下一轮的模型训练。
(6)循环迭代:重复步骤(3)至(5),直到预测结果收敛或达到预定的迭代次数。
(7)目标项目预测:使用训练好的模型对目标项目中的缺陷进行预测。
4. 实验结果和分析针对不同的跨项目软件缺陷预测实验,本文使用了基于主动学习的方法进行预测,并与其他常用的预测方法进行对比。
PU场景下基于迁移学习的软件缺陷预测
PU场景下基于迁移学习的软件缺陷预测包振栋;张阳;刘斌【期刊名称】《计算机工程与设计》【年(卷),期】2018(039)003【摘要】为降低软件缺陷预测对标注样本的需求,将软件缺陷预测问题模型化为PU场景下的迁移学习问题.不对要进行软件缺陷预测的目标领域样本标注类别,只对跨工程的源领域数据集标注部分正例样本,结合数据引力方法基于样本进行迁移学习,利用贝叶斯理论在源领域缺陷数据集和目标数据集上估算概率参数,构建软件缺陷预测算法TPAODE.实验结果表明,TPAODE算法比PNB和PTAN算法具有更好的缺陷预测性能,仅需标注少量正例样本的跨项目缺陷数据,即可具有较好的软件缺陷预测性能.%To reduce the requirement for labeled defect samples,the problem of software defect prediction was modeled into transfer learning problems in PU learning scenario.The target defect dataset was not labeled,while some of positive samples of source defect dataset were justly labeled,data gravity method was used to transfer cross-project defect samples into target dataset,and probability estimators were estimated based on source and target datasets,so as to construct the software defect prediction algorithm TPAODE.Experimental result shows that the TPAODE algorithm has better prediction performance than traditional PU learning methods PNB and PTAN.With only small amount of positive samples from cross-project defect dataset,the algorithm has excellent software defect prediction performance.【总页数】5页(P663-667)【作者】包振栋;张阳;刘斌【作者单位】西北农林科技大学信息工程学院,陕西杨凌712100;西北农林科技大学信息工程学院,陕西杨凌712100;西北农林科技大学信息工程学院,陕西杨凌712100【正文语种】中文【中图分类】TP311.5【相关文献】1.基于迁移学习的跨公司航天软件缺陷预测 [J], 哈清华;刘大有;陈媛;刘逻2.基于迁移学习的跨项目软件缺陷预测 [J], ZHANG Yang-yang;JING Xiao-yuan;WU Fei3.基于迁移学习的软件缺陷预测技术研究 [J], 蒋兰华4.基于迁移学习的软件缺陷预测算法研究 [J], 何金虎; 吴翔虎; 曲明成5.基于迁移学习的软件缺陷预测算法研究 [J], 何金虎; 吴翔虎; 曲明成因版权原因,仅展示原文概要,查看原文内容请购买。
结合数据选择的多源跨项目缺陷预测
结合数据选择的多源跨项目缺陷预测
邓建华;王炜
【期刊名称】《计算机科学》
【年(卷),期】2022(49)S02
【摘要】多源跨项目缺陷预测(Multi-sources Cross Project Defect Prediction,MCPDP)旨在使用多个来自其他项目(源项目)的历史数据来预测目标项目中软件模块出现缺陷的可能性。
该研究解决了缺陷预测建模的冷启动问题,为新建软件或缺乏历史数据的软件系统建立缺陷预测模型提供了解决方案。
对于进一步提高跨项目缺陷预测的准确性,源数据选择被认为是一条有效途径。
因此,文中对数据选择的多源跨项目缺陷预测方法进行了研究,该方法包括两个步骤:1)源数据特征对齐;2)改进最大均值测度,实现源数据筛选。
为了验证提出的方法的有效性,在AEEEM,Relink,NASA,SOFTLAB这4个公开数据集进行实验,结果表明所提方法在F-measure指标上比基线方法分别提高了4%和5%,证明该方法具有较好的性能。
【总页数】7页(P780-786)
【作者】邓建华;王炜
【作者单位】云南大学软件学院
【正文语种】中文
【中图分类】TP311.53
【相关文献】
1.跨项目缺陷预测中训练数据选择方法
2.基于分层数据筛选的跨项目缺陷预测方法
3.一种跨项目缺陷预测的源项目训练数据选择方法
4.基于特征选择和TrAdaBoost 的跨项目缺陷预测方法
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2017-08-12 修回日期:2017-12-28 网络出版时间:2018-03-07基金项目:国家自然科学基金(61272273)作者简介:娄丰鹏(1991-),女,研究生,研究方向为信息安全㊁机器学习与数据挖掘;荆晓远,教授,博导,研究方向为模式识别㊁图像与信号处理㊁信息安全㊁机器学习与数据挖掘㊂网络出版地址:http :// /kcms /detail /61.1450.TP.20180307.1427.052.html增加度量元的迁移学习跨项目软件缺陷预测娄丰鹏1,吴 迪2,荆晓远3,吴 飞3(1.南京邮电大学计算机学院,江苏南京210003;2.武汉大学计算机学院软件工程国家重点实验室,湖北武汉430072;3.南京邮电大学自动化学院,江苏南京210003)摘 要:目前,结合机器学习方法和软件缺陷预测技术自动地学习模型来发现软件中的缺陷,已经成为跨项目缺陷预测的主要方法㊂由于源项目和目标项目之间的特征分布差异,跨项目相关性预测的表现通常较差㊂针对该问题,可以使用从源项目中提取知识并将其转移到目标项目的转移学习技术来提高预测性能,并提出了一种增加度量元的迁移学习方法进行跨项目的软件缺陷预测㊂该方法首先使用分类器对数据集进行一次项目内预测,并将预测结果作为新的度量元加入数据集㊂然后采用迁移学习方法将源项目中提取的知识转移至目标项目,并使用分类器预测目标项目㊂在AEEEM 数据集上的实验结果表明,该算法提高了跨项目软件缺陷预测效率㊂关键词:跨项目;机器学习;软件缺陷预测;迁移学习;分类器中图分类号:TP 301.6 文献标识码:A 文章编号:1673-629X (2018)07-0103-05doi :10.3969/j.issn.1673-629X.2018.07.022Cross -project Software Defect Prediction Based on TransferLearning with MetricsLOU Feng -peng 1,WU Di 2,JING Xiao -yuan 3,WU Fei 3(1.School of Computer ,Nanjing University of Posts and Telecommunications ,Nanjing 210003,China ;2.State Key Laboratory of Software Engineering ,School of Computer ,Wuhan University ,Wuhan 430072,China ;3.School of Automation ,Nanjing University of Posts and Telecommunications ,Nanjing 210003,China )Abstract :The combination of machine learning method and software defect prediction technology to automatically learn the model to find the software defects has become the main method of cross -project defect prediction in recent years.However ,the performance of cross -project prediction is generally poor largely due to feature distribution differences between the source and target projects.In this cases ,we propose a method to add the prediction results as a metric to the original data set to form a new data set for cross -project software defect prediction.First ,a classifier is used to predict the data set in a project ,and the predicted result is added as a new metric to the data set.Second ,a transfer learning method is applied to transfer knowledge from original source project to target project ,and a classifier is used to predict target project ,thus effectively improving the prediction accuracy.The experiment on AEEEM data set shows that the proposed method significantly improves cross -project prediction performance.Key words :cross -project ;machine learning ;software defect prediction ;transfer learning ;classifier0 引 言软件缺陷通常导致系统发生故障,进而造成财政和金融损失㊂软件在正式发布之前,可以通过不同级别的测试来检验和删除这些缺陷㊂因此,软件缺陷预测是保证系统正常运行的一个至关重要的步骤㊂在软件工程领域,软件缺陷预测已经成为一个重大的研究课题,引起了很多学者的高度重视[1-2]㊂近年来,已经提出了许多有效的软件缺陷预测方法[3-5]㊂这些方法是通过从软件仓库中挖掘数据集,然后使用机器学习分类器预测一个学习模型[6],通过该模型可以对软件缺陷进行预测[7]㊂近年来比较流行的机器学习分类器有很多,如决策树(decision tree ,DT )㊁随机森第28卷 第7期2018年7月 计算机技术与发展COMPUTER TECHNOLOGY AND DEVELOPMENT Vol.28 No.7July 2018林(random forest,RF)㊁逻辑回归(logistic regression, LR)㊁支持向量机模型(support vector machine, SVM)[8-9]等㊂但是,大多数方法是在项目内部进行评估的,新项目通常没有足够的缺陷数据来构建预测模型㊂对于一个新项目或者是具有有限训练数据的新项目,最好通过使用现有源项目中足够的训练数据来学习预测模型,然后将模型应用于某些目标项目,称之为跨项目㊂因此,跨项目缺陷预测是必要的㊂但是,由于源项目和目标项目之间的特征分布差异,导致跨项目软件缺陷预测的性能通常较差㊂针对上述问题,文中采用迁移学习方法(transfer component analysis,TCA)[7]查找源项目与目标项目的相似性,并提出一种通过增加度量元来提高基于迁移学习的跨项目缺陷预测性能的方法(MTCA)㊂该方法首先使用分类器对数据集进行一次项目内快速预测,将预测结果作为新的度量元加入数据集构成新的数据集㊂然后,采用迁移学习将源项目中提取的知识转移至目标项目,并使用分类器预测目标项目㊂最后在AEEEM数据库[10]上进行验证㊂1 机器学习算法以及缺陷预测过程1.1 机器学习分类器算法研究逻辑回归算法广泛应用于数据挖掘㊁数据分类,同时也在支持概率类型结果输出的方面得到大量应用㊂逻辑回归算法是在线性回归的基础上,加入逻辑函数,使用输入变量线性加权实现分类,最终输出概率估计㊂支持向量机算法[8-9]是基于核的算法,主要是把输入数据映射到一个高维空间,使输入数据由线性不可分以最大化分类间隔构建最优分割超平面,从而提高学习机的泛化能力㊂对于分类,支持向量机算法根据空间中的样本计算该空间的决策曲面,由此确定该空间中未知样本的所属类别㊂随机森林算法是多个决策树分类器的集成,其输出的类别是由个别决策树输出的类别的众数决定的㊂随机森林训练和预测速度快,对训练数据的容错能力可以进行有效估计,当数据集中的数据缺失很多时依旧可以保持精度不变,能够在分类过程中生成一个泛化误差较小的内部无偏估计㊂近邻算法中,所选择的邻居都是已经得到正确分类的数据㊂该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别,最近邻样本中的大多数属于哪个类别,该样本就属于哪个类别㊂1.2 缺陷预测过程图1是一般的软件缺陷预测过程㊂在项目内预测中,训练样本集和测试样本集来自同一个项目㊂对于跨项目预测,训练样本集来自一个项目(源),测试样本集来自另一个项目(目标)㊂图1 软件缺陷预测过程 如图1所示,该过程首先是收集软件并标记每个软件发布后的缺陷数量,如果一个软件存在至少一个缺陷,则表明该软件存在缺陷,否则为无缺陷㊂通过提取复杂度等度量用于机器模型训练分类器,然后通过分类器预测一个新的样本的缺陷情况㊂2 迁移学习与文中算法2.1 迁移学习以及模型定义近年来,机器学习和数据挖掘技术引起了越来越多的关注[11]㊂在训练样本和测试样本具有相同的特征空间和分布时,大多数机器学习方法可以获得良好的性能[11]㊂当特征空间和分布发生变化时,学习模型需要重建㊂在这种情况下,有必要重新收集训练数据并再次标记㊂通常,重建学习模型是昂贵的,并且标注新的训练数据需要相当大的努力㊂迁移学习通过转移从相关但不同领域提取的知识来解决这些问题,这可以被认为是相关性预测中的源项目,而在目标领域建立精确的预测模型,可以被视为目标项目[12]㊂迁移学习的模型定义如下:设X T为目标样本空间,X S为源样本空间,目标样本空间也即目标空间,就是想要去分类的样本空间㊂设Y={0,1}为类空间,训练数据也就是:T⊆{(X= X S)×Y}㊂测试数据:S={(x t i)},x t i∈X T,i=1,2, ,k㊂其中测试数据是未标记的,将训练数据表示为:T a= {(x a i,c(x a i))},x a i∈X S,i=1,2, ,n㊂其中c(x)代㊃401㊃ 计算机技术与发展 第28卷表样本数据x真实属于的类别,T a和测试数据S是属于不同分布的㊂现在的任务就是给定源数据T a,训练出一个分类器,使得在测试数据S上的分类误差最小㊂2.2 TCA(transfer component analysis)TCA是一种基于特征的迁移学习方法,使用MMD(maximum mean discrepancy)[13-14]将处于不同数据分布的源空间和目标空间一起映射到一个高维的再生核希尔伯特空间㊂在该空间中,最小化源数据和目标数据距离,同时最大程度地保留源数据和目标数据各自的内部属性,那么跨空间的差异可能会大大降低㊂因此,通过这个高维空间中的新表示,可以应用标准的机器学习方法来训练源空间中的分类器或回归模型,以在目标空间中使用㊂TCA算法描述如下:输入:源空间训练样本集T a,目标空间测试样本集T b,训练数据M,测试数据N㊂预处理:对样本集进行预处理(如归一化㊁降维等)㊂(1)构造L矩阵㊂L=-1M*N*I,I为M+N阶全1矩阵㊂L(1:M,1:M)=1M2*I1,I1为M阶全1矩阵㊂L(M+1:M+N,M+1:M+N)=1N2*I2,I2为N 阶全1矩阵㊂(2)构造H矩阵㊂H=E1-1M+N*I3*I4,E1为M+N阶单位阵,I3为M+N行1列的全1矩阵,I4为1行M+N列全1矩阵㊂(3)构造核函数矩阵K㊂根据T a和T b,使用常用核函数计算K㊂(4)构造矩阵W㊂求(KLK+μI)-1KHK的前m个特征值,即为W 矩阵㊂(5)映射样本数据:W'*T㊂输出:源训练样本和目标测试样本的降维数据㊂2.3 文中算法流程在上一节的基础上,得到降维之后的训练样本数据运用传统机器学习方法训练源空间的分类器,并对目标空间的测试数据进行缺陷预测㊂结合前面介绍的方法,得到文中算法流程,如图2所示㊂图2 文中算法流程 图中第一阶段代表第一次工程内预测,将预测结果作为工程的度量元加入数据集,通过数据集预处理得到新数据集作为第二阶段的输入数据[15];第二阶段运用TCA算法,结合复杂的分类模型进行跨工程预测,得到最终的预测结果㊂算法MTCA第二阶段伪代码描述如下:输入:源空间训练样本集X S,目标空间测试样本集X T㊂预处理:对样本集进行预处理(如归一化㊁降维等)㊂步骤1:将X S和X T利用TCA算法进行处理,得到迁移后的新的数据集X'S和X'T㊂步骤2:使用SVM分类器对每一个测试样本实例进行预测分类㊂输出:目标测试样本的预测标记㊂3 实 验3.1 实验数据库实验是在AEEEM[10]数据库上进行的,该数据库包含5个工程,表1介绍了各个工程的静态代码度量和缺陷数等特征[16]㊂表1 AEEEM数据集数据库缺陷样本数样本总数特征数缺陷样本占比/%EQ1293246139.81JDT2069976120.66LC64691619.26ML24518626113.16PDE20914976113.96㊃501㊃ 第7期 娄丰鹏等:增加度量元的迁移学习跨项目软件缺陷预测3.2 评估度量通过Precision(精确度)㊁Recall(召回率)以及F-measure(综合评估)三个指标来全面评估各个方法的性能,这三个指标是评估分类模型最具代表性的度量[17],一个好的预测模型希望实现较高的Recall和Precision值㊂根据表2,Precision和Recall可以定义为: Precision=A A+C(1) Recall=A A+B(2)表2 四种预测结果预测为相关预测为不相关真实为相关A B真实为不相关C D 但是,Recall和Precision两个指标之间存在着权衡㊂因此,需要对召回率和精确度进行综合评估,则F-measure定义为:F-measure=2*Precision*RecallPrecision+Recall(3)这四种评价指标值都在0~1之间,一个好的缺陷预测模型应该会有较高的Precision㊁F-measure和Re⁃call值㊂而且F-measure是综合性评价指标,更加重要㊂3.3 实验结果与分析文中使用一对一的跨工程预测(即仅使用一个源项目预测一个目标项目),使用AEEEM库构建一个跨项目组合,例如:EQ→JDT㊁EQ→LC㊁LC→PDE等㊂实验步骤为:首先是AEEEM库中的5个工程各自做一次工程内缺陷预测,分类器分别是LR㊁RF㊁NN,将预测结果作为工程的度量元加入数据集,每个原始数据集加入一个特征,即构成了三组新的数据集,即(EQ_LR㊁JDT_LR㊁ML_LR㊁LC_LR㊁JDT_LR)为一组新数据集,(EQ_RF㊁JDT_RF㊁ML_RF㊁LC_RF㊁JDT_ RF)为一组新数据集,(EQ_NN㊁JDT_NN㊁ML_NN㊁LC_NN㊁JDT_NN)为一组新数据集㊂每组新数据集进行跨项目组合并迁移,然后进行跨工程的软件缺陷再预测,二次预测使用一个鲁棒性更强的分类器,文中使用SVM,这一算法流程简称MTCA㊂在对比算法TCA 时,为了保证实验的可靠性,使用SVM分类器㊂对TCA方法与MTCA方法做对比,TCA使用的是原始数据集,MTCA使用的是EQ㊁JDT㊁LC㊁ML㊁PDE三组新数据集,随机进行20次求平均,结果如表3所示㊂表3 在AEEEM数据库上的实验结果源→目标Precision Recall F-measureRF NN LR TCA RF NN LR TCA RF NN LR TCAEQ→JDT0.510.480.480.420.630.630.540.610.600.590.530.56 LC→JDT0.330.250.420.270.510.640.320.500.460.480.440.43 ML→JDT0.230.400.360.250.560.480.480.300.440.410.330.31 PDE→JDT0.380.230.440.190.600.480.430.390.420.420.430.39 JDT→EQ0.500.490.490.470.500.510.330.530.520.510.350.50 LC→EQ0.480.460.420.810.350.420.530.270.370.430.510.31 ML→EQ0.510.320.330.330.570.530.490.470.550.470.440.45 PDE→EQ0.380.310.450.300.420.480.550.510.480.430.530.39 EQ→LC0.220.380.370.130.670.440.450.660.470.420.430.36 JDT→LC0.530.550.460.420.540.340.520.500.480.370.300.34 ML→LC0.460.220.350.180.620.480.620.520.580.270.410.29 PDE→LC0.400.210.340.230.510.270.560.420.480.250.500.36 EQ→ML0.470.340.310.230.590.300.730.530.420.310.450.42 JDT→ML0.240.250.490.170.520.590.450.510.420.460.340.36 LC→ML0.420.330.430.210.330.360.360.240.350.250.370.23 PDE→ML0.560.480.540.120.650.550.630.600.630.530.610.34 EQ→PDE0.270.390.250.260.610.320.570.560.480.330.460.45 JDT→PDE0.280.290.250.170.570.600.550.430.470.500.440.33 LC→PDE0.390.240.150.150.350.210.460.310.360.390.330.36 ML→PDE0.550.500.530.360.460.500.480.370.480.500.490.29㊃601㊃ 计算机技术与发展 第28卷 分析表3可知,MTCA 在各个数据库上的缺陷预测效果普遍好于TCA ,尤其是F -measure 评价指标,相较其他方法优势明显㊂F -measure 作为综合评价指标,从该值的观测中就能看出算法的总体性能,而MT⁃CA 在F -measure 上较TCA 要高出很多,也说明了该方法的优势㊂但是,也存在一些结果相比较低的,原因是加入新的度量元时可能引入了过多的错误数据,导致缺陷预测模型向着错误的方向构建㊂总体上结果还是普遍较好㊂4摇结束语针对当前软件缺陷预测模型中机器学习算法对预测模型性能的影响问题,提出了一种通过增加度量元来提高基于迁移学习的跨项目缺陷预测性能的方法㊂首先使用分类器对数据集进行一次项目内预测,并将预测结果作为新的度量元加入数据集;然后采用迁移学习方法将源项目中提取的知识转移至目标项目,并使用分类器预测目标项目,从而提高了跨项目软件缺陷预测效率㊂通过对比验证了该方法的有效性㊂如何合理选择分类器以进一步提高缺陷预测模型的性能指标是下一步研究的问题㊂参考文献:[1] RAHMAN F ,POSNETT D ,HERRAIZ I ,et al.Sample sizevs.bias in defect prediction [C ]//Joint meeting on founda⁃tions of software engineering.[s.l.]:ACM ,2013:147-157.[2] RAHMAN F ,KHATRI S ,BARR E T ,et paring staticbug finders and statistical prediction [C ]//Proceedings of the 36th international conference on software engineering.Hyder⁃abad ,India :ACM ,2014:424-434.[3] HASSAN A E.Predicting faults using the complexity of codechanges [C ]//31st international conference on software engi⁃neering.Vancouver ,BC ,Canada :IEEE ,2009:78-88.[4] KIM S ,JR E J W ,ZHANG Yi.Classifying software chan⁃ges :clean or buggy ?[J ].IEEE Transactions on SoftwareEngineering ,2008,34(2):181-196.[5] MENZIES T ,GREENWALD J ,FRANK A.Data miningstatic code attributes to learn defect predictors [J ].IEEE Transactions on Software Engineering ,2006,33(1):2-13.[6] 戴文渊.基于实例和特征的迁移学习算法研究[D ].上海:上海交通大学,2009.[7] NAM J ,PAN S J ,KIM S.Transfer defect learning [C ]//35th international conference on software engineering.SanFrancisco ,CA ,USA :IEEE ,2013:382-391.[8] ELISH K O ,ELISH M O.Predicting defect -prone softwaremodules using support vector machines [J ].Journal of Sys⁃tems &Software ,2008,81(5):649-660.[9] TANTITHAMTHAVORN C ,MCINTOSH S ,HASSAN AE ,et ments on researcher bias :the use of machine learning in software defect prediction ”[J ].IEEE Transac⁃tions on Software Engineering ,2016,42(11):1092-1094.[10]FENTON N E ,NEIL M.Software metrics :roadmap [C ]//Conference on the future of software engineering.[s.l.]:IEEE ,2000:357-370.[11]PAN S J ,YANG Qiang.A survey on transfer learning [J ].IEEE Transactions on Knowledge &Data Engineering ,2010,22(10):1345-1359.[12]刘英博,王建民.面向缺陷分析的软件库挖掘方法综述[J ].计算机科学,2007,34(9):1-4.[13]BORGWARDT K M ,GRETTON A ,RASCH M J ,et al.In⁃tegrating structured biological data by kernel maximum meandiscrepancy [J ].Bioinformatics ,2006,22(14):e 49-e 57.[14]皋 军,黄丽莉.最大局部加权均值差异嵌入[J ].电子学报,2013,41(8):1462-1468.[15]陈家强.软件缺陷预测中数据预处理技术研究[D ].南京:南京大学,2014.[16]陈 翔,顾 庆,刘望舒,等.静态软件缺陷预测方法研究[J ].软件学报,2016,27(1):1-25.[17]RASTKAR S ,MURPHY G C ,MURRAY G.Summarizingsoftware artifacts :a case study of bug reports [C ]//ACM /IEEE international conference on software engineering.[s.l.]:ACM ,2010:505-514.(上接第102页) l.]:[s.n.],2015:918-927.[10]DWORK C ,MCSHERRY F ,NISSIM K ,et al.Calibratingnoise to sensitivity in private data analysis [C ]//3rd confer⁃ence on theory of cryptography.[s.l.]:[s.n.],2006:265-284.[11]DWORK C.Differential privacy in new settings [C ]//Pro⁃ceedings of the twenty -first annual ACM -SIAM symposium on discrete algorithms.Austin ,Texas ,USA :[s.n.],2010:174-183.[12]SWEENEY L.Achieving k -anonymity privacy protection u⁃sing generalization and suppression [J ].International Journal on Uncertainty ,Fuzziness and Knowledge -based Systems ,2002,10(5):571-588.[13]张啸剑,王 淼,孟小峰.差分隐私保护下一种精确挖掘top -k 频繁模式方法[J ].计算机研究与发展,2014,51(1):104-114.[14]欧阳佳,印 鉴,刘少鹏,等.一种有效的差分隐私事务数据发布策略[J ].计算机研究与发展,2014,51(10):2195-2205.[15]薛寿豪,张正道.基于箱聚类的差分隐私直方图发布方法研究[J ].计算机应用研究,2014,31(12):3700-3703.㊃701㊃ 第7期 娄丰鹏等:增加度量元的迁移学习跨项目软件缺陷预测。