CN106021115A - 基于概率的无监督缺陷预测方法 - Google Patents

基于概率的无监督缺陷预测方法 Download PDF

Info

Publication number
CN106021115A
CN106021115A CN201610395767.8A CN201610395767A CN106021115A CN 106021115 A CN106021115 A CN 106021115A CN 201610395767 A CN201610395767 A CN 201610395767A CN 106021115 A CN106021115 A CN 106021115A
Authority
CN
China
Prior art keywords
value
probability
measurement metric
file
threshold value
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.)
Granted
Application number
CN201610395767.8A
Other languages
English (en)
Other versions
CN106021115B (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.)
Chongqing Younikong Technology Co Ltd
Original Assignee
Chongqing University
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 Chongqing University filed Critical Chongqing University
Priority to CN201610395767.8A priority Critical patent/CN106021115B/zh
Publication of CN106021115A publication Critical patent/CN106021115A/zh
Application granted granted Critical
Publication of CN106021115B publication Critical patent/CN106021115B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及基于概率的无监督缺陷预测方法,包括如下步骤,S1获取度量元阈值,使用每个度量下源代码类的度量元值的中位数作为阈值;S2度量元值与阈值的差值概率化;S3聚类,计算所有度量元下每个文件的概率之和,具有相同值的类归为一类;S4标记,如果某类文件所对应的概率合大于等于L,则将该类文件标记为有缺陷,否则标记为无缺陷,从而将所有类标记为有缺陷和没有缺陷的两类。本发明方法使用概率表示类存在缺陷的可能性,不同度量元值得到的概率不同,保留类存在缺陷可能性大小的信息。在标记的过程中,根据数据集中缺陷的分布特点,选取合适的临界值进行标记。在避免信息丢失的同时,选择合适的标记临界值,提高了缺陷预测的性能。

Description

