CN110674865B - 面向软件缺陷类分布不平衡的规则学习分类器集成方法 - Google Patents

面向软件缺陷类分布不平衡的规则学习分类器集成方法 Download PDF

Info

Publication number
CN110674865B
CN110674865B CN201910893983.9A CN201910893983A CN110674865B CN 110674865 B CN110674865 B CN 110674865B CN 201910893983 A CN201910893983 A CN 201910893983A CN 110674865 B CN110674865 B CN 110674865B
Authority
CN
China
Prior art keywords
samples
data set
sample
class
software defect
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
CN201910893983.9A
Other languages
English (en)
Other versions
CN110674865A (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.)
Yanshan University
Original Assignee
Yanshan 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 Yanshan University filed Critical Yanshan University
Priority to CN201910893983.9A priority Critical patent/CN110674865B/zh
Publication of CN110674865A publication Critical patent/CN110674865A/zh
Application granted granted Critical
Publication of CN110674865B publication Critical patent/CN110674865B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/285Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • 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
    • 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/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2135Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
    • 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
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种面向软件缺陷类分布不平衡的规则学习分类器集成方法,其包括如下步骤:步骤S1:采用主成分分析(PCA)法从原始特征中提取最有效特征从而去除无关和冗余属性,达到降维去噪目的;步骤S2:执行ADASYN过采样和无放回随机采样相结合的组合采样方法,从而解决软件缺陷数据的类分布不平衡性问题,通对采样率的设定提高了软件缺陷预测效率;步骤S3:选取基于规则学习的基分类器进行集成,构建软件缺陷预测模型。本方法利用基于规则学习算法先处理最不频繁的类最后处理最频繁类的机制,以及集成学习能够有效降低偏差和方差,进而降低分类误差的特点,使得模型在处理不平衡数据时具有良好的性能,提升了软件缺陷预测性能以及预测效率。

Description

