CN107346286B - 一种基于核主成分分析和极限学习机的软件缺陷预测方法 - Google Patents

一种基于核主成分分析和极限学习机的软件缺陷预测方法 Download PDF

Info

Publication number
CN107346286B
CN107346286B CN201710533417.8A CN201710533417A CN107346286B CN 107346286 B CN107346286 B CN 107346286B CN 201710533417 A CN201710533417 A CN 201710533417A CN 107346286 B CN107346286 B CN 107346286B
Authority
CN
China
Prior art keywords
output
kernel
matrix
principal component
component analysis
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.)
Expired - Fee Related
Application number
CN201710533417.8A
Other languages
English (en)
Other versions
CN107346286A (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 CN201710533417.8A priority Critical patent/CN107346286B/zh
Publication of CN107346286A publication Critical patent/CN107346286A/zh
Application granted granted Critical
Publication of CN107346286B publication Critical patent/CN107346286B/zh
Expired - Fee Related 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/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

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)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于核主成分分析和极限学习机的软件缺陷预测方法,针对软件缺陷个数的预测中不相关的模块特征损害了缺陷预测模型性能,原始特征可能无法正确表示原始缺陷数据的问题,首先采用核主成分分析,通过非线性映射将原始数据投影到潜在特征空间中,使得映射的特征可以正确表征复杂数据结构、增加空间内数据的线性可分离性的概率,然后提取数据的代表性特征,最后根据特征提取后的数据,采用极限学习机构建缺陷预测模型。

Description

一种基于核主成分分析和极限学习机的软件缺陷预测方法
技术领域
本发明属于软件缺陷预测技术领域,涉及一种基于特征选择和集成学习的软件缺陷预测方法,特别是涉及一种基于核主成分分析和极限学习机的软件缺陷预测方法。
背景技术
(1)软件缺陷预测技术
软件已经成为影响国民经济、军事、政治乃至社会生活的重要因素。高可靠和复杂的软件系统依赖于其采用的软件的可靠性。软件的缺陷是导致相关系统出错、失效、崩溃甚至机毁人亡的潜在根源。所谓缺陷,到目前为止,学术界,产业界有很多相关的术语和定义,比如故障、缺陷、bug、错误、失误、失效、失败等。根据ISO 9000对缺陷的定义为:满足与预期或者规定用途有关的要求,缺陷是软件中已经存在的一个部分,可以通过修改软件而消除。然而软件技术发展至今,任何检验、验证手段都不可能发现并排除所有的缺陷,软件作为一种无形的产物,虽然不会磨损用坏,却随时可能因为我们不易查知的原因出现故障甚至失效。事实上,从第一个软件诞生,就伴随出现软件缺陷的检测和预测技术。检测技术在于发现缺陷,而预测技术则在于预测还未发现的缺陷。
20世纪70年代,出现了利用统计学习技术,根据历史数据以及已经发现的缺陷等软件度量数据预测软件系统的缺陷数目及类型。缺陷预测技术的目的在于统计计算机软件系统的缺陷数,以决定系统是否可以交付使用。缺陷预测技术为软件质量的提高和保证起着非常重要的作用,同时也促进了软件工程技术向前大大的发展了一步。
软件缺陷预测过程的第一步是收集和标注软件实例。一个软件实例能够被标记为有缺陷和无缺陷。第二步,抽取软件实例的度量属性。到目前为止,研究人员从不同的角度提出了许多软件度量属性,而与软件缺陷预测密切相关的度量属性主要有代码度量、McCabe度量和Halstead度量三种。代码度量是最直接、应用最普遍的度量属性。通过对程序进行简单的计数,我们可以得到相关代码的度量值。它包含总行数(LOC)、空白行数目(LOCb)、注释行数目(LOCc)、代码行数目(LOCe)和代码和注释总数目(LOCec)(文献1)。软件复杂性通过程序结构的复杂性表现出来,而程序结构的复杂性主要值的是实例内部程序的复杂性。MaCabe度量的正是实例内部程序的复杂性。它由三种度量组成,分别为环形复杂度(Cyclomatic Complexity)、基本复杂度(Essential Complexity)和设计复杂度(DessignComplexity)。Halstead度量不仅度量了程序长度,还描述了程序的最小实现和实际实现之间的关系,并据此阐述程序语言的等级高低。Halstead度量方法充分考虑了程序中出现的算子和操作数,它包括软件长度(N)、容量(V)、级别(L)、难度(D)、工作量(E)、时间(T)、误差估计(B)、程序消息(I)等度量。第三步,建立缺陷预测模型,缺陷预测模型本质上属于模式识别的范畴。而缺陷预测模型的建立过程就是通过一定的机器学习算法来搭建模型结构并确定度量属性之间依赖强度的过程,即为模型的结构学习和参数学习过程。第四步,通过模型预测结果,由于建立好的缺陷预测模型可以通过自身模型结构和模型参数来量化描述度量属性与预测结果之间的因果关系,这样给定一个软件实例的度量属性数据集,使用训练好的预测模型就可以得到该实例是否存在缺陷,即完成软件缺陷预测的过程。
(2)核主成分分析技术(KPCA)
主成分分析(PCA)是一种降维的数据分析技术。核主成分分析(KPCA)认为原有数据具有更高的维数,首先通过非线性映射函数将原始数据映射到高维特征空间中,在特征空间中数据大致遵循高斯分布,然后对特征空间中映射的数据执行线性主成分分析。核主成分分析在数据点使用“核技巧”,简化计算过程。与主成分分析相比,如果原始数据具有复杂的非线性关系,则核主成分分析更适合于特征提取,最大程度上反应原始数据结构。
(3)极限学习机技术(ELM)
极限学习机(Extreme Learning Machine),是由黄广斌提出来的求解单隐层神经网络的算法。极限学习机最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网络(SLFNs),在保证学习精度的前提下比传统的学习算法速度更快。
(4)技术问题
缺陷预测的核心挑战是找到可揭示缺陷数据内在结构的代表性特征,现有的基于过滤器和基于包裹式的特征选择方法仅选择原始特征的子集,不进行任何转换,原始特征可能无法正确表示原始缺陷数据。主成分分析方法能将原始特征映射到低维空间,在这个空间中,特征是原始特征的线性组合,然而仅当数据线性可分并遵循高斯分布时,主成分分析效果良好。现实中的数据具有一些复杂的结构[2],主成分分析的非线性扩展形式—核主成分分析可以将原始数据投影到具有内核功能的潜在高维特征空间中,映射的特征可以适当地表征复杂数据结构,并增加了空间内的数据的线性可分离性的概率[3][4]。图2显示了特征映射的优点,数据在低维空间线性不可分离,但在高维空间变得易于分离。
目前许多分类器被运用于软件缺陷预测,如朴素贝叶斯、随机森林等,然而Lessmann等人[5]建议选择分类器时,更多地考虑一些额外的标准,例如计算效率,简单性和可理解性。现有研究表明,极限学习机具有更快的学习速度,更好的泛化能力,可以避免局部最优化[6]。虽然极限学习机已经受到计算机视觉和模式识别的高度重视,然而没有研究调查了极限学习机对缺陷预测的潜力。
[文献1]:包晓露,王小娟,贾有良、申来安。软件测试基础:方法与度量[M].北京:人民邮电出版社,2007:74-76.
[文献2]:T.Wang,Z.Zhang,X.Jing,and L.Zhang.Multiple kernel ensemblelearning for software defect prediction.Automated Software Engineering,1-22,2015.
[文献3]:B.SchCilkopf and A.Smola.Nonlinear component analysis as akernel eigenvalue problem.Neural Computation,10(5):1299-1319,1998.
[文献4]:K.I.Kim,M.O.Franz,and B.Scholkopf.Iterative kernel principalcomponent analysis for image modeling.IEEE Transactions on Pattern Analysisand Machine Intelligence,27(9):1351-1366,2005.
[文献5]:S Lessmann,B.Baesens,C.Mues,and S.Pietsch.Benchmarkingclassification models for software defect prediction:A proposed framework andnovel findings.IEEE Transactions on Software Engineering,34(4):485-496,2008.
[文献6]:G.Huang,G.B.Huang,S.Song,and K.You.Trends in extreme learningmachines:a review.Neural Networks,61:32-48,2015.
发明内容
为了解决上述技术问题,本发明提供了一种基于核主成分分析和极限学习机的软件缺陷预测方法。
本发明所采用的技术方案是:一种基于核主成分分析和极限学习机的软件缺陷预测方法,其特征在于,包括以下步骤:
步骤1:挖掘软件历史仓库,从中抽取出程序模块;然后标记程序模块的类标号;
步骤2:提取出与软件缺陷有关的特征,并构建出软件缺陷训练集;
步骤3:使用核主成分分析方法进行特征提取;
步骤4:利用提取后的特征,采用极限学习机构建缺陷预测模型;
步骤5:用训练得到的预测模型预测待测程序模块。
相对于国内外已有的跨项目软件缺陷预测方法,本发明针对软件缺陷预测中真实的缺陷数据具有潜在的复杂结构的问题,提出了一种基于核主成分分析和极限学习机的软件缺陷预测方法。相比于传统的基于过滤器,基于包裹式的特征选择方法,核主成分分析更能正确的表征复杂数据结构,提取出最具代表性的特征。极限学习机是一种普遍的机器学习算法,它具有更快的学习速度,更好的泛化能力,可以避免局部最优化。方法包括两个主要阶段;在第一阶段,应用核主成分分析,通过非线性映射将原始数据映射到潜在特征空间中,并提取数据的代表性特征;第二阶段,依据特征提取后的数据,采用最先进的学习算法极限学习机构建缺陷预测模型。
为了验证本方法的优越性,我们使用两类公开的数据集:MORPH数据集和NASA数据集进行实验,三种性能度量方法:F-measure、G-measure和MCC,将本方法与一些流行分类器进行比较:通过将其他分类器与核主成分分析相结合的方式,检查极限学习机对本方法的有效性;通过与不进行核主成分分析,仅使用其他分类器的方式,检查本方法的整体有效性。我们选择了五种代表性分类器:最近邻、随机森林、集成学习、神经网络和支持向量机,并且在实验中执行非参数检验Mann-Whitney U检验和Delta方法来量化本方法与另一种方法之间的差异。
在MORPH数据集中的15个项目中,本方法的平均F-measure、G-measure和MCC值均高于其他所有方法。其中,平均F-measure提高了3.6%至17.8%,平均G-measure值(0.59)提高了2.8%至44.6%,平均MCC值(0.336)改善了4.3%至23.5%。在NASA数据集上,三个指标的平均值方面表现同样优于所有其他方法,并在大多数情况下,本方法获得更好的度量值。通过非参数检验结果可知,本方法与其他方法的差异具有统计学意义。通过上述实验提供的证据,我们得出结论,基于核主成分分析和极限学习机的方法对缺陷预测具有更佳的性能。
附图说明
图1本发明实施例的流程图。
图2本发明实施例的特征映射图。
图3本发明实施例的核主成分分析流程图。
图4本发明实施例的极限学习机架构图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
请见图1,本发明提供的一种基于核主成分分析和极限学习机的软件缺陷预测方法,包括以下步骤:
步骤1:挖掘软件历史仓库,从中抽取出程序模块;程序模块粒度可根据实际应用场景,可设置为文件、包、类或函数等,然后人工标记程序模块的类标号,有缺陷为Y,无缺陷为N。
步骤2:提取出与软件缺陷有关的特征,并构建出软件缺陷训练集。假设数据实例共有20个度量属性:加权方法数(wmc),继承树深度(dit),孩子数(noc),对象类之间的耦合度(cbo),类的响应(rfc),内聚缺乏度(lcom),传入耦合(ca),传出耦合(ce),公开方法数(npm),代码行数(loc),数据访问度量(dam),聚合度量(moa),功能抽象度量(mfa),方法间的内聚度(cam),继承耦合(ic),方法间耦合(cbm),平均方法复杂度(amc),最大McCabe环形复杂度(max_cc),平均McCabe环形复杂度(avg_cc)。
本实施过程假设在提取度量属性后形成了14个跨项目实例:
x1={3.0,1.0,0.0,8.0,14.0,3.0,3.0,5.0,3.0,2.0,85.0,0.0,0.0,0.0,0.5,0.0,0.0,27.33333333,9.0,3.3333,Y},
x2={13.0,1.0,0.0,1.0,17.0,64.0,0.0,1.0,12.0,0.917,117.0,1.0,0.0,0.0,0.462,0.0,0.0,7.462,3.0,1.385,N},
x3={4.0,1.0,0.0,4.0,4.0,6.0,2.0,2.0,4.0,2.0,4.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,N},
x4={10.0,1.0,0.0,6.0,31.0,1.0,0.0,6.0,9.0,0.5,156.0,1.0,1.0,0.0,0.355555556,0.0,0.0,14.4,1.0,0.8,Y},
x5={7.0,1.0,0.0,6.0,19.0,7.0,0.0,6.0,6.0,0.75,117.0,1.0,2.0,0.0,0.367,0.0,0.0,15.143,3.0,1.1429,N},
x6={38.0,1.0,0.0,30.0,155.0,485.0,0.0,30.0,34.0,0.9,1564.0,1.0,7.0,0.0,0.14,0.0,0.0,39.6,7.0,1.5,Y},
x7={25.0,1.0,0.0,13.0,74.0,0.0,0.0,13.0,23.0,0.444,901.0,1.0,2.0,0.0,0.2,0.0,0.0,34.92,1.0,0.92,Y},
x8={13.0,1.0,0.0,19.0,56.0,54.0,0.0,19.0,11.0,0.9,224.0,1.0,4.0,0.0,0.17,0.0,0.0,15.54,4.0,1.1538,Y},
x9={7.0,4.0,4.0,48.0,12.0,19.0,47.0,1.0,6.0,0.94,44.0,0.33,0.0,0.867,0.458,0.0,0.0,4.86,1.0,0.29,N},
x10={7.0,1.0,0.0,4.0,7.0,21.0,2.0,2.0,7.0,2.0,7.0,0.0,0.0,0.0,0.357142857,0.0,0.0,0.0,1.0,1.0,Y},
x11={4.0,1.0,0.0,2.0,4.0,6.0,2.0,0.0,4.0,2.0,4.0,0.0,0.0,0.0,0.875,0.0,0.0,0.0,1.0,1.0,N},x12={35.0,1.0,0.0,29.0,121.0,373.0,0.0,29.0,31.0,0.9,1250.0,1.0,5.0,0.0,0.17,0.0,0.0,34.1,5.0,1.2,Y},
x13={8.0,1.0,0.0,16.0,21.0,14.0,13.0,3.0,8.0,0.81,111.0,1.0,0.0,0.0,0.35,1.0,1.0,12.5,7.0,1.875,Y},
x14={11.0,1.0,0.0,8.0,18.0,13.0,7.0,1.0,11.0,0.775,130.0,1.0,1.0,0.0,0.29,1.0,1.0,10.45,7.0,1.36,N}。
步骤3:使用核主成分分析方法进行特征提取。
请见图3,本发明采用核主成分分析提取代表性特征,揭示原始数据潜在的复杂结构。核主成分分析使用非线性映射函数
Figure BDA0001339950540000061
将低维空间内的每个原始数据点映射为高维特征空间F内的新点。给定数据集{xi,yi},i=1,2,...,n,其中xi=[xi1,xi2,...,xim]T∈Rm表示特征集,yi=[yi1,yi2,...,yic]T∈Rc表类标号集。此时数据集可表示为{(x1,y1),(x2,y2),...,(x14,y14)}。
步骤3.1,映射特征向量,并且对角化及归一化。
假设每个数据点xi被映射到新的点
Figure BDA0001339950540000071
并且映射的数据点集中:
Figure BDA0001339950540000072
映射特征的协方差矩阵C的计算公式如下:
Figure BDA0001339950540000073
为在高维空间F执行线性主成分分析,将协方差矩阵C对角化,可被视为以下特征值问题的解:
CV=λV(3)
其中λ和V表示协方差矩阵C的特征值和特征向量,由于所有的解V都位于
Figure BDA0001339950540000074
的跨度中,本实施例将(3)式的两边同时乘以
Figure BDA0001339950540000075
得到:
Figure BDA0001339950540000076
同时,存在系数α1,α2,...,αm,使得
Figure BDA0001339950540000077
可线性表示协方差矩阵C的特征向量:
Figure BDA0001339950540000078
将式(2)和式(5)带入式(4):
Figure BDA0001339950540000079
步骤3.2,定义核函数以及核矩阵。
定义核函数κ(xi,xj)为:
Figure BDA00013399505400000710
则式(6)可被写为:
Figure BDA00013399505400000711
定义大小为n×n的核矩阵Ki,j
Figure BDA00013399505400000712
式(9)可以被写为:
K2α=nλKα(10)
其中α=[α1,α2,...,αn]T
式(10)的解相当于求解非零特征值λ和其对应的特征向量α:
Kα=nλα(11)
步骤3.1是假设映射的数据点集中;若不集中,则使用Gram矩阵
Figure BDA0001339950540000087
来代替内核矩阵K:
Figure BDA0001339950540000081
其中1n表示所有值等于1/n的n×n矩阵
同理只需解决下列公式的特征向量:
Figure BDA0001339950540000082
步骤3.3,计算特征向量的映射,提取特征值。
为了提取新的测试数据点
Figure BDA0001339950540000083
的非线性主成分,计算第k个核分量的映射:
Figure BDA0001339950540000084
核主成分分析采用内核技巧,通过计算两个数据点的内积来简化特征映射,而不是明确地计算出
Figure BDA0001339950540000085
内核函数被定义为:
Figure BDA0001339950540000086
其中||·||表示l2范数,2σ2=ω表示高斯函数的宽度。
为消除数据中的潜在噪声,在潜在特征空间中执行主成分分析时,我们保持最重要的主要组成部,提取累积贡献率达到95%的特征值。
经过计算,17个属性:加权方法数(wmc),继承树深度(dit),孩子数(noc),对象类之间的耦合度(cbo),类的响应(rfc),内聚缺乏度(lcom),传入耦合(ca),传出耦合(ce),公开方法数(npm),代码行数(loc),数据访问度量(dam),聚合度量(moa),功能抽象度量(mfa),方法间的内聚度(cam),继承耦合(ic),方法间耦合(cbm)的累计贡献率达到96.43%>95%,因此选择上述17个属性进行下一步的建模。因此原始训练数据被转换为具有17维度的新集合{xi′,yi}∈R17×Rc(i=1,2,...,14)。
步骤4,利用提取后的特征,采用极限学习机构建缺陷预测模型。
请见图4,步骤4的具体实现包括以下子步骤:
步骤4.1,随机分配隐藏层的的输入权重向量wi和偏差bi(i=1,2,...,q)。
给定具有n个任意不同样本的数据集{xi′,yi}∈Rm1×Rc,i=1,2,...,n,隐藏节点个数q和激活函数h(x′)。广义单隐层前馈网络(SLFN)的输出可表示为:
Figure BDA0001339950540000091
其中j=1,2,...,n,wi=[wi1,wi2,...,wim1]T表示连接输入节点和第i个隐藏节点的输入权重向量,bi表示第i个隐藏节点的偏差,βi=[βi1,βi2,...,βic]T表示连接输出节点和第i个隐藏节点的输出权重向量,oj表示第j个样本的预期输出。
经过特征提取后的实例样本为:
x1={3.0,1.0,0.0,8.0,14.0,3.0,3.0,5.0,3.0,2.0,85.0,0.0,0.0,0.0,0.5,0.0,0.0,Y},
x2={13.0,1.0,0.0,1.0,17.0,64.0,0.0,1.0,12.0,0.917,117.0,1.0,0.0,0.0,0.462,0.0,0.0,N},
x3={4.0,1.0,0.0,4.0,4.0,6.0,2.0,2.0,4.0,2.0,4.0,0.0,0.0,0.0,1.0,0.0,0.0,N},
x4={10.0,1.0,0.0,6.0,31.0,1.0,0.0,6.0,9.0,0.5,156.0,1.0,1.0,0.0,0.355555556,0.0,0.0,Y},
x5={7.0,1.0,0.0,6.0,19.0,7.0,0.0,6.0,6.0,0.75,117.0,1.0,2.0,0.0,0.367,0.0,0.0,N},
x6={38.0,1.0,0.0,30.0,155.0,485.0,0.0,30.0,34.0,0.9,1564.0,1.0,7.0,0.0,0.14,0.0,0.0,Y},
x7={25.0,1.0,0.0,13.0,74.0,0.0,0.0,13.0,23.0,0.444,901.0,1.0,2.0,0.0,0.2,0.0,0.0,Y},
x8={13.0,1.0,0.0,19.0,56.0,54.0,0.0,19.0,11.0,0.9,224.0,1.0,4.0,0.0,0.17,0.0,0.0,Y},
x9={7.0,4.0,4.0,48.0,12.0,19.0,47.0,1.0,6.0,0.94,44.0,0.33,0.0,0.867,0.458,0.0,0.0,N},
x10={7.0,1.0,0.0,4.0,7.0,21.0,2.0,2.0,7.0,2.0,7.0,0.0,0.0,0.0,0.357142857,0.0,0.0,Y},
x11={4.0,1.0,0.0,2.0,4.0,6.0,2.0,0.0,4.0,2.0,4.0,0.0,0.0,0.0,0.875,0.0,0.0,N},
x12={35.0,1.0,0.0,29.0,121.0,373.0,0.0,29.0,31.0,0.9,1250.0,1.0,5.0,0.0,0.17,0.0,0.0,Y},
x13={8.0,1.0,0.0,16.0,21.0,14.0,13.0,3.0,8.0,0.81,111.0,1.0,0.0,0.0,0.35,1.0,1.0,Y},
x14={11.0,1.0,0.0,8.0,18.0,13.0,7.0,1.0,11.0,0.775,130.0,1.0,1.0,0.0,0.29,1.0,1.0,N}。
为测试的准确度,随机生成100组权重w和偏差b,得到大小为17*100的权重矩阵W,14*100的偏差矩阵B。
步骤4.2,依据权重向量wi和偏差bi,构建隐层输出矩阵H。一旦输入权重向量wi和隐层节点的偏置bi的值被随机分配,H的解被唯一确定。SLFN的隐层输出矩阵H被定义为:
Figure BDA0001339950540000101
其中H的第i列表示相对于输入样本的第i个隐藏节点的输出向量x1′,x2′,...,xn′,第H行表示输出向量隐藏层相对于输入样本xj′。
上述实例通过计算得到大小为14*100的隐层输出矩阵H。
步骤4.3,计算输出权重矩阵β。
β表示连接隐层和输出层的权重矩阵:
Figure BDA0001339950540000102
步骤4.4,求得极限学习机的输出权重,获得预测函数。
广义单隐层前馈网络(SLFN)的输出式(16)可写为
Hβ=O(19)
O表示期望的标签矩阵,每行代表一个样本的输出向量。
Figure BDA0001339950540000103
由于训练SLFN的目的是使输出误差最小化,即以零误差逼近输入样本:
Figure BDA0001339950540000104
其中
Figure BDA0001339950540000105
表示目标输出矩阵。
重点是计算下面的公式:
Hβ=Y(22)
对于极限学习机,可以独立地随机指定输入连接的权重wi和隐层节点的偏置bi。一旦这些参数被随机分配,H的解被唯一地确定。因此,(22)式被转换为线性模式,并且通过找到线性模式的最小二乘解可以分析地确定输出权重矩阵β,即:
minβ||Hβ-Y||(23)
其中||·||表示Frobenius规范。(23)式的最优解为:
Figure BDA0001339950540000111
其中
Figure BDA0001339950540000112
表示隐层输出矩阵的Moore-Penrose广义逆。获得的
Figure BDA0001339950540000113
可以确保最小的训练误差,获得最优的泛化能力,并避免
Figure BDA0001339950540000114
唯一而陷入局部最优。极限学习机的分类函数如下所示:
Figure BDA0001339950540000115
上述实例经计算可得目标输出矩阵T,以及隐层输出矩阵的Moore-Penrose广义逆
Figure BDA0001339950540000116
从而得到极限学习机的预测函数f(x)。
步骤5:用训练得到的预测模型预测待测程序模块。如待测程序模块:x={2.0,1.0,0.0,2.0,4.0,4.0,2.0,3.0,4.0,7.6,2.3,9.5,2.0,4.0,0.0,0.0,0.0,0.875,0.0,0.0}.
步骤5.1,待测程序模块的特征筛选。提取出待测程序模块相应特征:加权方法数(wmc),继承树深度(dit),孩子数(noc),对象类之间的耦合度(cbo),类的响应(rfc),内聚缺乏度(lcom),传入耦合(ca),传出耦合(ce),公开方法数(npm),代码行数(loc),数据访问度量(dam),聚合度量(moa),功能抽象度量(mfa),方法间的内聚度(cam),继承耦合(ic),方法间耦合(cbm),生成新数据实例x={2.0,1.0,0.0,2.0,4.0,4.0,2.0,3.0,4.0,7.6,2.3,9.5,2.0,4.0,0.0,0.0,0.0}。
步骤5.2,判定目标的类标号。将新的数据实例带入到步骤5中训练的极限学习机预测模型中,预测待测程序模块有无缺陷,经计算得到f(x)=0,因此实例x无缺陷。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