基于概率的无监督缺陷预测方法
技术领域
本发明涉及软件缺陷预测技术领域,具体涉及基于概率的无监督缺陷预测方法。
背景技术
随着互联网的快速发展,计算机系统在各行各业的应用进一步扩大,软件的维护成本受到越来越多的重视。软件缺陷是导致软件维护成本增加的主要原因。在软件开发的过程中,尽早的发现软件的缺陷并完成修改,能够提高软件的质量,降低维护成本。软件缺陷预测是指利用软件开发过程中的源代码数据预测软件是否存在缺陷。通过分析软件源代码中不同度量元,如Halstead,McCabe等的值,预测软件可能出现缺陷的模块、类或方法。进而在开发及测试过程中给予更多的关注,提高开发、测试效率的同时保障软件的质量。
软件缺陷预测技术始于20世纪70年代,至今还是软件工程领域研究的热点问题。软件缺陷预测主要分为全监督缺陷预测、半监督缺陷预测和无监督缺陷预测。全监督缺陷预测主要用到的技术和方法有:线性判别分析(LDA)、决策树C4.5(DT C4.5)、分类回归树(CART)、聚类分析(CA)、贝叶斯网络(BN)、支持向量机(SVM)、逻辑回归(LG)和随机森林(RF)等。这些全监督缺陷预测方法能够满足缺陷预测的基本要求,但是依赖大量的有标签数据进行学习。然而,在工程实践中,难以获取足够的有标签数据。因此,研究者提出半监督缺陷预测方法。Jiang在提出Rocus半监督缺陷预测方法,Li提出基于抽样的半监督缺陷预测方法,Canfora使用跨项目的缺陷预测方法,Nam使用迁徙学习的缺陷预测方法。这些半监督缺陷预测方法虽然比全监督缺陷预测方法所需的标签数据少,但还是用到标签数据,无法在新项目上快速使用。然而无监督缺陷预测方法不需要标签数据进行学习,能够有效克服全监督和半监督缺陷预测方法需要标签数据的不足。目前无监督缺陷预测主要是依据软件度量元值进行缺陷预测。Catal提出基于软件度量元和聚类的无监督缺陷预测模型,Zhong提出基于专家的缺陷预测模型,在完成聚类之后需要专家对数据集进行标记。Zhang提出通用缺陷预测模型,但是在一些特殊项目中并不适用。Nam提出CLA无监督缺陷预测方法,通过聚类(Clustering)和标记(LAbel)两个步骤,取得了与全监督方法相当的预测效果。然而,该方法的聚类过程将软件度量元值与其阈值比较,判断结果对阈值比较敏感,存在信息丢失的问题。
发明内容
针对现有技术存在的上述问题,本发明的目的是提出一种预测准确率更高的基于概率的无监督缺陷预测方法。
为实现上述目的,本发明采用如下技术方案:基于概率的无监督缺陷预测方法,其特征在于,包括如下步骤:
S1:获取度量元阈值;
S1a:获取目标软件的源代码,并获取该目标软件源代码的度量元值;
目标软件源代码的所有度量元的值构成一个集合X:
X={x1,1,x2,2,...xi,j,...xI,J} (1);
其中,xi,j表示第j个度量元在第i个文件上的度量元值,第i个文件是指第i个源代码的文件,I表示目标软件中源代码文件的总数,J表示选取的度量元的总数;
S1b:将每个度量元在所有文件上的度量元值的中位数作为该度量元阈值,见公式(2);
Tj=Median(xi,j),i=1,2,3...I,j=1,2,3...J (2);
其中,Tj表示第j个度量元的阈值;
S2:度量元值与阈值的差值概率化;
S2a:使用公式(3)计算度量元值与其对应的阈值的差值;
ui,j=xi,j-Tj,i=1,2,3...I,j=1,2,3...J (3);
其中,ui,j表示第j个度量元在第i个文件上的度量元值与第j个度量元的阈值的差值;
S2b:将步骤S2a的差值使用公式(4)映射为概率;
P ( u i , j ) = 1 1 + e - u i , j , i = 1 , 2 , 3 ... I , j = 1 , 2 , 3 ... J - - - ( 4 ) ;
其中,P(ui,j)表示差值ui,j映射后的概率;
S3:聚类;
S3a:根据公式(5)对通过公式(4)得到概率求和;
K i = Σ j = 1 J P ( u i , j ) , i = 1 , 2 , 3 ... I - - - ( 5 ) ;
其中,Ki表示在每个度量元上第i个文件对应的概率P(ui,j)进行求和所得的概率合;
S3b:将步骤S3a得到的I个概率合进行比较,将概率和相等的文件归为同一个类别;
S4:根据公式(6)对步骤S3b聚类的结果进行标记;
如果S3b聚类后,某类别文件所对应的概率合大于等于L,则将该类别中的文件标记为有缺陷,否则标记为无缺陷;
F = 1 , K i &GreaterEqual; L 0 , K i < L , i = 1 ... I - - - ( 6 ) ;
其中,L表示临界值,L=J*B,B是经验值,B∈(0.1),F表示待预测的文件的类别。
作为优化,所述步骤S4中L取值既要保证选取的值使有缺陷的一类文件尽可能地多,又要保证无缺陷的一类文件尽可能少。
作为优化,所述步骤S4中B的取值为经验值,在不同的项目中取值不一样,在本发明中,采用的是基于NASA数据集中缺陷分布的情况得到的经验值。
相对于现有技术,本发明具有如下优点:本发明提供的预测方法将度量元值与阈值的差值映射为概率,对阈值的敏感性降低,避免信息丢失。使用概率表示类存在缺陷的可能性,不同度量元值得到的概率不同,保留了类存在缺陷可能性大小的信息。此外,在标记的过程中,本发明预测方法不是直接将聚类结果均分,而是根据数据集中缺陷的分布特点,选取合适的临界值进行标记。在避免信息丢失的同时,选择合适的标记临界值,提高了缺陷预测的性能。
最后将本发明方法应用在NetGen和Relink两组数据集,共7个软件项目上。实验结果表明本发明方法在查全率、查准率、F-measure上相对现有无监督方法分别平均提升4.1%,2.52%,3.14%。
附图说明
图1为度量元值与阈值的差值与Sigmoid函数曲线的关系。
图2为Sigmoid函数在不同a值下的曲线。
图3a对比实验的查全率。
图3b对比实验的查准率。
图3c对比实验的F-measure。
具体实施方式
下面对本发明作进一步详细说明。
基于概率的无监督缺陷预测方法,包括如下步骤:
S1:获取度量元阈值;
S1a:获取目标软件的源代码,本发明中的目标软件是指待预测其缺陷的软件,并获取该目标软件源代码的度量元值;现有技术中,通过目标软件的源代码获取其度量元的值的方法属于现有技术,具体地,不同的度量元的值可以使用不同的工具来获得;
该目标软件源代码的所有度量元的构成一个集合X:
X={x1,1,x2,2,...xi,j,...xI,J} (1);
其中,xi,j表示第j个度量元在第i个文件上的度量元值,第i个文件是指第i个源代码的文件,I表示目标软件中源代码文件的总数,J表示选取的(目标软件中)度量元的总数;软件是由多个文件组成的,每个文件则包括源代码和其他数据,其他数据主要包括源代码的注释,每个源代码对应多个度量元,每个度量元在每个文件中的值是确定的;
S1b:将每个度量元在所有文件上的度量元值的中位数作为该度量元阈值,见公式(2);
Tj=Median(xi,j),i=1,2,3...I,j=1,2,3...J (2);
其中,Tj表示第j个度量元的阈值,具体地,即为第j个度量元在所有文件上的度量元值的中位数;
S2:度量元值与阈值的差值概率化;
S2a:使用公式(3)计算度量元值与其对应的阈值的差值;
ui,j=xi,j-Tj,i=1,2,3...I,j=1,2,3...J (3);
其中,ui,j表示第j个度量元在第i个文件上的度量元值与第j个度量元的阈值的差值;
S2b:将步骤S2a的差值使用公式(4)映射为概率;
P ( u i , j ) = 1 1 + e - u i , j , i = 1 , 2 , 3 ... I , j = 1 , 2 , 3 ... J - - - ( 4 ) ;
其中,P(ui,j)表示差值ui,j映射后的概率;
S3:聚类;
S3a:根据公式(5)对通过公式(4)得到概率求和;
K i = &Sigma; j = 1 J P ( u i , j ) , i = 1 , 2 , 3 ... I - - - ( 5 ) ;
其中,Ki表示在每个度量元上第i个文件对应的概率P(ui,j)进行求和所得的概率合,即每个Ki对应一个文件;
S3b:将步骤S3a得到的I个概率合进行比较,将概率和相等的文件归为同一个类别,(即如果任何两个概率合相等,则将该概率合所对应的两个文件为同一类别);
S4:根据公式(6)对步骤S3b聚类的结果进行标记;
如果S3b聚类后,某类别文件所对应的概率合大于等于L,则将该类别中的文件标记为有缺陷,否则标记为无缺陷;
F r = 1 , K i &GreaterEqual; L 0 , K i < L , i = 1 ... I - - - ( 6 ) ;
其中,L表示临界值,L=J*B,B是经验值,B=∈(0.1),Fr表示待预测的文件(类)。
实施例:
S1:获取度量元阈值;
S1a:获取目标软件的源代码,并获取该目标软件源代码的度量元值;该目标软件源代码的所有度量元的值构成一个集合X:
具体如表1,表1中,I=7,J=7,即目标软件包括七个文件,获取这七个文件中的源代码的七个度量元的值;
表1
xi,j j=1 j=2 j=3 j=4 j=5 j=6 j=7
i=1 3 1 3 0 5 1 9
i=2 1 1 2 0 7 3 8
i=3 2 3 2 5 5 2 1
i=4 0 0 8 1 0 1 9
i=5 1 0 2 5 6 10 8
i=6 1 4 1 1 7 1 1
i=7 1 0 1 0 0 1 7
S1b:将每个度量元在所有文件上的度量元值的中位数作为该度量元阈值,见表2:
表2
Tj j=1 j=2 j=3 j=4 j=5 j=6 j=7
1 1 2 1 5 1 8
阈值可以根据不同的计算方式获取,可以使用众数、中位数、均值等。实验中分别使用众数、中位数、均值、四分位数等作为阈值,但使用中位数作为阈值时预测的性能最好。因此本发明中使用度量元值的中位数作为阈值。
S2:度量元值与阈值的差值概率化;
S2a:计算度量元值与其对应的阈值的差值,见表3:
表3
ui,j j=1 j=2 j=3 j=4 j=5 j=6 j=7
i=1 2 0 1 -1 0 0 1
i=2 0 0 0 -1 2 2 0
i=3 1 2 0 4 0 1 -7
i=4 -1 -1 6 0 -5 0 1
i=5 0 -1 0 4 1 9 0
i=6 0 3 -1 0 2 0 -7
i=7 0 -1 -1 -1 -5 0 -1
计算度量元值与阈值的差值,该差值的大小直接体现度量值偏离阈值的程度,可以反映类存在缺陷可能性的大小。
S2b:将步骤S2a的差值使用公式(4)映射为概率,见表4;
P ( u i , j ) = 1 1 + e - u i , j , i = 1,2,3 . . . I , j = 1,2,3 . . . J - - - ( 4 ) ;
表4
P(ui,j) j=1 j=2 j=3 j=4 j=5 j=6 j=7
i=1 0.88 0.50 0.73 0.27 0.50 0.50 0.73
i=2 0.50 0.50 0.50 0.27 0.88 0.88 0.50
i=3 0.73 0.88 0.50 0.98 0.50 0.73 0.00
i=4 0.27 0.27 1.00 0.50 0.01 0.50 0.73
i=5 0.50 0.27 0.50 0.98 0.73 1.00 0.50
i=6 0.50 0.95 0.27 0.50 0.88 0.50 0.00
i=7 0.50 0.27 0.27 0.27 0.01 0.50 0.27
本发明中采用Sigmoid函数将差值映射为类存在缺陷的概率。
Sigmoid函数是一种S型函数,其定义如下:
S ( a , t ) = 1 1 + e - at - - - ( 4 a ) ;
该函数具有连续、可微、光滑、有界等良好特性,能够将变量的值映射到0~1范围内。参数a控制函数曲线的“倾斜”程度,a越大,曲线越陡峭。在中心点位置附近,函数曲线比较陡峭,远离中心点位置之后,函数比较平缓。
度量元值与阈值的差值与Sigmoid函数曲线之间的关系如图1所示。横轴t表示度量元值与其阈值的差值,纵轴表示对应的概率。度量元值与阈值的差值主要分布在t=0附近。图1中为了方便,将度量值与阈值的差值绘制在y=0.5直线上。使用Sigmoid函数将度量值与阈值的差值映射为概率,能够评估类存在缺陷的可能性。如代码复杂度,其值越大,表示代码越复杂。当代码复杂度的值与阈值相等时,对应的概率值为0.5;当代码复杂度的值与阈值的差值为正且差值比较大时,对应的概率值接近于1,表示类在代码复杂度上存在缺陷的可能性很大;当代码复杂度的值与阈值的差值为负且差值比较小时,对应的概率值接近于0,表示类在代码复杂度上基本不会有缺陷。
Sigmoid函数的参数a表示函数曲线在中心点附近的倾斜程度。如图2所示,分别绘制a为不同值的曲线。不同a值的曲线倾斜程度不一样,最直接的表现是在0点附近概率的变化大小不一样。
在a的取值为1,充分体现当度量元值与其阈值的差值在0附近时,其对应的概率变化比较大。当度量元值与阈值的差值远离0时,其概率的相差不大的。比如代码复杂,假设其阈值为10,那么代码复杂度为11,13的两个类得到的概率差别会比较大,因为11和13导致类存在缺陷的程度不一样。但是当两个类的代码复杂度分别为20和30时,说明这两个类存在缺陷的可能性都很大,因此对应的概率值相差不大。
因此,将公式(4a)转化为公式(4)将步骤S2a的差值映射为概率。
S3:聚类;
S3a:根据公式(5)对通过公式(4)得到概率求和,见表5;
K i = &Sigma; j = 1 J P ( u i , j ) , i = 1 , 2 , 3 ... I - - - ( 5 ) ;
表5
文件 Ki
i=1 4.11
i=2 4.03
i=3 4.33
i=4 3.27
i=5 4.48
i=6 3.60
i=7 2.08
通过表5可以看出七个文件(i=1,2,3,4,5,6,7)所对应的差值ui,j映射后的概率的和各不相同,因此七个文件聚类为7类;
S4:根据公式(6)对步骤S3b聚类的结果进行标记;
将聚类结果按升序排列,即按照Ki值的从小到达的顺序排列,再根据公式(6)标记。我们将升序排列结果中Ki值比L值大的类别标记为有缺陷,即这部分中的类被预测为有缺陷,其他的类则被预测为没有缺陷。式中L为标记的临界值,表6表示在完成聚类之后,对类标记,标记为有缺陷和无缺陷两类。
L=J*B=7*0.45=3.15
表6
有缺陷 Ki≥L i=1,2,3,4,5,6
没缺陷 Ki<L i=7
即第1至6个文件均预测为有缺陷,第7个文件预测为无缺陷。
PCLA方法(本发明方法)是对CLA方法的改进,同样基于度量元值预测软件的缺陷,需要获取度量元的阈值,进行聚类和标记。CLA方法直接根据度量元值与阈值的比较判断类是否存在缺陷,对阈值敏感,存在信息丢失的问题。此外,CLA方法在对聚类结果进行标记的过程中,根据聚类结果每一类别由一个整数值表示的特点,将所有类别按升序排列。然后根据度量元值越大,越有可能存在缺陷的软件缺陷预测趋势,将排列结果均分为两部分。升序排列结果的下半部分被标记为有缺陷,即这部分中的类被预测为有缺陷,另一部分中的类则被预测为没有缺陷。这不一定符合实际情况。如表7所示,A、B两个类在X1度量元下的值分别为10,20,X1度量元的阈值为8。使用CLA方法时,A、B两个都存在缺陷,但实际上B存在缺陷的可能性更大。CLA方法没有保留B存在缺陷可能性更大的信息,引起信息丢失。当阈值为11时,只有C存在缺陷,但是B存在缺陷的可能性还是比较大,CLA方法对阈值敏感。
表7
X1 X1阈值 差值
A 10 8 2
B 20 8 12
C 7 8 -1
而PCLA方法将度量元值与阈值的差值映射为概率,对阈值的敏感性降低,避免信息丢失。使用概率表示类存在缺陷的可能性,不同度量元值得到的概率不同,保留了类存在缺陷可能性大小的信息。此外,在标记的过程中,PCLA方法不是直接将聚类结果均分,而是根据NASA数据集中缺陷的分布特点,选取合适的临界值进行标记。PCLA方法在避免信息丢失的同时,选择合适的标记临界值,提高了缺陷预测的性能。
本发明的预测方法与现有预测方法的比对:
数据集
表8列举了实验中使用的数据集。这些数据集来自于论文(Nam J,Kim S.CLAMI:Defect Prediction on Unlabeled Datasets[C]//Proceedings of the 30th IEEE/ACMInternational Conference on Automated Software Engineering(ASE 2015).),包含两个不同的组:NetGen和Relink。数据集中的缺陷数据经过手工验证或者已与代码的变更进行关联。实验之前,使用Weka对数据集中度量元的缺失值进行预处理。
表8
实验评价指标
为了评价PCLA方法的预测性能,构造混淆矩阵(Confusion matrix),如表9所示。然后使用查全率(Recall),查准率(Precision),F-measure评价PCLA方法在缺陷预测上的性能。公式(7),(8)和(9)分别为查全率、查准率和F-measure的计算公式。
表9
Re c a l l = T P T P + F N - - - ( 7 ) ;
Pr e c i s i o n = T P T P + F P - - - ( 8 ) ;
F - m e a s u r e = ( &beta; 2 + 1 ) * Pr e c i s i o n * Re c a l l &beta; 2 * Pr e c i s o n + Re c a l l - - - ( 9 ) ;
上式中,True positive(TP)表示一个类被预测为有缺陷,且确实含有缺陷。即该类在所有度量元上的概率之和大于或等于标记的临界值L且该类确实有缺陷。Truenegative(TN)表示一个类被预测为没有缺陷,且确实没有缺陷。即该类在所有度量元上的概率之和小于标记的临界值L且该类没有缺陷。False positive(FP)表示一个类被预测为有缺陷,但实际没有缺陷。即在预测时,该类在所有度量元上的概率之和大于或等于标记的临界值L但该类没有缺陷。False negative(FN)表示一个类被预测为没有缺陷,但实际上含有缺陷。即在预测时,该类在所有度量元上的概率之和小于标记的临界值L,但是该类有缺陷。
公式(9)变量β用于控制查准率的权重。在本实验中β=1,查全率和查准率的权重相等。查全率表示在所有真实的缺陷中被预测出来的缺陷的百分比。查准率表示在所有被预测为有缺陷的类中,真实有缺陷的类的百分比。F-measure是一个能够表示查全率和查准率整体性能的调和平均数。查全率和查准率的值都在0~1之间,且值越接近于1时结果更好。但是实际中,当查全率越大时,查准率就会越低,很难使得查全率和查准率的值同时提高。因此使用F-measure表示查全率和查准率的整体性能。
实验结果分析
实验中Sigmoid函数的参数a取值为1。在标记类时,L=X*0.45,X为度量元的个数。PCLA和CLA两种方法对比的实验结果如图3a,图3b,图3c及表10所示:
表10
图3a,图3b,图3c及表10中Apache,Safe,Zxing,Httpclient,Jackrabbit,Lucene,Rhino,Average均为不同软件的软件名。从图3a,图3b,图3c及表10中可以看出,在查全率上,PCLA方法的查全率整体比CLA方法高,只有一个项目的查全率低于CLA方法。在查准率上,有四个项目的查准率高于CLA方法。但在F-measure上,只有一个项目的值低于CLA方法。总体上,PLCA方法与CLA方法相比,查全率有明显提高,查准率并没有明显降低,而且整体的评价指标F-measure值比CLA方法高。此外,从7个项目平均效果上可以看出,查全率、查准率、F-measure分别平均提高4.1%,2.52%,3.14%。因此,PLCA方法优于CLA方法。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (3)

1.基于概率的无监督缺陷预测方法,其特征在于,包括如下步骤:
S1:获取度量元阈值;
S1a:获取目标软件的源代码,并获取该目标软件源代码的度量元值;
目标软件源代码的所有度量元的值构成一个集合X:
X={x1,1,x2,2,...xi,j,...xI,J} (1);
其中,xi,j表示第j个度量元在第i个文件上的度量元值,第i个文件是指第i个源代码的文件,I表示目标软件中源代码文件的总数,J表示选取的度量元的总数;
S1b:将每个度量元在所有文件上的度量元值的中位数作为该度量元阈值,见公式(2);
Tj=Median(xi,j),i=1,2,3...I,j=1,2,3...J(2);
其中,Tj表示第j个度量元的阈值;
S2:度量元值与阈值的差值概率化;
S2a:使用公式(3)计算度量元值与其对应的阈值的差值;
ui,j=xi,j-Tj,i=1,2,3...I,j=1,2,3...J(3);
其中,ui,j表示第j个度量元在第i个文件上的度量元值与第j个度量元的阈值的差值;
S2b:将步骤S2a的差值使用公式(4)映射为概率;
P ( u i , j ) = 1 1 + e - u i , j , i = 1 , 2 , 3 ... I , j = 1 , 2 , 3 ... J - - - ( 4 ) ;
其中,P(ui,j)表示差值ui,j映射后的概率;
S3:聚类;
S3a:根据公式(5)对通过公式(4)得到概率求和;
K i = &Sigma; j = 1 J P ( u i , j ) , i = 1 , 2 , 3 ... I - - - ( 5 ) ;
其中,Ki表示在每个度量元上第i个文件对应的概率P(ui,j)进行求和所得的概率合;
S3b:将步骤S3a得到的I个概率合进行比较,将概率和相等的文件归为同一个类别;
S4:根据公式(6)对步骤S3b聚类的结果进行标记;
如果S3b聚类后,某类别文件所对应的概率合大于等于L,则将该类别中的文件标记为有缺陷,否则标记为无缺陷;
F = 1 , K i &GreaterEqual; L 0 , K i < L , i = 1 ... I - - - ( 6 ) ;
其中,L表示临界值,L=J*B,B是经验值,B∈(0.1),F表示待预测的文件的类别。
2.如权利要求1所述的基于概率的无监督缺陷预测方法,其特征在于,所述步骤S4中L取值既要保证选取的值使有缺陷的一类文件尽可能地多,又要保证无缺陷的一类文件尽可能少。
3.如权利要求1或2所述的基于概率的无监督缺陷预测方法,其特征在于,所述步骤S4中B的取值是基于NASA数据集中缺陷分布的情况得到的经验值。
CN201610395767.8A 2016-06-06 2016-06-06 基于概率的无监督缺陷预测方法 Active CN106021115B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610395767.8A CN106021115B (zh) 2016-06-06 2016-06-06 基于概率的无监督缺陷预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610395767.8A CN106021115B (zh) 2016-06-06 2016-06-06 基于概率的无监督缺陷预测方法

Publications (2)

Publication Number Publication Date
CN106021115A true CN106021115A (zh) 2016-10-12
CN106021115B CN106021115B (zh) 2018-07-10

Family

ID=57089675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610395767.8A Active CN106021115B (zh) 2016-06-06 2016-06-06 基于概率的无监督缺陷预测方法

Country Status (1)

Country Link
CN (1) CN106021115B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763063A (zh) * 2018-05-09 2018-11-06 南京大学 一种无需缺陷标注数据的软件缺陷检测方法
CN110175726A (zh) * 2019-06-18 2019-08-27 中国人民解放军国防科技大学 一种基于迁移性分析的跨项目缺陷预测方法
CN112363928A (zh) * 2020-11-10 2021-02-12 网易(杭州)网络有限公司 测试用例的处理方法、装置、处理器及电子装置
CN113157561A (zh) * 2021-03-12 2021-07-23 安徽工程大学 一种数控系统软件模块的缺陷预测方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012013509A1 (en) * 2010-07-28 2012-02-02 Ecole Polytechnique Federale De Lausanne (Epfl) A method and device for predicting faults in an it system
CN104899135B (zh) * 2015-05-14 2017-10-20 工业和信息化部电子第五研究所 软件缺陷预测方法和系统
CN105302724A (zh) * 2015-11-05 2016-02-03 南京大学 一种基于混和效应移除的即时缺陷预测方法
CN105608004A (zh) * 2015-12-17 2016-05-25 云南大学 一种基于cs-ann的软件缺陷预测方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763063A (zh) * 2018-05-09 2018-11-06 南京大学 一种无需缺陷标注数据的软件缺陷检测方法
CN108763063B (zh) * 2018-05-09 2022-07-12 南京大学 一种无需缺陷标注数据的软件缺陷检测方法
CN110175726A (zh) * 2019-06-18 2019-08-27 中国人民解放军国防科技大学 一种基于迁移性分析的跨项目缺陷预测方法
CN112363928A (zh) * 2020-11-10 2021-02-12 网易(杭州)网络有限公司 测试用例的处理方法、装置、处理器及电子装置
CN112363928B (zh) * 2020-11-10 2023-08-22 网易(杭州)网络有限公司 测试用例的处理方法、装置、处理器及电子装置
CN113157561A (zh) * 2021-03-12 2021-07-23 安徽工程大学 一种数控系统软件模块的缺陷预测方法

Also Published As

Publication number Publication date
CN106021115B (zh) 2018-07-10

Similar Documents

Publication Publication Date Title
Prabha et al. Software defect prediction using machine learning techniques
Meng et al. Semi-supervised software defect prediction model based on tri-training.
CN113792825B (zh) 一种用电信息采集设备故障分类模型训练方法及装置
CN104881706B (zh) 一种基于大数据技术的电力系统短期负荷预测方法
CN106021115A (zh) 基于概率的无监督缺陷预测方法
CN106202891A (zh) 一种面向医疗质量评价的大数据挖掘方法
CN109681391B (zh) 一种叶根螺栓断裂故障检测方法及介质
CN106529580A (zh) 结合edsvm的软件缺陷数据关联分类方法
Niu et al. Optimization of support vector machine power load forecasting model based on data mining and Lyapunov exponents
CN111340110A (zh) 一种基于工业过程运行状态趋势分析的故障预警方法
CN115035966B (zh) 基于主动学习和符号回归的超导体筛选方法、装置及设备
CN113807728A (zh) 基于神经网络的绩效考核方法、装置、设备及存储介质
CN107480441B (zh) 一种儿童脓毒性休克预后预测的建模方法及系统
CN115034278A (zh) 性能指标异常检测方法、装置、电子设备和存储介质
CN116383727A (zh) 一种电厂系统测量粗大误差识别方法、系统、设备及介质
Azyus et al. Determining the method of predictive maintenance for aircraft engine using machine learning
CN113672506A (zh) 基于机器学习的动态比例测试用例排序选择方法及系统
Zhang et al. Cost-sensitive Naïve Bayes Classification of Uncertain Data.
CN117277312A (zh) 一种基于灰色关联分析的电力负荷影响因素方法及设备
CN117312972A (zh) 一种刮板输送机减速器健康状态识别方法
CN110717623B (zh) 融合多种天气状况的光伏发电功率预测方法及装置、设备
CN106096635B (zh) 基于阈值操作的代价敏感神经网络的警告分类方法
CN112380763A (zh) 一种基于数据挖掘的堆内构件可靠性分析系统及方法
CN114139408A (zh) 一种电力变压器健康状态评估方法
CN106055483B (zh) 基于欠采样操作的代价敏感神经网络的警告分类方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190902

Address after: 400 000 Shapingba District, Chongqing City, No. 218, 218-1, No. 8 Zhengjie, Shapingba, No. 8, No. 6, Third Floor of Natural Layer

Patentee after: Chongqing Younikong Technology Co., Ltd.

Address before: 400044 Chongqing street, Shapingba District, No. 174

Patentee before: Chongqing University