面向软件缺陷类分布不平衡的规则学习分类器集成方法
技术领域
本发明涉及软件安全和计算机技术领域,尤其涉及一种面向软件缺陷类分布不平衡的规则学习分类器集成方法。
背景技术
在软件工程领域,软件质量是极为重要的。然而,在软件开发的过程中必然会伴随着软件缺陷的出现。随着软件规模的扩大,软件缺陷的修复往往费时又费力,其开销在维护成本中所占的比重极大,因此,准确高效的进行软件缺陷的预测,对于提高软件质量和软件可靠性具有重要意义。
在实际的软件缺陷预测中,主要存在两个问题,即软件缺陷数据集的高维性和类分布不平衡性。由于人们对软件的认识程度日益深入,软件模块包含的特征属性也越来越多,软件缺陷数据集则表现出高维性,其中一些特性可能与类,即缺陷或非缺陷相关,而其他特性可能是冗余的或不相关的,并且这些不相关特征有时会掩盖真正重要的分类特征,所以需要从高维特征中选择高相关性特征。同时,由于缺陷模块本身具有隐藏特性,待测试软件中功能正常的模块远多于存在缺陷的模块,软件缺陷数据集又表现出类分布不平衡性。高度不平衡的数据集会降低机器学习算法预测少数类的能力。
发明内容
本发明要解决的技术问题是提出一种可以解决软件工程领域中由于缺陷数据的高维性和类分布不平衡性导致模型在预测时偏向多数类,而对少数类缺陷类的预测准确性不足问题的软件缺陷预测方法。
为解决上述技术问题,本发明提出了一种面向软件缺陷类分布不平衡的规则学习分类器集成方法,其包括如下具体步骤:
步骤S1:采用主成分分析(PCA)法从软件模块所包含的原始特征中提取最有效特征;包括如下具体步骤:
步骤S101:构建软件缺陷数据集矩阵XN×M,所述矩阵的行数N表示所述软件缺陷数据集中样本的个数,所述矩阵的列数M表示每个所述样本的特征数目;
步骤S102:按列计算所述矩阵XN×M的均值,从而得到均值矩阵
Figure BDA0002209655340000021
并将所述矩阵XN×M中的每一行元素均减去所述均值矩阵
Figure BDA0002209655340000022
得到样本HN×M,并对其进行中心化;
步骤S103:计算中心化后的样本HN×M的协方差矩阵HHT,并对所述协方差矩阵HHT进行特征值分解,求得对应的M个特征向量ω,然后将M个特征值λ进行降序排序,排序结果为λ1≥λ2≥...≥λM,最后,设定一个阈值为0.95,通过计算贡献率
Figure BDA0002209655340000023
确定满足贡献率不小于所述阈值的数值d,取最大的d个特征值所对应的特征向量ω12,...,ωd,得到投影矩阵W*=(ω12,...,ωd),所述d为通过主成分分析法进行特征选择后的维度。
步骤S2:执行ADASYN过采样和无放回随机采样相结合的组合采样方法;
所述ADASYN方法步骤具体包括:
步骤S201:从所述软件缺陷数据集中选取的样本中构造一个含有0和1两个类别的训练数据集D,其中包括m个所述样本{xi,yi},i=1,2,...,m,其中xi为n维空间的一个样本,yi∈{0,1}为所述样本xi的标签,yi=0代表为少数类,yi=1为多数类,其中m0和m1分别代表少类和多类样本数量;
步骤S202:计算类不平衡度l=m0/m1,式中l∈(0,1];
步骤S203:计算需要合成的所述少类样本总量G:G=(m1-m0)×β,式中β∈[0,1]为系数;
步骤S204:找出每个所述少类别样本xi的K近邻,并计算:Γi=Δi/K,i=1,2,...,m,其中Δi是xi的K近邻中多类样本的数目,因此,Γi∈(0,1];
步骤S205:根据
Figure BDA0002209655340000024
正则化Γi,则
Figure BDA0002209655340000025
为概率分布,并且
Figure BDA0002209655340000026
步骤S206:计算每个所述少类样本xi需要合成的样本数目:
Figure BDA0002209655340000027
并从每个所述少类样本xi的K近邻中随机选择一个少类样本xj,合成gi个新的少类样本,所述合成新的少类样本为Sz=xi+(xj-xi)×λ,λ∈[0,1]为随机数。
ADASYN方法是一种自适应数据合成方法。该方法对训练数据集根据少类样本的分布自适应地合成少类样本,并且能在容易分类的地方合成较少的样本,在难分类的地方合成更多的样本,使学习算法将重点聚焦于少类中难以学习的样本上。ADASYN方法的关键在于找到一个概率分布,从而将作为每个少类样本应该合成样本数目的判定准则,最终得到新增样本集。对训练数据进行ADASYN采样,将合成的少数类样本添加到原始样本集中,使数据集达到平衡,然后利用无放回随机采样,进一步对数据进行处理,通过对采样率的设定,降低了采样容量,提取更小的数据集D1。同时保证数据集的平衡,为分类准备了规模和分布合理的数据集,提高了模型预测效率。
所述无放回随机采样包括以下具体步骤:
步骤S207:将所述合成新的少数类样本添加到所述训练数据集D中;
步骤S208:利用无放回随机采样,设定采样率,降低采样容量,提取更小的数据集D1
步骤S3:对处理后的数据选取基于规则学习的基分类器进行集成,构建软件缺陷预测模型。
采用基于规则学习的基分类器,由于其可以先处理最不频繁的类,最后处理最频繁的类,正是规则学习的特殊性使其在处理不平衡数据时具有良好的性能;其包括以下具体步骤:
步骤S301:采用规则学习的基分类器,包括以下具体步骤:
本发明提出的方法采用基于规则学习的基分类器对软件缺陷数据集进行分类。分为两个阶段,第一个阶段是通过训练样本的归纳和学习,总结特征与类之间的相关性,从而形成if-then规则。第二阶段是利用形成的规则对未知样本进行匹配,达到分类的目的。一般规则生成公式如(1):
Figure BDA0002209655340000031
其中,箭头左边项称为规则前件;xi表示特征;ai表示特征值;箭头右边项称为规则后件;即为结论,表示样本所属的类别。
步骤S3011:根据类的出现频率进行递增排序;
对于软件缺陷预测中的二分类问题,此算法首先根据类的出现频率进行递增排序。由于软件缺陷数据集中的非缺陷模块相对较少,因此缺陷类先于非缺陷模块。使得其可以先处理最不频繁的类,最后处理最频繁的类。此规则学习的特殊性使其在处理不平衡数据时具有良好的性能。
步骤S3012:清空规则集,然后向规则集添加前件,直到规则集可以扩展到覆盖整个数据集为止;
基于规则学习算法主要包括规则生成和规则剪枝。在生成规则时,首先清空规则集,然后向规则集添加前件,直到规则集可以扩展到覆盖整个数据集为止。
步骤S3013:进行规则剪枝。在规则剪枝过程中,规则和前件被不断删除。利用数值C判断是否到达到了最精简的规则,当C不再变大时,停止剪枝;所述数值C为:
Figure BDA0002209655340000032
其中,hk是规则所覆盖的样本个数,hp是没有被覆盖样本个数,当函数C不再变大时,停止剪枝。
步骤S302:进行集成学习。
本发明提出的集成学习方法结合了wagging(一种减少方差的技术)和AdaBoost(一种同时减少偏差和方差的技术)两种方法,有效降低偏差和方差,从而达到降低分类误差的目的;在建立预测模型时,方差、偏差和均方误差越小,模型越稳定。因此,本发明提出的方法考虑结合wagging(一种减少方差的技术)和AdaBoost(一种同时减少偏差和方差的技术)两种方法,通过AdaBoost所产生的基分类器组采用wagging形式加权机制实现集成。
步骤S3021:设T为需要进行集成的基分类器个数,并将基分类器分为k组,Ii为第i组迭代终止标志变量,在进行集成时,T个基分类器最多迭代T轮,Ii计算公式如(3)所示:
Figure BDA0002209655340000041
已有学者证明,每次迭代训练的基分类器对整个组合模型的性能的提高都小于前一次迭代。本发明提出的集成方法对AdaBoost进行了改进,不是和AdaBoost一样总是根据基分类器的数量进行T次迭代,而是对迭代使用迭代终止标志变量。
步骤S3022:将所述训练数据集D1={(x1,y1),(x2,y2),...,(xa,ya)}中每个样本的权重均设置为1,形成数据集S′,当每个基分类器组迭代终止时,对S′中的数据重新进行服从连续泊松分布的权重设置且进行归一化处理,再进行下一个基分类器组的迭代。在每次基分类器迭代中,每个基分类器的误差为
Figure BDA0002209655340000042
基分类器对最终组合分类模型的输出权重设为βt(t=1,...,T),根据εt每次取值范围的不同,分为3种情况:
若εt>0.5,则直接将该分类器舍弃,并对训练集S′进行服从连续泊松分布的权重设置且进行归一化处理,进入下一个基分类器组,直至εt≤0.5;
若εt=0,则βt=10-10,并再对训练集S′进行服从连续泊松分布的权重设置且进行归一化处理,再进入下一个基分类器组;
若0<εt≤0.5,则设置
Figure BDA0002209655340000043
对S′中的每个样本,被错误分类的样本的权重除以2εt,被正确分类的样本乘以2(1-εt),但最小权重为10-8.最终的分类函数为:
Figure BDA0002209655340000051
优选的,所述步骤2中的ADASYN过采样和无放回随机采样相结合的组合采样方法的采样率设定为[0.7,1.0],步长为0.1,当采样率为0.9时效果最好。
优选的,所述步骤S3021中的迭代次数T的设定为[10,30],步长为10,其中迭代次数为20时,效果最佳。
本发明与现有技术相比,具有如下优点:
本技术方案采用主成分分析(PCA)法从原始特征中提取最有效特征从而达到降维和去除冗余目的,执行ADASYN过采样和无放回随机采样相结合的组合采样方法,从而解决软件缺陷数据的类分布不平衡性问题,同时通对采样率的设定在降低损失代价的同时也提高了软件缺陷预测效率,将基于规则的分类方法作为集成学习的基分类器,构建软件缺陷预测模型,此规则学习算法可以先处理最不频繁的类,最后处理最频繁的类,正是由于它具有的特殊性使其在处理不平衡数据时具有良好的性能,进行集成学习时采用了一种既吸收了wagging方法降低方差的能力又吸收了AdaBoost方法减小偏差的能力的方法,从而达到有效提升模型的预测效果的目的。
附图说明
图1为本发明实施例中的面向软件缺陷类分布不平衡的规则学习分类器集成方法的流程示意图;以及
图2为本发明实施例中的基于规则学习算法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
由于人们对软件的认识程度日益深入,软件模块的包含的特征属性也越来越多,软件缺陷数据集表现出高维性问题。然而,其中一些特性可能与类(缺陷或非缺陷)更相关,但是其他特性可能是冗余的或不相关的,这些不相关特征有时会掩盖真正重要的分类特征,过多维数造成维数灾难问题使得算法性能降低。
本发明实施例提出的一种面向软件缺陷类分布不平衡的规则学习分类器集成方法,图1为本发明实施例中的规则学习分类器集成方法的具体流程示意图。
步骤S1:采用主成分分析(PCA)法从原始特征中提取最有效特征从而达去除无关和冗余属性,达到降维去噪目的;
采用主成分分析(PCA)方法进行特征提取,主要思想是将m维特征映射到新的d(d<m)维正交特征上。通过保留W*与样本的均值向量就可通过进行简单的向量减法和线性映射将高维空间的样本投影到低维空间。最小的特征值所对应的特征向量往往和噪声相关,当数据受到噪声影响时,由于PCA算法舍弃了对应于最小的m-d个特征值所对应的特征向量,因此,达到了去噪的效果,保证了被采样的数据质量。具体包括如下步骤:
步骤S101:将本发明实施例的软件缺陷数据集以矩阵XN×M形式输入,其中矩阵的行数N表示软件缺陷数据集中样本的个数,列数M表示每个样本的特征数目;
步骤S102:按列计算矩阵XN×M的均值,从而得到均值矩阵
Figure BDA0002209655340000061
并将矩阵XN×M中的每一行元素均减去
Figure BDA0002209655340000062
得到进行中心化的样本HN×M
步骤S103:计算中心化后样本HN×M的协方差矩阵HHT,并对协方差矩阵进行特征值分解,求得对应的M个特征向量ω,然后将M个特征值λ进行降序排序,排序结果为λ1≥λ2≥...≥λM,最后,其设定一个阈值为0.95,并通过计算贡献率
Figure BDA0002209655340000063
确定满足贡献率不小于此阈值的d值,取最大的d个特征值所对应的特征向量ω12,...,ωd,从而得到投影矩阵W*=(ω12,...,ωd),其中d为通过主成分分析法进行特征选择后的维度。
步骤S2:执行ADASYN过采样和无放回随机采样相结合的组合采样方法,从而解决软件缺陷数据的类分布不平衡性问题,同时通对采样率的设定在降低损失代价的同时也提高了软件缺陷预测效率;
ADASYN方法是一种自适应数据合成方法。该方法对训练数据集根据少类样本的分布自适应地合成少类样本,并且能在容易分类的地方合成较少的样本,在难分类的地方合成更多的样本,使学习算法将重点聚焦于少类中难以学习的样本上。ADASYN方法的关键在于找到一个概率分布,从而将作为每个少类样本应该合成样本数目的判定准则,最终得到新增样本集。
ADASYN方法包括以下具体步骤:
步骤S201:从软件缺陷数据集中选取的样本中构造一个含有0和1两个类别的训练数据集D,其中包括m个样本{xi,yi},i=1,2,...,m,其中xi为n维空间的一个样本,yi∈{0,1}为样本xi的标签,yi=0代表为少数类,yi=1为多数类,其中m0和m1分别代表少类和多类样本数量;
步骤S202:计算类不平衡度l=m0/m1,式中l∈(0,1];
步骤S203:计算需要合成的少类样本总量G:G=(m1-m0)×β,式中β∈[0,1]为系数;
步骤S204:找出每个少类别样本xi的K近邻,并计算:Γi=Δi/K,i=1,2,...,m,其中Δi是xi的K近邻中多类样本的数目,因此,Γi∈(0,1];
步骤S205:根据
Figure BDA0002209655340000071
正则化Γi,则
Figure BDA0002209655340000074
为概率分布,并且
Figure BDA0002209655340000072
步骤S206:计算每个少类样本xi需要合成的样本数目:
Figure BDA0002209655340000073
并从每个少类样本xi的K近邻中随机选择一个少类样本xj,合成gi个新的少类样本,合成新的少类样本为Sz=xi+(xj-xi)×λ,λ∈[0,1]为随机数。
对训练数据进行ADASYN采样,将合成的少数类样本添加到原始样本集中,使数据集达到平衡,然后利用无放回随机采样,进一步对数据进行处理,通过对采样率的设定,降低了采样容量,提取更小的数据集D1,同时保证数据集的平衡,为分类准备了规模和分布合理的数据集,提高了模型预测效率。
无放回随机采样包括以下具体步骤:
步骤S207:将合成新的少数类样本添加到训练数据集D中;
步骤S208:利用无放回随机采样,设定采样率,降低采样容量,提取更小的数据集D1采样率的设定为[0.7,1.0],步长为0.1,当采样率为0.9时效果最好。
步骤S3:对处理后的数据选取基于规则学习的基分类器进行集成,构建软件缺陷预测模型。
此算法首先根据类的出现频率进行递增排序。由于软件缺陷数据集中的非缺陷模块相对较少,因此缺陷类先于非缺陷模块。这样就可以先处理最不频繁的类,最后处理最频繁的类。此基于规则算法的特殊性使其在处理不平衡数据时具有良好的性能。规则学习算法流程图如附图2所示。
本发明实施例在建立预测模型时,方差、偏差和均方误差越小,模型越稳定。因此,本文考虑采用一种结合wagging(一种减少方差的技术)和AdaBoost(一种同时减少偏差和方差的技术)两种方法的集成方法,通过AdaBoost所产生的基分类器组采用wagging形式加权机制实现集成,从而效降低偏差和方差,从而达到降低分类误差的目的。
步骤S301:采用规则学习的基分类器,包括以下具体步骤:
步骤S3011:根据类的出现频率进行递增排序;
步骤S3012:清空规则集,然后向规则集添加前件,直到规则集可以扩展到覆盖整个数据集为止;
步骤S3013:进行规则剪枝,利用数值C判断是否到达到了最精简的规则,当C不再变大时,停止剪枝;数值C为:
Figure BDA0002209655340000081
公式中,hk是规则所覆盖的样本个数,hp是没有被覆盖样本个数;
步骤S302:进行集成,包括以下具体步骤:
步骤S3021:设T为需要进行集成的基分类器个数,并将基分类器分为k组,Ii为第i组迭代终止标志变量,在进行集成时,T个基分类器最多迭代T轮,Ii计算公式如下:
Figure BDA0002209655340000082
步骤S3022:将训练数据集D1={(x1,y1),(x2,y2),...,(xa,ya)}中的每个样本的权重均设置为1,形成数据集S′,当每个基分类器组迭代终止时,对S′中的数据重新进行服从连续泊松分布的权重设置且进行归一化处理,再进行下一个基分类器组的迭代;在每次基分类器迭代中,每个基分类器的误差为
Figure BDA0002209655340000083
基分类器对最终组合分类模型的输出权重设为βt(t=1,...,T),根据εt每次取值范围的不同,分为3种情况:
若εt>0.5,则直接将分类器舍弃,并对训练集S′进行服从连续泊松分布的权重设置且进行归一化处理,进入下一个基分类器组,直至εt≤0.5;
若εt=0,则βt=10-10,并再对训练集S′进行服从连续泊松分布的权重设置且进行归一化处理,再进入下一个基分类器组;
若0<εt≤0.5,则设置
Figure BDA0002209655340000084
对训练集S′中的每个样本,被错误分类的样本的权重除以2εt,被正确分类的样本乘以2(1-εt),但最小权重为10-8,最终的分类函数为:
Figure BDA0002209655340000085
其中迭代次数T的设定为[10,30],步长为10,其中迭代次数为20时,效果最佳。
为了说明本发明实施例提出的出方法的有效性,采用多个指标对模型性能进行了评估。实验结果表明,在准确率、F-measure、AUC值、Balance值上效果都有所提升,特别表现在F-measure值和Balance值。本发明实施例提出的方法在在F-measure指标的均值上高达0.9,较同类算法相比,至少提高了18.42%,AUC值至少提高了7.87%,高达0.96。证明了本发明实施例提出的方法,既考虑了无缺陷模块正确分类又兼顾缺陷模块的正确分类,因此,达到了全面提高预测模型分类性能的目标,为软件的安全性预测分析提供了良好的理论依据。
以上所述,仅为本发明的具体实施方式的实例,本发明的局限并不局限于此。熟悉该技术领域的技术人员在本发明揭露的技术范围之内,可轻易找到变化和替换方式,这些都应涵盖在本发明的保护范围之内。为此,本发明的保护范围应以权利要求的保护范围为准。

Claims (3)

1.一种面向软件缺陷类分布不平衡的规则学习分类器集成方法,其特征在于,其包括如下步骤:
步骤S1:采用主成分分析法从软件模块所包含的原始特征中提取最有效特征,具体包括如下步骤:
步骤S101:构建软件缺陷数据集矩阵XN×M,所述矩阵的行数N表示所述软件缺陷数据集中样本的个数,所述矩阵的列数M表示每个所述样本的特征数目;
步骤S102:按列计算所述矩阵XN×M的均值,从而得到均值矩阵
Figure FDA0003937242820000011
并将所述矩阵XN×M中的每一行元素均减去所述均值矩阵
Figure FDA0003937242820000012
得到样本HN×M,并对其进行中心化;
步骤S103:计算中心化后的样本HN×M的协方差矩阵HHT,并对所述协方差矩阵HHT进行特征值分解,求得对应的M个特征向量ω,然后将M个特征值λ进行降序排序,排序结果为λ1≥λ2≥...≥λM,最后,设定一个阈值为0.95,通过计算贡献率
Figure FDA0003937242820000013
确定满足贡献率不小于所述阈值的数值d,取最大的d个特征值所对应的特征向量ω12,...,ωd,得到投影矩阵W*=(ω12,...,ωd),所述d为通过主成分分析法进行特征选择后的维度;
步骤S2:执行ADASYN过采样和无放回随机采样相结合的组合采样方法,包括以下具体步骤:
步骤S201:从所述软件缺陷数据集中选取的样本中构造一个含有0和1两个类别的训练数据集D,其中包括m个所述样本{xi,yi},i=1,2,...,m,其中xi为n维空间的一个样本,yi∈{0,1}为所述样本xi的标签,yi=0代表为少数类,yi=1为多数类,其中m0和m1分别代表少数类和多数类样本数量;
步骤S202:计算类不平衡度l=m0/m1,式中l∈(0,1];
步骤S203:计算需要合成的所述少数类样本总量G:G=(m1-m0)×β,式中β∈[0,1]为系数;
步骤S204:找出每个所述少数类样本xi的K近邻,并计算:Γi=Δi/K,i=1,2,...,m,其中Δi是xi的K近邻中多数类样本的数目,因此,Γi∈(0,1];
步骤S205:根据
Figure FDA0003937242820000014
正则化Γi,则
Figure FDA0003937242820000015
为概率分布,并且
Figure FDA0003937242820000016
步骤S206:计算每个所述少数类样本xi需要合成的样本数目:
Figure FDA0003937242820000017
并从每个所述少数类样本xi的K近邻中随机选择一个少数类样本xj,合成gi个新的少数类样本,所述合成新的少数类样本为Sz=xi+(xj-xi)×λ,λ∈[0,1]为随机数;
步骤S207:将所述合成新的少数类样本添加到所述训练数据集D中;
步骤S208:利用无放回随机采样,设定采样率,降低采样容量,提取更小的数据集D1
步骤S3:对处理后的数据选取基于规则学习的基分类器进行集成,构建软件缺陷预测模型,包括以下具体步骤:
步骤S301:采用规则学习的基分类器,包括以下具体步骤:
步骤S3011:根据类的出现频率进行递增排序;
步骤S3012:清空规则集,然后向规则集添加前件,直到规则集可以扩展到覆盖整个数据集为止;
步骤S3013:进行规则剪枝,利用数值C判断是否到达到了最精简的规则,当C不再变大时,停止剪枝;所述数值C为:
Figure FDA0003937242820000021
所述公式中,hk是规则所覆盖的样本个数,hp是没有被覆盖样本个数;
步骤S302:进行集成,包括以下具体步骤:
步骤S3021:设T为需要进行集成的基分类器个数,并将基分类器分为k组,Ii为第i组迭代终止标志变量,在进行集成时,T个基分类器最多迭代T轮,Ii计算公式如下:
Figure FDA0003937242820000022
步骤S3022:将所述训练数据集D1={(x1,y1),(x2,y2),...,(xa,ya)}中的每个样本的权重均设置为1,形成数据集S′,当每个基分类器组迭代终止时,对S′中的数据重新进行服从连续泊松分布的权重设置且进行归一化处理,再进行下一个基分类器组的迭代;在每次基分类器迭代中,每个基分类器的误差为
Figure FDA0003937242820000023
基分类器对最终组合分类模型的输出权重设为βt,其中t=1,...,T,根据εt每次取值范围的不同,分为3种情况:
若εt>0.5,则直接将所述分类器舍弃,并对所述训练数据集S′进行服从连续泊松分布的权重设置且进行归一化处理,进入下一个基分类器组,直至εt≤0.5;
若εt=0,则βt=10-10,并再对所述训练数据集S′进行服从连续泊松分布的权重设置且进行归一化处理,再进入下一个基分类器组;
若0<εt≤0.5,则设置
Figure FDA0003937242820000031
对S′中的每个样本,被错误分类的样本的权重除以2εt,被正确分类的样本乘以2(1-εt),但最小权重为10-8,最终的分类函数为:
Figure FDA0003937242820000032
2.根据权利要求1所述的面向软件缺陷类分布不平衡的规则学习分类器集成方法,其特征在于,所述步骤2中所述的ADASYN过采样和无放回随机采样相结合的组合采样方法的采样率设定为[0.7,1.0],步长为0.1。
3.根据权利要求1所述的面向软件缺陷类分布不平衡的规则学习分类器集成方法,其特征在于,所述步骤S3021中的迭代次数T的设定为[10,30],步长为10。
CN201910893983.9A 2019-09-20 2019-09-20 面向软件缺陷类分布不平衡的规则学习分类器集成方法 Active CN110674865B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910893983.9A CN110674865B (zh) 2019-09-20 2019-09-20 面向软件缺陷类分布不平衡的规则学习分类器集成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910893983.9A CN110674865B (zh) 2019-09-20 2019-09-20 面向软件缺陷类分布不平衡的规则学习分类器集成方法

Publications (2)

Publication Number Publication Date
CN110674865A CN110674865A (zh) 2020-01-10
CN110674865B true CN110674865B (zh) 2023-04-07

Family

ID=69077065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910893983.9A Active CN110674865B (zh) 2019-09-20 2019-09-20 面向软件缺陷类分布不平衡的规则学习分类器集成方法

Country Status (1)

Country Link
CN (1) CN110674865B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782548B (zh) * 2020-07-28 2022-04-05 南京航空航天大学 一种软件缺陷预测数据处理方法、装置及存储介质
CN112688911B (zh) * 2020-11-03 2023-04-18 桂林理工大学 一种基于PCA+ADASYN和Xgboost的网络入侵检测系统
CN112380132B (zh) * 2020-11-20 2024-03-29 北京轩宇信息技术有限公司 基于航天软件缺陷数据集类不平衡的对抗验证方法及装置
CN113204481B (zh) * 2021-04-21 2022-03-04 武汉大学 一种基于数据重采样的类不平衡软件缺陷预测方法
CN113837266B (zh) * 2021-09-22 2022-05-20 西南民族大学 一种基于特征提取和Stacking集成学习的软件缺陷预测方法
CN115617698B (zh) * 2022-12-15 2023-04-18 北京航空航天大学 一种基于关联规则网络的软件缺陷度量元选择方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991296A (zh) * 2017-04-01 2017-07-28 大连理工大学 基于随机化贪心特征选择的集成分类方法
CN108460421A (zh) * 2018-03-13 2018-08-28 中南大学 不平衡数据的分类方法
CN109933539A (zh) * 2019-04-15 2019-06-25 燕山大学 一种基于主成分分析和组合采样的软件缺陷预测方法
CN109977028A (zh) * 2019-04-08 2019-07-05 燕山大学 一种基于遗传算法和随机森林的软件缺陷预测方法
CN110060772A (zh) * 2019-01-24 2019-07-26 暨南大学 一种基于社交网络的职业心理性格分析方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10122762B2 (en) * 2016-06-15 2018-11-06 Empow Cyber Security Ltd. Classification of security rules

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991296A (zh) * 2017-04-01 2017-07-28 大连理工大学 基于随机化贪心特征选择的集成分类方法
CN108460421A (zh) * 2018-03-13 2018-08-28 中南大学 不平衡数据的分类方法
CN110060772A (zh) * 2019-01-24 2019-07-26 暨南大学 一种基于社交网络的职业心理性格分析方法
CN109977028A (zh) * 2019-04-08 2019-07-05 燕山大学 一种基于遗传算法和随机森林的软件缺陷预测方法
CN109933539A (zh) * 2019-04-15 2019-06-25 燕山大学 一种基于主成分分析和组合采样的软件缺陷预测方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
A comparative analysis of evolutionary algorithms for the prediction of software change;Loveleen Kaur等;《2018 International Conference on Innovations in Information Technology (IIT)》;20190110;全文 *
Change Taxonomy: A Fine-Grained Classification of Software Change;Mohamed Elkholy等;《IT Professional》;20180831;第20卷(第4期);全文 *
基于RIPPER的网络流量分类方法;曹彦珍等;《哈尔滨理工大学学报》;20171025(第05期);全文 *
基于多粒度一致覆盖约简的混合数据规则学习;王晨曦等;《闽南师范大学学报(自然科学版)》;20160630(第02期);全文 *
基于层次聚类的不平衡数据加权过采样方法;夏英等;《计算机科学》;20190415(第04期);全文 *
基于差分演化的自适应集成学习算法在不均衡数据分类中的应用;郭海湘等;《系统工程理论与实践》;20180525(第05期);全文 *