Claims (4)

1.一种基于核主成分分析和极限学习机的软件缺陷预测方法,其特征在于,包括以下步骤:
步骤1:挖掘软件历史仓库,从中抽取出程序模块;然后标记程序模块的类标号;
步骤2:提取出与软件缺陷有关的特征,并构建出软件缺陷训练集;
步骤3:使用核主成分分析方法进行特征提取;
其中,对于给定数据集{xi,yi},i=1,2,...,n,其中xi=[xi1,xi2,...,xim]T∈Rm表示特征集,yi=[yi1,yi2,...,yic]T∈Rc表类标号集;
步骤3的具体实现包括以下子步骤:
步骤3.1:映射特征向量,并且对角化及归一化;
假设每个数据点xi被映射到新的点
Figure FDA0002385267980000011
并且映射的数据点集中,即:
Figure FDA0002385267980000012
映射特征的协方差矩阵C的计算公式如下:
Figure FDA0002385267980000013
将协方差矩阵C对角化:
CV=λV(3);
其中λ和V表示协方差矩阵C的特征值和特征向量,将(3)式的两边同时乘以
Figure FDA0002385267980000014
得到:
Figure FDA0002385267980000015
存在系数α1,α2,...,αm,使得
Figure FDA0002385267980000016
可线性表示协方差矩阵C的特征向量:
Figure FDA0002385267980000017
将式(2)和式(5)带入式(4):
Figure FDA0002385267980000018
步骤3.2:定义核函数以及核矩阵;
定义核函数κ(xi,xj)为:
Figure FDA0002385267980000019
则式(6)被写为:
Figure FDA0002385267980000021
定义大小为n×n的核矩阵Ki,j
Figure FDA0002385267980000022
则式(9)为:
K2α=nλKα(10)
其中α=[α1,α2,...,αn]T
式(10)的解相当于求解非零特征值λ和其对应的特征向量α:
Kα=nλα(11)
步骤3.1是假设映射的数据点集中;若不集中,则使用Gram矩阵
Figure FDA0002385267980000029
来代替内核矩阵K:
Figure FDA0002385267980000023
其中1n表示所有值等于1/n的n×n矩阵;
同理,只需解决下列公式的特征向量:
Figure FDA0002385267980000024
步骤3.3:计算特征向量的映射,提取特征值;
为了提取新的测试数据点
Figure FDA0002385267980000025
的非线性主成分,计算第k个核分量的映射:
Figure FDA0002385267980000026
核主成分分析采用内核技巧,通过计算两个数据点的内积来简化特征映射,而不是明确地计算出
Figure FDA0002385267980000027
内核函数被定义为:
Figure FDA0002385267980000028
其中||·||表示l2范数,2σ2=ω表示高斯函数的宽度;
为消除数据中的潜在噪声,在潜在特征空间中执行主成分分析时,提取累积贡献率达到95%的特征值,因此原始训练数据被转换为具有m1维度的新集合{xi′,yi}∈Rm1×Rc(i=1,2,...,n);
步骤4:利用提取后的特征,采用极限学习机构建缺陷预测模型;
步骤5:用训练得到的预测模型预测待测程序模块。
2.根据权利要求1所述的基于核主成分分析和极限学习机的软件缺陷预测方法,其特征在于:步骤1中所述程序模块,其粒度根据实际应用场景,设置为文件、包、类或函数。
3.根据权利要求1所述的基于核主成分分析和极限学习机的软件缺陷预测方法,其特征在于,步骤4的具体实现包括以下子步骤:
步骤4.1:随机分配隐藏层的输入权重向量wi和偏差bi,i=1,2,...,q;
给定具有n个任意不同样本的数据集{xi′,yi}∈Rm1×Rc,i=1,2,...,n;隐藏节点个数q和激活函数h(x′);广义单隐层前馈网络SLFN的输出表示为:
Figure FDA0002385267980000031
其中j=1,2,...,n,wi=[wi1,wi2,...,wim1]T表示连接输入节点和第i个隐藏节点的输入权重向量,bi表示第i个隐藏节点的偏差,βi=[βi1,βi2,...,βic]T表示连接输出节点和第i个隐藏节点的输出权重向量,oj表示第j个样本的预期输出;
步骤4.2:依据权重向量wi和偏差bi,构建隐层输出矩阵H;
一旦输入权重向量wi和隐层节点的偏置bi的值被随机分配,H的解被唯一确定;SLFN的隐层输出矩阵H被定义为:
Figure FDA0002385267980000032
其中H的第i列表示相对于输入样本的第i个隐藏节点的输出向量x1′,x2′,...,xn′,第H行表示输出向量隐藏层相对于输入样本xj′;
步骤4.3:计算输出连接隐层和输出层的权重矩阵β;
Figure FDA0002385267980000033
步骤4.4;求得极限学习机的输出权重,获得预测函数;
广义单隐层前馈网络SLFN的输出式(16)转换为:
Hβ=O(19)
Figure FDA0002385267980000041
O表示期望的标签矩阵,每行代表一个样本的输出向量;
由于训练SLFN的目的是使输出误差最小化,即以零误差逼近输入样本:
Figure FDA0002385267980000042
其中
Figure FDA0002385267980000043
表示目标输出矩阵;
计算下面的公式:
Hβ=Y(22)
对于极限学习机,能独立地随机指定输入连接的权重wi和隐层节点的偏置bi;一旦这些参数被随机分配,H的解被唯一地确定;因此,(22)式被转换为线性模式,并且通过找到线性模式的最小二乘解可以分析地确定输出权重矩阵β,即:
minβ||Hβ-Y||(23)
其中||·||表示Frobenius规范;
(23)式的最优解为:
Figure FDA0002385267980000044
其中
Figure FDA0002385267980000045
表示隐层输出矩阵的Moore-Penrose广义逆;获得的
Figure FDA0002385267980000046
能确保最小的训练误差,获得最优的泛化能力,并避免
Figure FDA0002385267980000047
唯一而陷入局部最优;
极限学习机的分类函数如下所示:
Figure FDA0002385267980000048
4.根据权利要求1-3任意一项所述的基于核主成分分析和极限学习机的软件缺陷预测方法,其特征在于,步骤5的具体实现包括以下子步骤:
步骤5.1:待测程序模块的特征筛选;
提取出待测程序模块相应特征,生成新数据集;
步骤5.2:判定目标的类标号;
将新的数据集带入到步骤5中训练的极限学习机预测模型中,预测待测程序模块有无缺陷。
CN201710533417.8A 2017-07-03 2017-07-03 一种基于核主成分分析和极限学习机的软件缺陷预测方法 Expired - Fee Related CN107346286B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710533417.8A CN107346286B (zh) 2017-07-03 2017-07-03 一种基于核主成分分析和极限学习机的软件缺陷预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710533417.8A CN107346286B (zh) 2017-07-03 2017-07-03 一种基于核主成分分析和极限学习机的软件缺陷预测方法

Publications (2)

Publication Number Publication Date
CN107346286A CN107346286A (zh) 2017-11-14
CN107346286B true CN107346286B (zh) 2020-05-12

Family

ID=60257544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710533417.8A Expired - Fee Related CN107346286B (zh) 2017-07-03 2017-07-03 一种基于核主成分分析和极限学习机的软件缺陷预测方法

Country Status (1)

Country Link
CN (1) CN107346286B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391365B (zh) * 2017-07-06 2020-10-13 武汉大学 一种面向软件缺陷预测的混合特征选择方法
CN107943704A (zh) * 2017-12-04 2018-04-20 扬州大学 一种基于深度森林网络的软件缺陷预测方法
CN110196803B (zh) * 2018-02-27 2024-04-16 北京京东尚科信息技术有限公司 一种软件缺陷培训方法和系统
CN108596391A (zh) * 2018-04-26 2018-09-28 南京英诺森软件科技有限公司 一种发电企业设备库存备品数量的预测评估方法
CN109885503A (zh) * 2019-03-12 2019-06-14 深圳微品致远信息科技有限公司 一种基于机器学习的智能分析软件缺陷的方法、系统及存储介质
CN109933539A (zh) * 2019-04-15 2019-06-25 燕山大学 一种基于主成分分析和组合采样的软件缺陷预测方法
CN111290967A (zh) * 2020-03-10 2020-06-16 武汉联影医疗科技有限公司 一种软件缺陷预测方法、装置、设备及存储介质
CN112100750B (zh) * 2020-05-28 2022-09-20 西北工业大学 热-应力耦合作用下涡轮盘结构的降维可靠性分析方法
CN111782548B (zh) * 2020-07-28 2022-04-05 南京航空航天大学 一种软件缺陷预测数据处理方法、装置及存储介质
CN112395203B (zh) * 2020-11-30 2024-06-14 京东科技控股股份有限公司 程序测试方法、装置及存储介质
CN113850018B (zh) * 2021-09-15 2022-10-04 大连海事大学 一种基于机器学习的气动执行机构运行状态预测方法
CN116776736B (zh) * 2023-06-29 2024-01-12 中国人民解放军国防科技大学 一种基于特征提取和随机噪声注入的二极管结构预测方法
CN117095790A (zh) * 2023-08-08 2023-11-21 广州视景医疗软件有限公司 一种弱视训练效果预测模型的构建方法、系统和预测装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI370370B (en) * 2007-12-31 2012-08-11 Ind Tech Res Inst Virtual metrology system and method applied on chemical vapor deposition process
CN103106331A (zh) * 2012-12-17 2013-05-15 清华大学 基于降维和增量式极限学习机的光刻线宽智能预测方法
CN103593670A (zh) * 2013-10-14 2014-02-19 浙江工业大学 一种基于在线序列极限学习机的铜板带表面缺陷检测方法
CN105608004A (zh) * 2015-12-17 2016-05-25 云南大学 一种基于cs-ann的软件缺陷预测方法
CN106201897A (zh) * 2016-07-26 2016-12-07 南京航空航天大学 基于主成分分布函数的软件缺陷预测不平衡数据处理方法
CN107133176A (zh) * 2017-05-09 2017-09-05 武汉大学 一种基于半监督聚类数据筛选的跨项目缺陷预测方法
CN107239798A (zh) * 2017-05-24 2017-10-10 武汉大学 一种面向软件缺陷个数预测的特征选择方法
CN107247666A (zh) * 2017-05-24 2017-10-13 武汉大学 一种基于特征选择和集成学习的软件缺陷个数预测方法
CN107391370A (zh) * 2017-07-13 2017-11-24 武汉大学 一种基于数据过采样和集成学习的软件缺陷数目预测方法
CN107391365A (zh) * 2017-07-06 2017-11-24 武汉大学 一种面向软件缺陷预测的混合特征选择方法
CN107391369A (zh) * 2017-07-13 2017-11-24 武汉大学 一种基于数据筛选和数据过采样的跨项目缺陷预测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160086087A1 (en) * 2014-09-19 2016-03-24 King Fahd University Of Petroleum And Minerals Method for fast prediction of gas composition

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI370370B (en) * 2007-12-31 2012-08-11 Ind Tech Res Inst Virtual metrology system and method applied on chemical vapor deposition process
CN103106331A (zh) * 2012-12-17 2013-05-15 清华大学 基于降维和增量式极限学习机的光刻线宽智能预测方法
CN103593670A (zh) * 2013-10-14 2014-02-19 浙江工业大学 一种基于在线序列极限学习机的铜板带表面缺陷检测方法
CN105608004A (zh) * 2015-12-17 2016-05-25 云南大学 一种基于cs-ann的软件缺陷预测方法
CN106201897A (zh) * 2016-07-26 2016-12-07 南京航空航天大学 基于主成分分布函数的软件缺陷预测不平衡数据处理方法
CN107133176A (zh) * 2017-05-09 2017-09-05 武汉大学 一种基于半监督聚类数据筛选的跨项目缺陷预测方法
CN107239798A (zh) * 2017-05-24 2017-10-10 武汉大学 一种面向软件缺陷个数预测的特征选择方法
CN107247666A (zh) * 2017-05-24 2017-10-13 武汉大学 一种基于特征选择和集成学习的软件缺陷个数预测方法
CN107391365A (zh) * 2017-07-06 2017-11-24 武汉大学 一种面向软件缺陷预测的混合特征选择方法
CN107391370A (zh) * 2017-07-13 2017-11-24 武汉大学 一种基于数据过采样和集成学习的软件缺陷数目预测方法
CN107391369A (zh) * 2017-07-13 2017-11-24 武汉大学 一种基于数据筛选和数据过采样的跨项目缺陷预测方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"A Hybrid Kernel PCA, Hypersphere SVM and Extreme Learning Machine Approach for Nonlinear Process Online Fault Detection";Ni Mengqi, et al.;《IECON 2015 - 41ST ANNUAL CONFERENCE OF THE IEEE INDUSTRIAL ELECTRONICS SOCIETY》;20151231;第2106-2111页 *
"A new metrics selection method for software defect prediction";Ye Xia,et al.;《2014 IEEE International Conference on Progress in Informatics and Computing》;20141204;第433-436页 *
"Software Defect Prediction Based on Kernel PCA and Weighted Extreme Learning Machine";Zhou Xu, et al.;《Information and Software Technology》;20190228;第182-200页 *
"基于主成分分析法的人工免疫识别软件缺陷预测模型研究";朱朝阳等;《计算机科学》;20170630;第44卷(第6A期);第483-485/518页 *
"软件缺陷预测中基于聚类分析的特征选择方法";刘望舒等;《中国科学:信息科学》;20160918;第46卷(第9期);第1298-1230页 *

Also Published As

Publication number Publication date
CN107346286A (zh) 2017-11-14

Similar Documents

Publication Publication Date Title
CN107346286B (zh) 一种基于核主成分分析和极限学习机的软件缺陷预测方法
US20220147405A1 (en) Automatically scalable system for serverless hyperparameter tuning
Zhan et al. Consensus-driven propagation in massive unlabeled data for face recognition
US20180268296A1 (en) Machine learning-based network model building method and apparatus
EP3591586A1 (en) Data model generation using generative adversarial networks and fully automated machine learning system which generates and optimizes solutions given a dataset and a desired outcome
US20210097343A1 (en) Method and apparatus for managing artificial intelligence systems
US11810000B2 (en) Systems and methods for expanding data classification using synthetic data generation in machine learning models
Ren et al. On software defect prediction using machine learning
Singh et al. Software defect prediction tool based on neural network
CN114036531A (zh) 一种基于多尺度代码度量的软件安全漏洞检测方法
Pan et al. Rank aggregation via low-rank and structured-sparse decomposition
CN112257959A (zh) 用户风险预测方法、装置、电子设备及存储介质
Wang et al. Extrinsic Least Squares Regression with Closed‐Form Solution on Product Grassmann Manifold for Video‐Based Recognition
Wan et al. Software Defect Prediction Using Dictionary Learning.
CN115130663B (zh) 基于图神经网络和注意力机制的异质网络属性补全方法
Bu et al. A High‐Order CFS Algorithm for Clustering Big Data
Fan et al. A network intrusion detection method based on improved Bi-LSTM in Internet of Things environment
Zhang et al. Research on distributed heterogeneous data PCA algorithm based on cloud platform
Li et al. Can we speculate running application with server power consumption trace?
Tomassi et al. Sufficient dimension reduction for censored predictors
Alshara [Retracted] Multilayer Graph‐Based Deep Learning Approach for Stock Price Prediction
CN111737107A (zh) 一种基于异质信息网络的重复缺陷报告检测方法
Bashar et al. Algan: Time series anomaly detection with adjusted-lstm gan
Liu et al. [Retracted] An Accurate Method of Determining Attribute Weights in Distance‐Based Classification Algorithms
CN116723083B (zh) 一种云服务器在线故障诊断方法及装置

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
CB03 Change of inventor or designer information

Inventor after: Xu Zhou

Inventor after: Wu Man

Inventor after: Yu Xiao

Inventor after: Peng Weiqiang

Inventor after: Ye Sizhe

Inventor after: Liu Jin

Inventor before: Wu Man

Inventor before: Yu Xiao

Inventor before: Peng Weiqiang

Inventor before: Ye Sizhe

Inventor before: Liu Jin

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200512

Termination date: 20210703

CF01 Termination of patent right due to non-payment of annual fee