CN105760303A - 基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法 - Google Patents
基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法 Download PDFInfo
- Publication number
- CN105760303A CN105760303A CN201610124371.XA CN201610124371A CN105760303A CN 105760303 A CN105760303 A CN 105760303A CN 201610124371 A CN201610124371 A CN 201610124371A CN 105760303 A CN105760303 A CN 105760303A
- Authority
- CN
- China
- Prior art keywords
- data
- software
- mutual information
- class
- characteristic
- 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
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/3668—Software testing
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法,可用于指导面向软件缺陷数据的特征选择,包括以下步骤:A.从软件数据集中获取数据,对数据进行预处理,包括对数据做标签处理和根据已有经验知识将软件特征分成三类;B.迭代训练弱分类器,每次迭代选择出最优弱分类器及选择出候选最优特征,根据互信息理论,计算该候选最优特征与目标特征子集中相同类别的特征间的最大相关性,根据条件判断是否将其加入目标特征子集;利用改进的Adaboost样本更新策略更新样本权重;最终输出目标特征子集及强分类器。本发明克服软件特征间的相关性,去除冗余特征,并解决了分类时软件缺陷数据的不平衡性,对于检测少数类(有缺陷的模块)具有很好的性能。
Description
技术领域
本发明属于软件工程应用领域,具体涉及一种基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法。
背景技术
目前,软件系统规模日益增大并且其逻辑复杂性也日益增强,伴随着软件中存在缺陷的模块增加,这势必威胁软件的可靠性,影响软件质量,造成不可估量的损失。软件缺陷预测技术作为指导和评估软件测试工作的一种重要的途径,可以准确地预测软件缺陷的分布情况,这对于提高软件质量有着重要的现实意义。针对一个软件系统,合理地预测缺陷可以统计尚未发现但仍存在的缺陷数目及缺陷分布。软件缺陷预测的关键是发现有缺陷的模块,这本质上是一个二分类问题,即将软件模块分为“有缺陷”和“无缺陷”两类。分类的前提是进行特征选择,根据选择出的最优特征子集进行分类。Adaboost是一种性能良好的集成分类算法,也可用于特征选择。但在实际操作中,基于Adaboost的面向软件缺陷数据的特征选择存在以下两个问题:
(1)被选择出的软件特征存在大量冗余
在根据Adaboost进行软件缺陷数据的特征选择时,在每轮迭代中,要根据分类错误率挑选出最优的弱分类器,因为一个弱分类器对应一个软件特征,因此,该过程即为挑选最优特征的过程。具备良好分类性能的特征被逐一挑选出来,但这些特征间必然存在很强的相关性。2004年,美国宇航局公开了软件数据集(NASAMDP),他们从源代码中提取的各种软件特征,主要包括三大类--LOC,McCabe和Halstead。在每一类软件特征中,除了基本特征是从源代码中直接抽取,其他的特征都是由这些基本特征值间接计算获得。可见,每一类软件特征中,存在着较多的冗余特征,被选择出的特征间也存在着冗余。
(2)软件模块数据存在严重的不平衡性
在实际的软件模块中,“有缺陷”的模块(少数类)数量要远远少于“无缺陷”(多数类)的模块,因此,软件缺陷数据的分类也是不平衡数据的分类问题,这也是数据挖掘近年来的研究热点。而在Adaboost算法运行过程中,少数类样本和多数类样本被寄予相同的关注度,具体在算法实现时,Adaboost采用相同的权重更新策略。这就导致应当寄予高度关注的少数类(有缺陷模块)而被忽略,即使最终得到一个好的全局分类正确率,但对我们所关心的问题,有缺陷的模块是否被很好地检测出来而被忽略。
针对以上两个问题,研究出符合软件缺陷数据特性的特征选择方法,这对于提高软件缺陷数据的分类效果,意义重大。
发明内容
本发明的目的是解决基于Adaboost算法的软件缺陷数据特征选择方法所存在的问题:被选择出的特征存在冗余以及数据不平衡性,提供基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法,以减少冗余特征,提高不平衡数据的分类效果。
为实现上述目的,本发明技术方案主要包括以下两个步骤:
A.从软件数据集中获取数据,对数据进行预处理
(1)数据包括软件特征集、软件模块,将软件模块数据分为训练集和测试集以备训练和测试。本发明采用十次交叉验证,将数据集分成十份,其中九份做训练,一份做准确度测试。并将数据做标签处理。
(2)根据已有知识将特征集分类,得到三个特征集,分别是LOC类,McCabe类和Halstead类。
B.根据最大互信息理论与改进的Adaboost进行面向软件缺陷数据的特征选择(1)初始化样本权重{D1(i)}及目标特征子集S
其中,n为样本个数。
(2)当t=1…toT,执行以下步骤:
(a)在基于权重的训练集上,训练弱分类器根据分类错误率εt挑选出最优的弱分类器,即选出候选最优特征
εt=∑Dt(i)I[ht(xi)≠yi]公式(3)
(b)判断候选最优特征f属于何种软件特征,L类,M类还是H类。然后根据互信息理论计算候选最优特征f与目标子集S中与f属于相同类别的特征间的最大相关性max-cor。
max-cor=max(MI(f,fp))公式(4)
其中,fp∈S,且fp和f是同类别软件特征,MI为两个变量间的互信息,如下公式
其中,p(x)和p(y)为x和y的边缘分布概率,p(x,y)是x和y的联合分布概率。
(c)根据步骤(b)中得到的最大相关性max-cor,与设定的阈值β进行比较。当max-cor小于阈值β时,将候选最优特征f加入目标特征子集S,并从特征集F中删除f,同时根据εt计算弱分类器的加权系数αt,将此轮得到的弱分类器ht累加至上一轮获得的强分类器Ht-1(x),得到Ht(x),继续执行步骤(d),过程如下:
F=F-{f}公式(6)
S=S+{f}公式(7)
Ht(x)=Ht-1(x)+αtht公式(9)
当max-cor小于阈值β时,只将f从特征集F中删除,过程如下,然后返回至步骤(a)。
F=F-{f}公式(10)
(d)按以下策略,更新样本权重{Dt+1(i)}
(3)输出最终强分类器H(x)及目标特征子集S。
附图说明
图1是基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法流程图。
具体实施方式
下面结合图1对本发明作进一步详细的描述。
第一步:从软件数据集中获取数据,对数据进行预处理
(1)首先获取软件特征集及软件模块数据。其中,特征集F={f1,f2…fm}。软件模块数据集X={x1,x2…xn},Y={+1,-1}。若软件模块xi无缺陷,则(xi,yi)=(xi,-1),反之,(xi,yi)=(xi,+1)。
(2)根据已有知识将特征集分类,分别是LOC类,McCabe类和Halstead类,简写为L,M,H。
第二步:根据最大互信息理论与改进的Adaboost进行面向软件缺陷数据的特征选择
(1)初始化样本权重{D1(i)}及目标特征子集S
其中,n为样本个数。
(2)当t=1…toT时,执行:
(a)在基于权重的训练集上,训练弱分类器根据分类错误率εt选择出最优的弱分类器,即选择候选最优特征
εt=∑Dt(i)I[ht(xi)≠yi]
(b)判断候选最优特征f属于何种软件特征,L类,M类还是H类。然后根据互信息理论计算候选最优特征f与目标特征子集S中与f属于相同类别的特征间的最大相关性max-cor,如下:
max-cor=max(MI(f,fp))
其中,fp∈S,且fp和f是同类别软件特征,MI为两个变量间的互信息,如下公式:
其中,p(x)和p(y)为x和y的边缘分布概率,p(x,y)是x和y的联合分布概率。
(c)根据步骤(b)中得到的最大相关性max-cor,与设定的阈值进行比较。当max-cor小于阈值β时,将候选最优特征f加入目标特征子集S,从特征集F中删除f,同时根据εt计算弱分类器的加权系数αt,将此轮得到的弱分类器ht累加至上一轮获得的强分类器Ht-1(x),得到Ht(x),继续执行步骤(d),上述过程如下:
F=F-{f}
S=S+{f}
Ht(x)=Ht-1(x)+αtht
当max-cor小于阈值β时,只将f从特征集F中删除,执行如下,然后返回至步骤(a)。
F=F-{f}
(d)按以下策略,更新样本权重{Dt+1(i)}
(3)输出最终强分类器H(x)及目标特征子集S。
本发明提供了一种面向软件缺陷数据的特征选择及分类方法,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,这些改进也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用于现有技术加以实现。
Claims (1)
1.基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法,其特征在于,主要包括以下两个步骤:
A.从软件数据集中获取数据,对数据进行预处理
(1)数据包括软件特征集、软件模块,将软件模块数据分为训练集和测试集以备训练和测试;本发明采用十次交叉验证,将数据集分成十份,其中九份做训练,一份做准确度测试;并将数据做标签处理;
(2)根据已有知识将特征集分类,得到三个特征集,分别是LOC类,McCabe类和Halstead类;
B.根据最大互信息理论与改进的Adaboost进行面向软件缺陷数据的特征选择
(1)初始化样本权重{D1(i)}及目标特征子集S
其中,n为样本个数;
(2)当t=1…toT,执行以下步骤:
(a)在基于权重的训练集上,训练弱分类器根据分类错误率εt挑选出最优的弱分类器,即选出候选最优特征
εt=ΣDt(i)I[ht(xi)≠yi]
(b)判断候选最优特征f属于何种软件特征,L类,M类还是H类;然后根据互信息理论计算候选最优特征f与目标子集S中与f属于相同类别的特征间的最大相关性max-cor;
max-cor=max(MI(f,fp))
其中,fp∈S,且fp和f是同类别软件特征,MI为两个变量间的互信息,如下公式:
其中,p(x)和p(y)为x和y的边缘分布概率,p(x,y)是x和y的联合分布概率;
(c)根据步骤(b)中得到的最大相关性max-cor,与设定的阈值β进行比较;当max-cor小于阈值β时,将候选最优特征f加入目标特征子集S,并从特征集F中删除f,同时根据εt计算弱分类器的加权系数αt,将此轮得到的弱分类器ht累加至上一轮获得的强分类器Ht-1(x),得到Ht(x),继续执行步骤(d),过程如下:
F=F-{f};
S=S+{f};
Ht(x)=Ht-1(x)+αtht;
当max-cor小于阈值β时,只将f从特征集F中删除,过程如下,然后返回至步骤(a);
F=F-{f};
(d)按以下策略,更新样本权重{Dt+1(i)}
(3)输出最终强分类器H(x)及目标特征子集S。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610124371.XA CN105760303A (zh) | 2016-03-04 | 2016-03-04 | 基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610124371.XA CN105760303A (zh) | 2016-03-04 | 2016-03-04 | 基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105760303A true CN105760303A (zh) | 2016-07-13 |
Family
ID=56332628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610124371.XA Pending CN105760303A (zh) | 2016-03-04 | 2016-03-04 | 基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760303A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107862337A (zh) * | 2017-11-10 | 2018-03-30 | 中国电子科技集团公司第四十研究所 | 一种基于强相关性的动态赋权红外光谱特征选择方法 |
CN110197706A (zh) * | 2019-04-26 | 2019-09-03 | 深圳市宁远科技股份有限公司 | 一种基于sbs的层次化特征选择方法、系统及应用 |
-
2016
- 2016-03-04 CN CN201610124371.XA patent/CN105760303A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107862337A (zh) * | 2017-11-10 | 2018-03-30 | 中国电子科技集团公司第四十研究所 | 一种基于强相关性的动态赋权红外光谱特征选择方法 |
CN110197706A (zh) * | 2019-04-26 | 2019-09-03 | 深圳市宁远科技股份有限公司 | 一种基于sbs的层次化特征选择方法、系统及应用 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106203523B (zh) | 基于梯度提升决策树半监督算法融合的高光谱图像分类方法 | |
CN108447057B (zh) | 基于显著性和深度卷积网络的sar图像变化检测方法 | |
CN102346829A (zh) | 基于集成分类的病毒检测方法 | |
CN105069470A (zh) | 分类模型训练方法及装置 | |
CN104063713B (zh) | 一种基于随机蕨分类器的半自主在线学习方法 | |
CN110728187B (zh) | 一种基于容错性深度学习的遥感影像场景分类方法 | |
CN110969166A (zh) | 一种巡检场景下小目标识别方法和系统 | |
CN104867150A (zh) | 遥感影像模糊聚类的波段修正变化检测方法及系统 | |
CN105389598A (zh) | 面向软件缺陷数据的特征选择及分类方法 | |
CN105389480A (zh) | 多类不平衡基因组学数据迭代集成特征选择方法及系统 | |
CN108985360A (zh) | 基于扩展形态学与主动学习的高光谱分类方法 | |
CN110135450A (zh) | 一种基于密度聚类的热点路径分析方法 | |
CN105701013A (zh) | 基于互信息的软件缺陷数据特征选择方法 | |
CN109218223A (zh) | 一种基于主动学习的鲁棒性网络流量分类方法及系统 | |
CN108762503A (zh) | 一种基于多模态数据采集的人机交互系统 | |
CN111798935A (zh) | 基于神经网络的普适性化合物结构-性质相关性预测方法 | |
CN102663740B (zh) | 基于图切的sar图像变化检测方法 | |
CN104182734A (zh) | 基于lrc和协同表示的两阶段人脸识别方法 | |
CN103810522A (zh) | 一种玉米果穗籽粒计数方法和装置 | |
CN104680185A (zh) | 基于边界点重分类的高光谱图像分类方法 | |
CN113516228A (zh) | 一种基于深度神经网络的网络异常检测方法 | |
CN109933619A (zh) | 一种半监督分类预测方法 | |
CN110443303B (zh) | 基于图像分割和分类的煤岩显微组分智能识别方法 | |
CN105760303A (zh) | 基于最大互信息和改进Adaboost的软件缺陷数据特征选择方法 | |
CN117516937A (zh) | 基于多模态特征融合增强的滚动轴承未知故障检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160713 |