Also Published As

Publication number Publication date
CN110674865A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
CN110674865B (zh) 面向软件缺陷类分布不平衡的规则学习分类器集成方法
JP6969637B2 (ja) 因果関係分析方法および電子デバイス
US20220391767A1 (en) System and method for relational time series learning with the aid of a digital computer
CN106570178B (zh) 一种基于图聚类的高维文本数据特征选择方法
CN111914253B (zh) 一种入侵检测的方法、系统、设备及可读存储介质
CN108228541B (zh) 生成文档摘要的方法和装置
CN112417028B (zh) 一种风速时序特征挖掘方法及短期风电功率预测方法
US8121967B2 (en) Structural data classification
JP5503633B2 (ja) トピックモデル学習方法、装置、及びプログラム
JP2009163615A (ja) 共クラスタリング装置、共クラスタリング方法、共クラスタリングプログラム、および、そのプログラムを記録した記録媒体
CN107357895B (zh) 一种基于词袋模型的文本表示的处理方法
CN112036476A (zh) 基于二分类业务的数据特征选择方法、装置及计算机设备
Huang et al. Weighting method for feature selection in k-means
CN112115359B (zh) 一种基于多阶近邻预测的推荐系统及方法
CN111079143B (zh) 一种基于多维特征图的木马检测方法
CN114254705A (zh) 异常数据的检测方法、装置、存储介质及计算机设备
CN109299260B (zh) 数据分类方法、装置以及计算机可读存储介质
JP3889663B2 (ja) 分類装置、分類方法、分類プログラム及びそのプログラムを記録した記録媒体
CN113688229B (zh) 一种文本推荐方法、系统、存储介质和设备
CN116662859B (zh) 非遗文化数据特征选择方法
De et al. Comparison among clustering and classification techniques on the basis of galaxy data
JP2010055253A (ja) 不要語決定装置及びプログラム
Kowalski et al. Feature selection for regression tasks base on explainable artificial intelligence procedures
Meng et al. ISSA-TCNFormer based-server anomaly detection
Luzio et al. Decoupling Decision-Making in Fraud Prevention through Classifier Calibration for Business Logic Action

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