CN111459838B - 一种基于流形对齐的软件缺陷预测方法及系统 - Google Patents

一种基于流形对齐的软件缺陷预测方法及系统 Download PDF

Info

Publication number
CN111459838B
CN111459838B CN202010310717.1A CN202010310717A CN111459838B CN 111459838 B CN111459838 B CN 111459838B CN 202010310717 A CN202010310717 A CN 202010310717A CN 111459838 B CN111459838 B CN 111459838B
Authority
CN
China
Prior art keywords
manifold
data
item data
source
alignment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010310717.1A
Other languages
English (en)
Other versions
CN111459838A (zh
Inventor
荆晓远
彭奕
陈昊文
孔晓辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202010310717.1A priority Critical patent/CN111459838B/zh
Publication of CN111459838A publication Critical patent/CN111459838A/zh
Application granted granted Critical
Publication of CN111459838B publication Critical patent/CN111459838B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于流形对齐的软件缺陷预测方法及系统,将获取到的源数据和目标数据经过归一化以及数据降维操作投影到统一的子空间,再将经过预处理的数据嵌入到格拉斯曼流形中来,在格拉斯曼流形中习得一个流形特征转换的公式;与此同时,通过计算源数据和目标数据的差异程度,来定量评估其执行边缘分布对齐和条件分布对齐的重要性,最后经过一定的整合得到一个基于流形对齐的分类器模型。

Description

一种基于流形对齐的软件缺陷预测方法及系统
技术领域
本发明涉及分类方法技术领域,具体涉及一种基于流形对齐的软件缺陷预测方法及系统。
背景技术
软件缺陷预测是当前软件工程质量评估领域中的一个研究热点,随着科技和互联网的发展,各种各样的应用软件层出不穷,极大地方便了我们生活,但是也因此而产生了一个不容忽视的问题,应用软件并不是完美的,经常会有一定的缺陷,这些缺陷会大大影响用户的使用体验,严重的话,甚至关系到企业的发展。
历史上已经有多次因软件存在缺陷而造成了严重后果,因此在软件正式发布之前,对软件进行质量评估是不可或缺的。软件缺陷预测技术的思想是在项目开发的早期阶段,利用相关技术,判断项目内的程序模块是否包含缺陷,并修复其中的缺陷模块,最终达到提高软件产品质量的目的。
现有的软件缺陷预测工作大多是基于机器学习的方法来构建预测模型,根据预测模型是否使用外来软件项目的缺陷数据大致可分为项目内缺陷预测(WPDP)、跨项目缺陷预测(CPDP)以及两大类。
项目内缺陷预测的代表性工作有:代价敏感的鉴别字典学习方法、基于协作表示分类的缺陷预测方法、多核集成学习的软件缺陷预测方法等,通过在12个NASA项目上进行实验,结果表明多核集成学习优于其他两种先进的缺陷预测方法。
跨项目缺陷预测的代表性工作有:(1)迁移贝叶斯模型(TNB),根据目标项目中的数据采用数据引力定律来加权源项目中的训练数据。实验基于NASA和SOFTLAB数据集,结果表明TNB可以获得较好的预测性能;基于特征迁移的迁移成分分析方法,在AEEEM和ReLink数据集上,该方法展现了较好的缺陷预测性能;(2)基于典型相关性分析方法(CCA+),基于来自PROMISE库中的10个项目,实验结果表明多目标缺陷预测器方法优于单目标预测器,同时也优于其他对比的跨项目缺陷预测方法。
除此之外,当前已有多个软件缺陷预测的技术公开与发表,它们都或多或少地解决了软件缺陷预测领域的一部分挑战,但是仍有一些亟待解决的问题,比如这些预测技术都没有考虑到如何利用源数据和目标数据之间差异,从而导致预测准确性不高。
发明内容
本发明提出一种基于流形对齐的软件缺陷预测方法及系统,用于解决或者至少部分解决现有技术中的方法存在的预测准确性不高的技术问题。
为了解决上述技术问题,本发明第一方面提供了一种基于流形对齐的软件缺陷预测方法,包括:
S1:获取源项目数据和待测项目数据;
S2:对源项目数据和待测项目数据进行预处理,并将预处理后的源项目数据划分为训练集和验证集;
S3:将预处理后的待测项目数据和训练集嵌入到流形中,执行流形特征学习,得到流形特征转换核,其中,流形特征转换核用以使源项目数据与待测项目数据的分布更接近;
S4:分析嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据的分布差异,并得到分布对齐函数,其中,分布对齐函数用以对嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据执行对齐操作;
S5:对流形特征转换核与分布对齐函数进行整合,构建基于流形对齐的软件缺陷预测分类器f;
S6:对分类器f进行训练,直至收敛,得到训练好的分类器;
S7:利用训练好的分类器进行软件缺陷预测。
在一种实施方式中,S1包括:
S1.1:从给定的项目中提取项目的模块,并根据提出的模块获得待测试项目数据:
S1.2:判断待测试项目数据中是否具有包含标签的历史缺陷数据,如果具有,则将历史缺陷数据作为源项目数据,否则,选用公开的缺陷数据集作为源项目数据。
在一种实施方式中,S1.1中提取出的模块的粒度包括但不限于类、文件和函数。
在一种实施方式中,S2对源项目数据和待测项目数据进行预处理,包括:
对源项目数据和待测项目数据采用zscore方法进行归一化;
对归一化处理后的源项目数据和待测项目数据,采用PCA降维方法执行数据降维操作。
在一种实施方式中,S3中采用的流形为格拉斯曼流形,并采用测地线核进行流形特征学习,得到流形特征转换核。
在一种实施方式中,S4中采用最大平均差异MMD来分析和评估嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据的分布差异。
在一种实施方式中,S5中构建的基于流形对齐的软件缺陷预测分类器f为:
Figure BDA0002457505370000031
其中,g(xi)表示流形特征转换核,yi表示源项目数据的标签,
Figure BDA0002457505370000032
表示源项目数据,
Figure BDA0002457505370000033
表示待测项目数据,
Figure BDA0002457505370000034
表示由核函数K(·,·)所构造的希尔伯特空间,
Figure BDA0002457505370000036
为损失函数,Df(·,·)表示分布对齐函数,
Figure BDA0002457505370000035
表示源项目数据与待测项目数据的最大平均分布差异,λ表示正则化参数。
基于同样的发明构思,本发明第二方面提供了一种基于流形对齐的软件缺陷预测系统,包括:
数据获取模块,用于获取源项目数据和待测项目数据;
预处理模块,用于对源项目数据和待测项目数据进行预处理,并将预处理后的源项目数据划分为训练集和验证集;
嵌入模块,用于将预处理后的待测项目数据和训练集嵌入到流形中,执行流形特征学习,得到流形特征转换核,其中,流形特征转换核用以使源项目数据与待测项目数据的分布更接近;
差异分布分析模块,用于分析嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据的分布差异,并得到分布对齐函数,其中,分布对齐函数用以对嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据执行对齐操作;
分类器构建模块,用于对流形特征转换核与分布对齐函数进行整合,构建基于流形对齐的软件缺陷预测分类器f;
训练模块,用于对分类器f进行训练,直至收敛,得到训练好的分类器;
预测模块,用于利用训练好的分类器进行软件缺陷预测。
基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。
基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明提供了一种基于流形对齐的软件缺陷预测方法,通过将预处理后的待测项目数据和训练集嵌入到流形中,执行流形特征学习,可以学习到源项目数据和待测项目数据的流形特征并将它们投影到同一子空间中,然后通过计算源项目数据和待测项目数据的差异性,来对它们执行动态分布对齐,充分挖掘并利用了源数据集和目标数据集的几何特性,并且通过差异度算法解决了两者的分布对齐问题,从而有效地提高了模型的预测效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于流形对齐的软件缺陷预测方法的整体流程图。
图2位本发明的方法与现有方法的对比试验结果数据示意图。
具体实施方式
针对现有技术所未解决的问题,本发明提出了一种基于流形对齐的软件缺陷预测方法,该方法能够学习到源数据和目标数据(即源项目数据和待测项目数据)的流形特征并将它们投影到同一子空间中,通过计算源和目标数据的差异性,来对它们执行动态分布对齐,通过该方法能够显著地提高预测的准确性。
本发明的方案包括:
将获取到的源项目数据和待测项目数据经过归一化以及数据降维操作投影到统一的子空间,再将经过预处理后的数据嵌入到格拉斯曼流形中来,在格拉斯曼流形中习得一个流形特征转换的公式(流形特征转换核);与此同时,通过在新的特征空间中计算源项目数据和待测项目数据的差异程度,来定量评估其执行边缘分布对齐和条件分布对齐的重要性,最后经过一定的整合得到一个基于流形对齐的分类器模型。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供了一种基于流形对齐的软件缺陷预测方法,该方法包括:
S1:获取源项目数据和待测项目数据;
S2:对源项目数据和待测项目数据进行预处理,并将预处理后的源项目数据划分为训练集和验证集;
S3:将预处理后的待测项目数据和训练集嵌入到流形中,执行流形特征学习,得到流形特征转换核,其中,流形特征转换核用以使源项目数据与待测项目数据的分布更接近;
S4:分析嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据的分布差异,并得到分布对齐函数,其中,分布对齐函数用以对嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据执行对齐操作;
S5:对流形特征转换核与分布对齐函数进行整合,构建基于流形对齐的软件缺陷预测分类器f;
S6:对分类器f进行训练,直至收敛,得到训练好的分类器;
S7:利用训练好的分类器进行软件缺陷预测。
具体来说,源项目数据和待测项目数据分别作为源数据和目标数据。S3中训练集嵌入到流形中,也就是将从预处理后的源项目数据中划分出的训练部分数据进行嵌入。然后在新的特征空间(流形)中进行特征学习,从而捕获到数据的几何结构,并保护其不受到退化,使得源项目数据靠近待测项目数据。
S4是在流形对应的特征空间中分析源项目数据和待测项目数据的分布差异,并得到分布对齐函数,分布对齐函数的作用是将源项目数据和待测项目数据做对齐操作,这是因为将两种数据投影到同一特征空间之后,它们之间仍会有分布不同的问题,因此通过执行对齐操作使得它们之间的分布差异减小。
在一种实施方式中,S1包括:
S1.1:从给定的项目中提取项目的模块,并根据提出的模块获得待测试项目数据:
S1.2:判断待测试项目数据中是否具有包含标签的历史缺陷数据,如果具有,则将历史缺陷数据作为源项目数据,否则,选用公开的缺陷数据集作为源项目数据。
具体来说,对于一个给定的项目,根据特定需求可以提取项目的模块,按规则整理好,从而可以得到待测试项目数据。
公开的缺陷数据集可以为:PROMISE、NASA、SOFTLAB、AEEEM和ReLink数据集,这些是软件工程质量保障领域研究者所免费公开的数据集,其具体获取网址如下表所示:
Figure BDA0002457505370000061
在一种实施方式中,S1.1中提取出的模块的粒度包括但不限于类、文件和函数。
具体来说,S1.1中提取出的模块的粒度可以根据需要确定。
在一种实施方式中,S2对源项目数据和待测项目数据进行预处理,包括:
对源项目数据和待测项目数据采用zscore方法进行归一化;
对归一化处理后的源项目数据和待测项目数据,采用PCA降维方法执行数据降维操作。
具体来说,zscore方法即z分数标准化方法,PCA降维方法为主成分分析方法,由于源项目数据的实例数目不固定,所以训练集和验证集的比例也不是固定的,具体根据源项目数据的规模确定,具体地,若源项目数据的实例数目为5000以下,则其比例为90%:10%,若实例数目为5000-10000,则其比例为95%:5%,若实例数目大于5000,则固定验证集实例数为500,其余为训练集。
在一种实施方式中,S3中采用的流形为格拉斯曼流形,并采用测地线核进行流形特征学习,得到流形特征转换核。
具体来说,流形
Figure BDA0002457505370000071
为格拉斯曼流形,它可以避免原始空间中的变形,d为数据维度,一般按源数据维度选择10-20不等,并且本发明为了保证学习g(·)的计算效率,选用测地线核(GeodesicFlowKernel,GFK)。
假设Ss和St分别表源项目数据和待测项目数据的经PCA降维后得到的子空间,
Figure BDA0002457505370000072
可被视为所有d维子空间的集合。每个子空间都可以当作是格拉斯曼流形
Figure BDA0002457505370000074
中的一个点。因此,两点之间的测地流{Φ(t):0≤t≤1}可以为两个子空间绘制一条路径。如果设Ss=Φ(0),St=Φ(1),那么找到从Φ(0)到Φ(1)的测地流就相当于在无限维特征空间中,找到从Φ(0)到Φ(1)的一个逐步“步行”的方式。于是,新的特征可以表示为z=g(x)=Φ(t)Tx,新的特征即通过执行流形特征学习后,得到的特征。
具体地,特征zi和zj的内积会产生一个测地线核:
Figure BDA0002457505370000075
因此,利用
Figure BDA0002457505370000076
便可以得到转换后的特征(新的特征),G可以使用奇异值分解技术计算得到,
Figure BDA0002457505370000077
为一种表达形式,无法直接计算,可以使用Denman-Beavers算法(登曼-比弗斯”算法)计算得到。而学习到的流形特征转换核g(·)则是
Figure BDA0002457505370000078
的具体表达形式,流形特征转换核的作用是学习源项目数据和待测项目数据的特征并将它们投影到新的特征空间。
在一种实施方式中,S4中采用最大平均差异MMD来分析和评估嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据的分布差异。
具体来说,S4需要评估源项目数据和待测项目数据的差异程度,并且使用的是最大平均差异(maximum mean discrepancy,MMD),它是一种非参数评估方法,已经有文献验证了其理论的有效性。得到的差异度是用来定量评估其条件分布对齐和边缘分布对齐的重要性。
在一种实施方式中,S5中构建的基于流形对齐的软件缺陷预测分类器f为:
Figure BDA0002457505370000081
其中,g(xi)表示流形特征转换核,yi表示源项目数据的标签,
Figure BDA0002457505370000082
表示源项目数据,
Figure BDA0002457505370000083
表示待测项目数据,
Figure BDA0002457505370000084
表示由核函数K(·,·)所构造的希尔伯特空间,
Figure BDA0002457505370000086
为损失函数,Df(·,·)表示分布对齐函数,
Figure BDA0002457505370000085
表示源项目数据与待测项目数据的最大平均分布差异,λ表示正则化参数。
引入则化参数λ的目的是通过交叉验证来调整其值,以达到更好的效果。
与现有技术相比,本发明的有益效果和优点如下:
通过提供一种基于流形对齐的软件缺陷预测方法,可以充分挖掘并利用源项目数据和待测项目数据的几何特性,并且通过差异度算法解决了两者的分布对齐问题,有效地提高了模型的预测效果。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明进行进一步详细说明。如附图1所示,本发明提出了基于流形对齐的软件缺陷预测方法,包括以下步骤:
步骤1,数据集选用PROMISE、NASA、SOFTLAB、AEEEM和ReLink数据集,每次实验将其中一个作为待测项目数据,其它作为源项目数据;
步骤3,对源项目数据和待测项目数据执行数据归一化,再执行数据降维;然后将源项目数据分成两部分,一部分用作训练集,一部分用作验证集;
步骤4,对训练集执行流形特征学习,得到其流形特征转换核g(·),并得到转换后的特征;
步骤5,分析嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据的分布差异,并得到分布对齐函数Df(·,·),对源项目数据和待测项目数据执行数据对齐操作;
步骤6,整合g(·)和Df(·,·),构建基于流形对齐的软件缺陷预测分类器f。
步骤7,训练分类器f待其收敛,然后在验证集上观察性能,通过多次调参验证,使用最优超参λ,最后在待测项目数据上进行测试,并计算性能指标。
为验证本发明提出的一种基于流形对齐的软件缺陷预测方法能够高效地预测项目中是否有缺陷,实验依次选择PROMISE、NASA、SOFTLAB、AEEEM和ReLink作为待测项目,并且每次实验重复20次,其预测性能指标取平均值,最终得到5组结果,并将其与现有的非流形对齐方法作比较,结果如图2所示,其中加粗的数字表示该方法的性能是最好的。
通过图2中的结果表明,本发明中的方法在总体上显著优于其它方法,虽然并不是所有的指标都领先其他方法,但在g-measure指标上,本发明在5个数据集上都有最好的表现。总的来说,大多数现有的软件缺陷预测模型的预测性能是差于本发明,充分证明了本发明所提出的基于流形对齐的软件缺陷预测技术的性能优越。
实施例二
基于同样的发明构思,本实施例提供了一种基于流形对齐的软件缺陷预测系统,该系统包括:
数据获取模块,用于获取源项目数据和待测项目数据;
预处理模块,用于对源项目数据和待测项目数据进行预处理,并将预处理后的源项目数据划分为训练集和验证集;
嵌入模块,用于将预处理后的待测项目数据和训练集嵌入到流形中,执行流形特征学习,得到流形特征转换核,其中,流形特征转换核用以使源项目数据与待测项目数据的分布更接近;
差异分布分析模块,用于分析嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据的分布差异,并得到分布对齐函数,其中,分布对齐函数用以对嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据执行对齐操作;
分类器构建模块,用于对流形特征转换核与分布对齐函数进行整合,构建基于流形对齐的软件缺陷预测分类器f;
训练模块,用于对分类器f进行训练,直至收敛,得到训练好的分类器;
预测模块,用于利用训练好的分类器进行软件缺陷预测。
由于本发明实施例二所介绍的系统,为实施本发明实施例一中基于流形对齐的软件缺陷预测方法所采用的系统,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该系统的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的系统都属于本发明所欲保护的范围。
实施例三
基于同一发明构思,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现如实施例一中所述的方法。
由于本发明实施例三所介绍的计算机可读存储介质为实施本发明实施例一中基于流形对齐的软件缺陷预测方法所采用的计算机可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
实施例四
基于同一发明构思,本申请还提供了一种计算机设备,包括存储、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行上述程序时实现实施例一中的方法。
由于本发明实施例四所介绍的计算机设备为实施本发明实施例一中基于流形对齐的软件缺陷预测方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机设备都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种基于流形对齐的软件缺陷预测方法,其特征在于,包括:
S1:获取源项目数据和待测项目数据;
S2:对源项目数据和待测项目数据进行预处理,并将预处理后的源项目数据划分为训练集和验证集;
S3:将预处理后的待测项目数据和训练集嵌入到流形中,执行流形特征学习,得到流形特征转换核,其中,流形特征转换核用以使源项目数据与待测项目数据的分布更接近;
S4:分析嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据的分布差异,并得到分布对齐函数,其中,分布对齐函数用以对嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据执行对齐操作;
S5:对流形特征转换核与分布对齐函数进行整合,构建基于流形对齐的软件缺陷预测分类器f;
S6:对分类器f进行训练,直至收敛,得到训练好的分类器;
S7:利用训练好的分类器进行软件缺陷预测;
其中,S5中构建的基于流形对齐的软件缺陷预测分类器f为:
Figure FDA0003186850130000011
其中,g(xi)表示流形特征转换核,yi表示源项目数据的标签,
Figure FDA0003186850130000012
表示源项目数据,
Figure FDA0003186850130000013
表示待测项目数据,
Figure FDA0003186850130000014
表示由核函数K(·,·)所构造的希尔伯特空间,l(f(g(xi)),yi)为损失函数,Df(·,·)表示分布对齐函数,
Figure FDA0003186850130000015
表示源项目数据与待测项目数据的最大平均分布差异,λ表示正则化参数。
2.如权利要求1所述的方法,其特征在于,S1包括:
S1.1:从给定的项目中提取项目的模块,并根据提出的模块获得待测试项目数据:
S1.2:判断待测试项目数据中是否具有包含标签的历史缺陷数据,如果具有,则将历史缺陷数据作为源项目数据,否则,选用公开的缺陷数据集作为源项目数据。
3.如权利要求2所述的方法,其特征在于,S1.1中提取出的模块的粒度包括但不限于类、文件和函数。
4.如权利要求1所述的方法,其特征在于,S2对源项目数据和待测项目数据进行预处理,包括:
对源项目数据和待测项目数据采用zscore方法进行归一化;
对归一化处理后的源项目数据和待测项目数据,采用PCA降维方法执行数据降维操作。
5.如权利要求1所述的方法,其特征在于,S3中采用的流形为格拉斯曼流形,并采用测地线核进行流形特征学习,得到流形特征转换核。
6.如权利要求1所述的方法,其特征在于,S4中采用最大平均差异MMD来分析和评估嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据的分布差异。
7.一种基于流形对齐的软件缺陷预测系统,其特征在于,包括:
数据获取模块,用于获取源项目数据和待测项目数据;
预处理模块,用于对源项目数据和待测项目数据进行预处理,并将预处理后的源项目数据划分为训练集和验证集;
嵌入模块,用于将预处理后的待测项目数据和训练集嵌入到流形中,执行流形特征学习,得到流形特征转换核,其中,流形特征转换核用以使源项目数据与待测项目数据的分布更接近;
差异分布分析模块,用于分析嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据的分布差异,并得到分布对齐函数,其中,分布对齐函数用以对嵌入到流形后的源项目数据和嵌入到流形后的待测项目数据执行对齐操作;
分类器构建模块,用于对流形特征转换核与分布对齐函数进行整合,构建基于流形对齐的软件缺陷预测分类器f;
训练模块,用于对分类器f进行训练,直至收敛,得到训练好的分类器;
预测模块,用于利用训练好的分类器进行软件缺陷预测;
其中,分类器构建模块中构建的基于流形对齐的软件缺陷预测分类器f为:
Figure FDA0003186850130000021
其中,g(xi)表示流形特征转换核,yi表示源项目数据的标签,
Figure FDA0003186850130000022
表示源项目数据,
Figure FDA0003186850130000031
表示待测项目数据,
Figure FDA0003186850130000032
表示由核函数K(·,·)所构造的希尔伯特空间,l(f(g(xi)),yi)为损失函数,Df(·,·)表示分布对齐函数,
Figure FDA0003186850130000033
表示源项目数据与待测项目数据的最大平均分布差异,λ表示正则化参数。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至6中任一项权利要求所述的方法。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6中任一项权利要求所述的方法。
CN202010310717.1A 2020-04-20 2020-04-20 一种基于流形对齐的软件缺陷预测方法及系统 Active CN111459838B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010310717.1A CN111459838B (zh) 2020-04-20 2020-04-20 一种基于流形对齐的软件缺陷预测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010310717.1A CN111459838B (zh) 2020-04-20 2020-04-20 一种基于流形对齐的软件缺陷预测方法及系统

Publications (2)

Publication Number Publication Date
CN111459838A CN111459838A (zh) 2020-07-28
CN111459838B true CN111459838B (zh) 2021-09-03

Family

ID=71681310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010310717.1A Active CN111459838B (zh) 2020-04-20 2020-04-20 一种基于流形对齐的软件缺陷预测方法及系统

Country Status (1)

Country Link
CN (1) CN111459838B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881048B (zh) * 2020-07-31 2022-06-03 武汉理工大学 一种跨项目软件老化缺陷预测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991047A (zh) * 2017-03-27 2017-07-28 中国电力科学研究院 一种用于对面向对象软件缺陷进行预测的方法及系统
CN109710512A (zh) * 2018-12-06 2019-05-03 南京邮电大学 基于测地线流核的神经网络软件缺陷预测方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021441B2 (en) * 2009-03-30 2015-04-28 Verizon Patent And Licensing Inc. Methods and systems of determining a quality level of a software instance
CN106599450B (zh) * 2016-12-12 2020-04-07 东北大学 基于先验知识的核灵活流形嵌入电熔镁炉故障监测方法
CN107957946B (zh) * 2017-12-01 2020-10-20 北京理工大学 基于邻域嵌入保护算法支持向量机的软件缺陷预测方法
CN110657985B (zh) * 2019-10-11 2021-07-06 重庆邮电大学 基于奇异值谱流形分析的齿轮箱故障诊断方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991047A (zh) * 2017-03-27 2017-07-28 中国电力科学研究院 一种用于对面向对象软件缺陷进行预测的方法及系统
CN109710512A (zh) * 2018-12-06 2019-05-03 南京邮电大学 基于测地线流核的神经网络软件缺陷预测方法

Also Published As

Publication number Publication date
CN111459838A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN110119753B (zh) 一种重构纹理识别岩性的方法
US9053393B2 (en) Learning method and apparatus for pattern recognition
CN112381098A (zh) 基于目标分割领域自学习的半监督学习方法和系统
CN111914728B (zh) 高光谱遥感影像半监督分类方法、装置及存储介质
CN110930198A (zh) 基于随机森林的电能替代潜力预测方法、系统、存储介质及计算机设备
CN107908807B (zh) 一种基于贝叶斯理论的小子样可靠性评定方法
CN114048468A (zh) 入侵检测的方法、入侵检测模型训练的方法、装置及介质
CN115294563A (zh) 一种基于Transformer的增强了局部语义学习能力的3D点云分析方法及装置
CN113095158A (zh) 一种基于对抗生成网络的笔迹生成方法及装置
CN111459838B (zh) 一种基于流形对齐的软件缺陷预测方法及系统
CN117197591B (zh) 一种基于机器学习的数据分类方法
CN116704208B (zh) 基于特征关系的局部可解释方法
CN110377525B (zh) 一种基于运行时特征和机器学习的并行程序性能预测系统
CN116719714A (zh) 一种测试用例的筛选模型的训练方法及相应的装置
CN114387524B (zh) 基于多层级二阶表征的小样本学习的图像识别方法和系统
CN113255810B (zh) 基于关键决策逻辑设计测试覆盖率的网络模型测试方法
CN114706780A (zh) 一种基于Stacking集成学习的软件缺陷预测方法
KR20210158740A (ko) 기계학습 성능 기반 클러스터링 평가 장치 및 그 방법
CN113723835B (zh) 火电厂用水评估方法和终端设备
CN117523205B (zh) 少样本ki67多类别细胞核的分割识别方法
CN113689067B (zh) 一种图像保障信息评估系统
Irokosu Performance Comparison of CNN-based Semantic Segmentation on Indoor and Outdoor Scenes
Yin et al. Software Fault Prediction Framework Based on aiNet Algorithm
CN112989606A (zh) 数据算法模型检验方法、系统及计算机存储介质
Mesquita et al. Artificial neural networks applied to time series for flood prediction

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant