CN117389878A - 基于相关系数和互信息加权的软件缺陷预测方法及系统 - Google Patents
基于相关系数和互信息加权的软件缺陷预测方法及系统 Download PDFInfo
- Publication number
- CN117389878A CN117389878A CN202311341170.1A CN202311341170A CN117389878A CN 117389878 A CN117389878 A CN 117389878A CN 202311341170 A CN202311341170 A CN 202311341170A CN 117389878 A CN117389878 A CN 117389878A
- Authority
- CN
- China
- Prior art keywords
- rule
- software defect
- software
- item
- prediction
- 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.)
- Pending
Links
- 230000007547 defect Effects 0.000 title claims abstract description 170
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000008094 contradictory effect Effects 0.000 claims abstract description 10
- 238000007781 pre-processing Methods 0.000 claims abstract description 7
- 230000002950 deficient Effects 0.000 claims description 49
- 238000005065 mining Methods 0.000 claims description 24
- 230000000875 corresponding effect Effects 0.000 description 14
- 238000012549 training Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000002790 cross-validation Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
- G06F18/2113—Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于相关系数和互信息加权的软件缺陷预测方法及系统,属于软件缺陷预测技术领域,解决了现有技术中因数据分布倾斜和特征加权不精细而导致软件缺陷预测不准确的问题。方法包括:将历史软件缺陷数据预处理为事务数据,对每条事务数据生成长度递增的候选项集,当候选项集的加权支持度大于等于候选项集所属类别的支持度阈值时,作为对应长度的频繁项集,迭代直至达到结束条件;根据最小增值阈值,生成后件长度为1的类关联规则;根据类关联规则的增值,去除冗余和矛盾的类关联规则得到软件缺陷预测规则;将待预测的软件缺陷数据与软件缺陷预测规则进行匹配,根据匹配的软件缺陷预测规则的增值得到预测结果。实现了准确预测软件缺陷。
Description
技术领域
本发明涉及软件缺陷预测技术领域,尤其涉及一种基于相关系数和互信息加权的软件缺陷预测方法及系统。
背景技术
近些年来,人类对于软件的需求越来越多样化,这也使得软件的复杂性与日俱增。为了保证软件的可靠性同时控制开发成本,这就需要软件测试活动尽早地识别潜在的缺陷。在这个动机下,软件缺陷预测(SDP)活动被用于在测试阶段通过源代码或者软件元素以预测软件模块的缺陷情况。SDP技术不仅可以帮助测试人员更加合理地规划资源分配,还可以有效地指导软件从业人员更好地识别缺陷。
现有关联规则挖掘算法被广泛应用于SDP研究中,然而倾斜的数据分布导致生成的有缺陷类规则显著少于无缺陷类规则,进而限制了规则预测器对于有缺陷结果的预测能力。面对数据分布倾斜造成的严峻挑战,从数据层面出发,过采样方法所添加的有缺陷类人工数据样本会增加大量噪声,进而制约SDP模型的预测性能。欠采样方法丢弃掉部分无缺陷类原始数据样本,这可能导致失去潜在的有用样本。从模型方面出发,仅在某一类数据中训练分类器会使得原始缺陷数据的分布特征被破坏,这使得特征项目的支持度指标产生偏差,进而导致错误的仅包含特征项目的频繁项集(特征频繁项集)被保留。
另外,ARM算法的支持度与置信度是基于频率的度量指标,这就会导致项目本身的重要性(权重)被丢失掉。现有加权关联规则挖掘通过领域知识添加特征的权重至项目中,使得在规则挖掘的过程中同时考虑到项目与规则的重要性。然而,随着现有软件系统的复杂性骤增,获取大量项目准确的领域知识是不现实的,让领域专家参与制定权重,缺少客观性。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种基于相关系数和互信息加权的软件缺陷预测方法及系统,用以解决现有因数据分布倾斜和特征加权不精细而导致软件缺陷预测不准确的问题。
一方面,本发明实施例提供了一种基于相关系数和互信息加权的软件缺陷预测方法,包括以下步骤:
将历史软件缺陷数据预处理为事务数据,对每条事务数据依次根据前一长度的频繁项集生成长度递增的候选项集,当候选项集的加权支持度大于等于候选项集所属类别的支持度阈值时,作为对应长度的频繁项集,迭代直至达到结束条件;
根据最小增值阈值,对所有频繁项集生成后件长度为1的关联规则集合,从关联规则集合中提取出类关联规则;根据类关联规则的增值,依次去除冗余和矛盾的类关联规则后得到软件缺陷预测规则;
获取待预测的软件缺陷数据,与软件缺陷预测规则进行匹配,根据匹配的软件缺陷预测规则的增值,得到预测结果。
基于上述方法的进一步改进,候选项集的加权支持度是根据候选项集的权重和候选项集的支持度相乘而得到,其中候选项集的权重是根据候选项集中各项的权重连乘而得到。
基于上述方法的进一步改进,候选项集中各项的权重通过以下步骤计算得到:
当候选项集中只包含任一缺陷标签时,候选项集中缺陷标签项的权重为1,其它项的权重是候选项集中该项与缺陷标签项的相关系数;
当候选项集中不包含任一缺陷标签时,各项的权重是各项分别与所属事务数据中缺陷标签项的互信息。
基于上述方法的进一步改进,对每条事务数据依次根据前一长度的频繁项集生成长度递增的候选项集时,将长度为1的候选项集直接作为长度为1的频繁项集。
基于上述方法的进一步改进,候选项集所属类别包括:含有有缺陷标签的项集、含有无缺陷标签的项集和仅有软件缺陷度量元的项集,每一类别分别对应一个支持度阈值。
基于上述方法的进一步改进,从关联规则集合中提取类关联规则是从关联规则集合中获取后件是缺陷标签的关联规则;类关联规则的增值是根据类关联规则中前件发生的前提下后件也发生的概率,减去后件发生的概率而得到。
基于上述方法的进一步改进,根据类关联规则的增值,依次去除冗余的类关联规则,包括:
将类关联规则放入待剪枝集合中,从待剪枝集合中选取任意两条类关联规则作为第一规则和第二规则进行比对,当第一规则的增值大于第二规则,且第二规则的前件包含第一规则的前件,且第二规则的后件与第一规则的后件完全相同,则从待剪枝集合中去除第二规则。
基于上述方法的进一步改进,从去除了冗余的类关联规则的待剪枝集合中去除矛盾的类关联规则,包括:当待剪枝集合中任意两条类关联规则的前件不同但后件完全相同时,则同时去除该任意两条类关联规则。
基于上述方法的进一步改进,获取待预测的软件缺陷数据,与软件缺陷预测规则进行匹配,根据匹配的软件缺陷预测规则的增值,得到预测结果,包括:
根据缺陷标签的类别构建有缺陷决策器和无缺陷决策器;以增值为预测指标,将待预测的软件缺陷数据分别与软件缺陷预测规则的前件进行匹配,将被匹配的软件缺陷预测规则的增值累加至其后件对应的有缺陷或无缺陷决策器;根据最大累加值对应的决策器,得到预测结果。
另一方面,本发明实施例提供了一种基于相关系数和互信息加权的软件缺陷预测系统,包括:
频繁项集挖掘模块,用于将历史软件缺陷数据预处理为事务数据,对每条事务数据依次根据前一长度的频繁项集生成长度递增的候选项集,当候选项集的加权支持度大于等于候选项集所属类别的支持度阈值时,作为对应长度的频繁项集,迭代直至达到结束条件;
预测规则获取模块,用于根据最小增值阈值,对所有频繁项集生成后件长度为1的关联规则集合,从关联规则集合中提取出类关联规则;根据类关联规则的增值,依次去除冗余和矛盾的类关联规则后得到软件缺陷预测规则;
软件缺陷预测模块,用于获取待预测的软件缺陷数据,与软件缺陷预测规则进行匹配,根据匹配的软件缺陷预测规则的增值,得到预测结果。
与现有技术相比,本发明至少可实现如下有益效果之一:
1、提供了一种基于嵌入法的知识挖掘方法,在频繁项集挖掘中同时考虑项目重要性和特征组合的筛选;
2、采用基于挖掘目标的加权频繁项集挖掘方法,通过计算离散的特征项目与类项目之间的互信息或相关性系数以表示每一个特征项目的权重,保证了权重的细致颗粒度的同时也不需要领域专家的参与,实现动态客观的对各项目赋权,挖掘出准确频繁项集,为预测规则的生成奠定良好的基础;
3、采用同时考虑规则中前件与后件之间的对称性和非对称性,以及正负关联性和独立性的增值来衡量关联规则的确定性,解决置信度在数据分布倾斜下产生偏倚的问题,确保预测规则合理准确,提高预测准确率。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例1中基于相关系数和互信息加权的软件缺陷预测方法流程图。
图2为本发明实施例2中基于相关系数和互信息加权的软件缺陷预测系统结构示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
实施例1
本发明的一个具体实施例,公开了一种基于相关系数和互信息加权的软件缺陷预测方法,如图1所示,包括以下步骤:
S11、将历史软件缺陷数据预处理为事务数据,对每条事务数据依次根据前一长度的频繁项集生成长度递增的候选项集,当候选项集的加权支持度大于等于候选项集所属类别的支持度阈值时,作为对应长度的频繁项集,迭代直至达到结束条件。
需要说明的是,历史软件缺陷数据有多种获取方式,包括:根据定义的软件缺陷的度量指标,使用现有静态软件代码分析工具对各软件模块扫描来获取各度量指标值,并根据实际软件模块是否存在缺陷,打上缺陷标签;或者,直接使用开源软件缺陷领域的公开数据集,比如Promise库的ANT项目的软件缺陷数据集,其中软件缺陷的度量指标(即软件缺陷度量元)包括:类的加权方法数(wmc)、继承树的深度(dit)、代码行数(loc)、数据存取度量(dam)、公用方法的个数(npm)、类的响应度(rfc)和缺陷数量(bug)等,当缺陷数量大于0,则缺陷标签defects=true表示有缺陷标签,否则,缺陷标签defects=false表示无缺陷标签。根据同一条数据的软件度量元数据和缺陷标签,得到每条软件缺陷数据。
进一步地,对历史软件缺陷数据进行数据划分与数据离散化的预处理,得到事务数据,包括:
将每条软件缺陷数据中的缺陷标签作为类别标签,采用分层K折交叉验证的方法,构建出训练样本集和测试样本集;将每条训练样本中各项目等频离散化后,放入离散样本集;根据Jaccard相似度和相似度阈值,从离散样本集中提取出事务数据。
需要说明的是,根据缺陷标签将软件缺陷数据划分为有缺陷子集和无缺陷子集,采用分层抽样的策略减少类不平衡数据对于预测结果的影响。示例性地,采用分层5折交叉验证方法,则将每类子集分别随机划分为5折,汇总每类子集的4折作为训练样本集,汇总每类子集的1折作为测试样本集。
数据离散化是将连续数据转化为离散数据的过程,具体地,通过连续数据分布情况生成互不相交的离散区间,将区间与离散数据相互映射确定区间标签。离散化定量特征不仅可以缩减原始特征的维度,而且对于分类器的性能产生积极的影响。由于关联规则算法是基于频率以生成高质量的规则知识,因此连续数据并不适合作为算法输入,对训练样本集中每个软件度量元,将其连续的数据转化为多个等频间隔的离散区间。
优选地,通过pythonpandas库中的qcut等频划分函数对每条训练样本中的每个软件度量元数据进行五阶等频离散化,即转化为5个等频间隔的离散区间后,与缺陷标签组成一条事务数据。
示例性地,一条事务数据为:trans={wmc=(4.0,6.0],dit=(2.0,3.0],noc=(-inf,0.0],cbo={6.2,10.0],…,avg_cc=(0.81,1.0],defects=true}。
得到事务数据后,现有通常采用关联规则挖掘算法,比如Apriori算法或FP-growth算法,根据一个支持度阈值来产生频繁项集,但是在数据分布偏向于多数类别时,导致生成的频繁项集不准确。因此,本实施例采用代价敏感学习策略,为不同类别的候选项集设置不同的支持度阈值。
具体来说,候选项集所属类别包括:含有有缺陷标签的项集、含有无缺陷标签的项集和仅有软件缺陷度量元的项集,每一类别分别对应一个支持度阈值。同样地,根据候选项集和所属类别的支持度阈值,得到三类频繁项集。值得注意的是,不同于现有研究只关注包含缺陷标签的项集,本实施例同时考虑软件度量元之间关联关系,为仅有软件缺陷度量元的项集也设置了单独的支持度阈值。
进一步地,考虑到支持度只是基于频率的度量指标,未考虑事务数据中各项在软件缺陷中的重要性。而三类项集的挖掘目标不同,各类项集中的各项与不同的目标之间相关性也并不是相同的,这就使得各项权重与挖掘目标息息相关。
具体来说,有缺陷标签的项集挖掘用于挖掘有缺陷类规则,项集中包含软件度量元项和有缺陷标签项,那么软件度量元项的权重应表示其与有缺陷倾向的相关性。类似地,无缺陷标签的项集用于挖掘无缺陷类规则,项集中包含软件度量元项和无缺陷标签项,那么软件度量元项的权重应表示其与无缺陷倾向的相关性。本实施例中采用相关系数(correlation coefficient,缩写为CCO)表示各软件度量元与有缺陷标签和无缺陷标签之间的依赖程度,计算公式如下所示:
其中,itemi表示项集中第i个软件度量元项,itemdefects表示项集中的缺陷标签项,当项集中defects=true时是有缺陷标签项,当项集中defects=false时是无缺陷标签项,P(itemi,itemdefects)表示itemi与itemdefects同时发生的概率,P(itemi)表示itemi发生的概率,P(itemdefects)表示itemdefects发生的概率。
进一步地,仅有软件缺陷度量元的项集用于生成预测缺陷的规则的前件,因此需要选择与事务数据中缺陷标签最相关的软件度量元项。考虑到现有很难根据领域知识获取权重和加权方法的颗粒度不够精细的问题,本实施例通过计算互信息(MutualInformation,缩写为MI)表示软件度量元项对于缺陷预测的重要性。
不同于线性相关系数,互信息可以同时检测离散变量之间的线性关系与非线性关系,互信息的取值范围为0到1,1表示两者完全相关,0表示两者完全无关。
本实施例中互信息通过度量离散的软件度量元项和缺陷标签的边缘分布的乘积与软件度量元项和缺陷标签的联合分布之间的相似程度来表示它们之间的相关性,计算公式如下所示:
其中,itemj表示项集中第j个软件度量元项,transdefects表示项集所属事务数据中的缺陷标签项,P(itemj,transdefects)表示itemj与transdefects同时发生的概率(即联合分布),P(itemj)表示itemj发生的概率(边缘分布),P(transdefects)表示transdefects发生的概率(边缘分布)。
在确定了各项的权重的计算方式后,接下来从原始事务数据中挖掘频繁项集以保证原始特征分布不被破坏,挖掘过程是一个迭代的过程,每一次迭代都是根据前一长度的频繁项集生成长度递增的候选项集,初始事务数据中每一项均作为长度为1的候选项集,而且直接作为长度为1的频繁项集,通过两两组合生成多个长度为2的候选项集。候选k-项集是将频繁k-1-项集两两组合而得到。
候选k-项集表示为Itemsetk={item1,item2,...,itemi,...,itemk},根据长度为k-1的频繁项集生成多个候选k-项集后,分别提取出每一个候选k-项集,通过识别其是否包含类缺陷标签项来获取所属类别:
①候选k-项集中同时包含有缺陷类标签和无缺陷类标签,则属于错误的项集,不进行频繁项集的生成,继续取下一个候选k-项集进行处理。
②当候选k-项集中只包含任一缺陷标签时,通过该候选k-项集在事务数据中的发生次数除以事务数据的总条数计算出候选k-项集的支持度Support(Itemsetk),然后根据公式(1)分别计算出候选k-项集中k-1个软件度量元项与对应的缺陷标签项的相关系数作为权重,缺陷标签项的权重默认为1,再根据公式(3)将k个项的权重连乘得到候选k-项集的权重W(Itemsetk),最后根据公式(4)将候选k-项集的支持度与候选k-项集的权重的乘积作为候选k-项集的加权支持度WSupport(Itemsetk)。
假设itemk=itemdefects,则候选k-项集的权重W(Itemsetk)表示如下:
WSupport(Itemsetk)=W(Itemsetk)×Support(Itemsetk) 公式(4)
③当候选k-项集中不包含任一缺陷标签时,通过该候选k-项集在事务数据中的发生次数除以事务数据的总条数计算出候选k-项集的支持度Support(Itemsetk),然后根据公式(2)分别计算出候选k-项集中k个软件度量元项与所属事务数据中缺陷标签项的互信息作为权重,再根据公式(5)将k个项的权重连乘得到候选k-项集的权重W(Itemsetk),最后根据公式(4)将候选k-项集的支持度与候选k-项集的权重的乘积作为候选k-项集的加权支持度WSupport(Itemsetk)。
从上述三种情况可知,本步骤根据不同类别的项集赋予各个项目的权重,同一个项目在不同类别的项集的权重可能不同,赋权方式客观精细。
如果生成的候选k-项集的加权支持度大于所属类别的支持度阈值,则作为频繁k-项集,用于在下一个迭代过程中生成多个长度为k+1的候选项集。
当生成的每个候选项集的加权支持度均小于等于对应类别的支持度阈值,或者频繁项集的长度已达到预置的最大长度,则退出迭代。每次迭代生成的不同长度的频繁项集用于在步骤S12中生成关联规则。
与现有技术相比,本步骤提供了一种基于嵌入法的知识挖掘方法,在频繁项集挖掘中同时考虑项目重要性和特征组合(仅有软件度量元)的筛选,采用基于挖掘目标的加权频繁项集挖掘方法,通过计算离散的特征项目与类项目之间的互信息或相关性系数以表示每一个特征项目的权重,保证了权重的细致颗粒度的同时也不需要领域专家的参与,实现动态客观的对各项目赋权,挖掘出准确频繁项集,为预测规则的生成奠定良好的基础。
S12、根据最小增值阈值,对所有频繁项集生成后件长度为1的关联规则集合,从关联规则集合中提取出类关联规则;根据类关联规则的增值,依次去除冗余和矛盾的类关联规则后得到软件缺陷预测规则。
需要说明的是,规则中前件与后件之间积极的、消极的和独立的相关性均十分重要。以形如X→Y的一条规则为例,表示积极的正关联性关系的规则为:X→Y;表示消极的负关联性关系的规则包括:X→非Y,非X→Y,非X→非Y;表示独立性关系的规则为非X→非Y。现有常采用的置信度指标是一种非对称指标,仅仅考虑了正关联关系,而忽略了所有的负关联关系,在数据分布倾斜的情况下多数类规则的置信度往往明显高于少数类规则的置信度。而提升度指标是虽然考虑了负关联关系,但是它属于一种对称指标,无法有效区分形如X→Y和Y→X的两种规则的兴趣度差异。
因此,本实施例采用同时考虑对称性和非对称性,以及正负关联性关系和独立性关系的增值作为度量指标来生成关联规则,解决置信度在数据分布倾斜下产生偏倚的问题。
具体来说,增值是关联规则中前件发生的前提下后件也发生的概率,减去后件发生的概率而得到,计算公式如下所示:
其中,AV(X→Y)表示关联规则X→Y的增值,其中X表示关联规则的前件,Y表示关联规则的后件,P(X)表示前件发生的概率,P(Y)表示后件发生的概率,P(XY)表示前件和后件同时发生的概率,表示前件发生的前提下后件也发生的概率。
当增值大于0时表示前件X的发生对后件Y的发生有积极作用,当增值小于0时表示前件X的发生对后件Y的发生有消极作用,当增值等于0时表示前件X的发生与后件Y的发生是独立性关系。
根据频繁项集生成后件长度为1的关联规则时,选取增值大于最小增值阈值的关联规则且后件是缺陷标签的类关联规则。
通过上述步骤有效提升了规则质量,但是仍然难以保证所有生成的关联规则中不存在冗余或者矛盾信息,因此依次采用冗余规则剪枝策略和矛盾规则剪枝策略剔除不合理的关联规则,得到用于软件缺陷预测的关联规则。
具体来说,根据类关联规则的增值,依次去除冗余的类关联规则,包括:
将类关联规则放入待剪枝集合中,从待剪枝集合中选取任意两条类关联规则作为第一规则和第二规则进行比对,当第一规则的增值大于第二规则,且第二规则的前件包含第一规则的前件,且第二规则的后件与第一规则的后件完全相同,则从待剪枝集合中去除第二规则。
优选地,根据每条类关联规则的增值从大到小排序,依次放入待剪枝集合中;从待剪枝集合中取出第一条类关联规则作为待比对规则,将其后面的每条类关联规则分别作为待删除规则与待比对规则进行比较,当待删除规则的前件包含待比对规则的前件且待删除规则的后件与待比对规则的后件完全相同,则从待剪枝集合中去除该待删除规则,更新待剪枝集合,再取出第二条类关联规则作为待比对规则,按照同样的方法与其后面的每条类关联规则进行比较,依次类推,当最新的待剪枝集合中每条类关联规则都作为待比对规则执行完比较后,迭代结束。
接下来,从去除了冗余的类关联规则的待剪枝集合中去除矛盾的类关联规则,包括:当待剪枝集合中任意两条类关联规则的前件不同但后件完全相同时,则同时去除该任意两条类关联规则。
最后的待剪枝集合中的类关联规则作为软件缺陷预测规则。
需要说明的是,本实施例的步骤S11-S12是根据一次分层5折交叉验证方法得到缺陷预测规则集合。优选地,采用10次分层5折交叉验证方法,加强预测结果的可信度。即重复10次,根据每次构建的训练样本集得到预测规则集合,根据构建的测试样本集得到预测结果,计算分类性能指标,比如Balance、MCC和G-mean指标。最后,取10次中分类性能指标最优时的预测规则用于软件缺陷预测,取10次分类性能指标的平均值作为最终的分类性能指标。
与现有技术相比,本步骤采用同时考虑规则中前件与后件之间的对称性和非对称性,以及正负关联性的增值来衡量关联规则的确定性,解决置信度在数据分布倾斜下产生偏倚的问题。
S13、获取待预测的软件缺陷数据,与软件缺陷预测规则进行匹配,根据匹配的软件缺陷预测规则的增值,得到预测结果。
需要说明的是,在预测阶段获取待预测的软件缺陷数据,包括待预测的软件模块的软件度量元数据。
根据缺陷标签的类别构建有缺陷决策器和无缺陷决策器得到缺陷预测器。预测时,以增值为预测指标,
将待预测的软件缺陷数据分别与每条缺陷预测规则的前件进行匹配,将被匹配的软件缺陷预测规则的增值累加至其后件对应的有缺陷或无缺陷决策器;根据最大累加值对应的决策器,得到软件缺陷预测结果。也就是说,最终判断有缺陷决策器与无缺陷决策器中增值累加值哪个最大,如果有缺陷决策器中增值累加值最大,则预测结果是有缺陷倾向,否则预测结果是无缺陷倾向。
需要说明的是,待预测的软件缺陷数据中各软件度量元数据在软件缺陷预测规则各前件的离散区间内,即认为匹配。
与现有技术相比,本实施例提供的一种基于相关系数和互信息加权的软件缺陷预测方法,提供了一种基于嵌入法的知识挖掘方法,在频繁项集挖掘中同时考虑项目重要性和特征组合的筛选;采用基于挖掘目标的加权频繁项集挖掘方法,通过计算离散的特征项目与类项目之间的互信息或相关性系数以表示每一个特征项目的权重,保证了权重的细致颗粒度的同时也不需要领域专家的参与,实现动态客观的对各项目赋权,挖掘出准确频繁项集,为预测规则的生成奠定良好的基础;采用同时考虑规则中前件与后件之间的对称性和非对称性,以及正负关联性和独立性的增值来衡量关联规则的确定性,解决置信度在数据分布倾斜下产生偏倚的问题,确保预测规则合理准确,提高预测准确率。
实施例2
本发明的另一个实施例,公开了一种基于相关系数和互信息加权的软件缺陷预测系统,从而实现实施例1中的一种基于相关系数和互信息加权的软件缺陷预测方法。各模块的具体实现方式参照实施例1中的相应描述。如图2所示,该系统包括:
频繁项集挖掘模块101,用于将历史软件缺陷数据预处理为事务数据,对每条事务数据依次根据前一长度的频繁项集生成长度递增的候选项集,当候选项集的加权支持度大于等于候选项集所属类别的支持度阈值时,作为对应长度的频繁项集,迭代直至达到结束条件;
预测规则获取模块102,用于根据最小增值阈值,对所有频繁项集生成后件长度为1的关联规则集合,从关联规则集合中提取出类关联规则;根据类关联规则的增值,依次去除冗余和矛盾的类关联规则后得到软件缺陷预测规则;
软件缺陷预测模块103,用于获取待预测的软件缺陷数据,与软件缺陷预测规则进行匹配,根据匹配的软件缺陷预测规则的增值,得到预测结果。
由于本实施例与前述基于相关系数和互信息加权的软件缺陷预测方法相关之处可相互借鉴,此处为重复描述,故这里不再赘述。由于本系统实施例与上述方法实施例原理相同,所以本系统实施例也具有上述方法实施例相应的技术效果。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于相关系数和互信息加权的软件缺陷预测方法,其特征在于,包括以下步骤:
将历史软件缺陷数据预处理为事务数据,对每条事务数据依次根据前一长度的频繁项集生成长度递增的候选项集,当候选项集的加权支持度大于等于候选项集所属类别的支持度阈值时,作为对应长度的频繁项集,迭代直至达到结束条件;
根据最小增值阈值,对所有频繁项集生成后件长度为1的关联规则集合,从关联规则集合中提取出类关联规则;根据类关联规则的增值,依次去除冗余和矛盾的类关联规则后得到软件缺陷预测规则;
获取待预测的软件缺陷数据,与软件缺陷预测规则进行匹配,根据匹配的软件缺陷预测规则的增值,得到预测结果。
2.根据权利要求1所述的基于相关系数和互信息加权的软件缺陷预测方法,其特征在于,所述候选项集的加权支持度是根据候选项集的权重和候选项集的支持度相乘而得到,其中候选项集的权重是根据候选项集中各项的权重连乘而得到。
3.根据权利要求2所述的基于相关系数和互信息加权的软件缺陷预测方法,其特征在于,所述候选项集中各项的权重通过以下步骤计算得到:
当候选项集中只包含任一缺陷标签时,候选项集中缺陷标签项的权重为1,其它项的权重是候选项集中该项与缺陷标签项的相关系数;
当候选项集中不包含任一缺陷标签时,各项的权重是各项分别与所属事务数据中缺陷标签项的互信息。
4.根据权利要求1所述的基于相关系数和互信息加权的软件缺陷预测方法,其特征在于,所述对每条事务数据依次根据前一长度的频繁项集生成长度递增的候选项集时,将长度为1的候选项集直接作为长度为1的频繁项集。
5.根据权利要求2所述的基于相关系数和互信息加权的软件缺陷预测方法,其特征在于,所述候选项集所属类别包括:含有有缺陷标签的项集、含有无缺陷标签的项集和仅有软件缺陷度量元的项集,每一类别分别对应一个支持度阈值。
6.根据权利要求1所述的基于相关系数和互信息加权的软件缺陷预测方法,其特征在于,所述从关联规则集合中提取类关联规则是从关联规则集合中获取后件是缺陷标签的关联规则;所述类关联规则的增值是根据类关联规则中前件发生的前提下后件也发生的概率,减去后件发生的概率而得到。
7.根据权利要求1所述的基于相关系数和互信息加权的软件缺陷预测方法,其特征在于,根据类关联规则的增值,依次去除冗余的类关联规则,包括:
将类关联规则放入待剪枝集合中,从待剪枝集合中选取任意两条类关联规则作为第一规则和第二规则进行比对,当第一规则的增值大于第二规则,且第二规则的前件包含第一规则的前件,且第二规则的后件与第一规则的后件完全相同,则从待剪枝集合中去除第二规则。
8.根据权利要求7所述的基于相关系数和互信息加权的软件缺陷预测方法,其特征在于,从去除了冗余的类关联规则的待剪枝集合中去除矛盾的类关联规则,包括:当待剪枝集合中任意两条类关联规则的前件不同但后件完全相同时,则同时去除该任意两条类关联规则。
9.根据权利要求1所述的基于相关系数和互信息加权的软件缺陷预测方法,其特征在于,所述获取待预测的软件缺陷数据,与软件缺陷预测规则进行匹配,根据匹配的软件缺陷预测规则的增值,得到预测结果,包括:
根据缺陷标签的类别构建有缺陷决策器和无缺陷决策器;以增值为预测指标,将待预测的软件缺陷数据分别与软件缺陷预测规则的前件进行匹配,将被匹配的软件缺陷预测规则的增值累加至其后件对应的有缺陷或无缺陷决策器;根据最大累加值对应的决策器,得到预测结果。
10.一种基于相关系数和互信息加权的软件缺陷预测系统,其特征在于,包括:
频繁项集挖掘模块,用于将历史软件缺陷数据预处理为事务数据,对每条事务数据依次根据前一长度的频繁项集生成长度递增的候选项集,当候选项集的加权支持度大于等于候选项集所属类别的支持度阈值时,作为对应长度的频繁项集,迭代直至达到结束条件;
预测规则获取模块,用于根据最小增值阈值,对所有频繁项集生成后件长度为1的关联规则集合,从关联规则集合中提取出类关联规则;根据类关联规则的增值,依次去除冗余和矛盾的类关联规则后得到软件缺陷预测规则;
软件缺陷预测模块,用于获取待预测的软件缺陷数据,与软件缺陷预测规则进行匹配,根据匹配的软件缺陷预测规则的增值,得到预测结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311341170.1A CN117389878A (zh) | 2023-10-17 | 2023-10-17 | 基于相关系数和互信息加权的软件缺陷预测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311341170.1A CN117389878A (zh) | 2023-10-17 | 2023-10-17 | 基于相关系数和互信息加权的软件缺陷预测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117389878A true CN117389878A (zh) | 2024-01-12 |
Family
ID=89462438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311341170.1A Pending CN117389878A (zh) | 2023-10-17 | 2023-10-17 | 基于相关系数和互信息加权的软件缺陷预测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117389878A (zh) |
-
2023
- 2023-10-17 CN CN202311341170.1A patent/CN117389878A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ditzler et al. | Learning in nonstationary environments: A survey | |
CN107294993B (zh) | 一种基于集成学习的web异常流量监测方法 | |
Feremans et al. | Pattern-based anomaly detection in mixed-type time series | |
US20180082215A1 (en) | Information processing apparatus and information processing method | |
CN112966259B (zh) | 电力监控系统运维行为安全威胁评估方法及设备 | |
US20060173668A1 (en) | Identifying data patterns | |
CN112016097B (zh) | 一种预测网络安全漏洞被利用时间的方法 | |
CN111158964B (zh) | 一种磁盘故障预测方法、系统、装置及存储介质 | |
Zaman et al. | Feature selection for online streaming high-dimensional data: A state-of-the-art review | |
Yang et al. | Condensing class diagrams with minimal manual labeling cost | |
CN117034143B (zh) | 一种基于机器学习的分布式系统故障诊断方法及装置 | |
Rehs | A supervised machine learning approach to author disambiguation in the Web of Science | |
JP7207540B2 (ja) | 学習支援装置、学習支援方法、及びプログラム | |
CN116150757A (zh) | 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法 | |
Wang et al. | Embedding learning with heterogeneous event sequence for insider threat detection | |
CN110502669A (zh) | 基于n边dfs子图的轻量级无监督图表示学习方法及装置 | |
CN110472188A (zh) | 一种面向传感数据的异常模式检测方法 | |
CN117389878A (zh) | 基于相关系数和互信息加权的软件缺陷预测方法及系统 | |
CN116185817A (zh) | 一种软件缺陷预测规则的筛选方法及系统 | |
CN110808947A (zh) | 一种自动化的脆弱性量化评估方法及系统 | |
Ardimento et al. | Transfer Learning for Just-in-Time Design Smells Prediction using Temporal Convolutional Networks. | |
Febriansyah et al. | Outlier detection and decision tree for wireless sensor network fault diagnosis | |
JP7016459B2 (ja) | アノマリ検知装置、アノマリ検知方法及びアノマリ検知プログラム | |
CN112182069A (zh) | 代理人留存预测方法、装置、计算机设备及存储介质 | |
CN115545125B (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 |