CN112015631A - 一种面向软件缺陷预测的不平衡数据生成方法 - Google Patents

一种面向软件缺陷预测的不平衡数据生成方法 Download PDF

Info

Publication number
CN112015631A
CN112015631A CN201910453107.4A CN201910453107A CN112015631A CN 112015631 A CN112015631 A CN 112015631A CN 201910453107 A CN201910453107 A CN 201910453107A CN 112015631 A CN112015631 A CN 112015631A
Authority
CN
China
Prior art keywords
data
data generation
data set
distribution
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.)
Pending
Application number
CN201910453107.4A
Other languages
English (en)
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.)
Beijing University of Chemical Technology
Original Assignee
Beijing University of Chemical Technology
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 Beijing University of Chemical Technology filed Critical Beijing University of Chemical Technology
Priority to CN201910453107.4A priority Critical patent/CN112015631A/zh
Publication of CN112015631A publication Critical patent/CN112015631A/zh
Pending legal-status Critical Current

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
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • 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

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)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种面向软件缺陷预测的不平衡数据生成方法,属于软件测试领域。软件缺陷数据集存在严重的数据不平衡问题,对预测模型的性能产生负面影响。常用处理数据不平衡问题的方法通过调整样本的数量达到类间平衡,但新样本分布通常遵循原有分布,类内平衡没有改善。本发明考虑数据集样本分布情况,对原始数据集进行聚类划分,对划分后的子区域依据不同分布情况采用不同策略进行有缺陷样本数据生成,使数据集样本类间平衡且类内平衡。基于分布进行数据生成能有效改善数据不平衡,显著提高软件缺陷预测模型的准确度。

Description

一种面向软件缺陷预测的不平衡数据生成方法
技术领域
本发明是一种面向软件缺陷预测的不平衡数据生成方法,属于软件开发与测试领域。
背景技术
软件缺陷预测技术(software defect prediction)通过对软件历史数据进行分析,利用分类、排序等模型,识别有缺陷的软件模块。在实际的软件缺陷预测数据集中,有缺陷样本数量通常远小于无缺陷样本数量,即存在类间不平衡问题,此外,数据集内有缺陷样本分布常常不均匀,属于类内不平衡。类间不平衡和类内不平衡问题都会使得预测模型对有缺陷样本预测的性能下降。
现有处理数据不平衡问题的数据生成方法生成的新样本与原始分布相近,虽然通过增加有缺陷样本数量使类间平衡,但是没有解决类内不平衡问题。
发明内容
本发明的目的在于提出一种基于分布的软件缺陷预测方法,在考虑类间不平衡的同时考虑类内不平衡,为数量很少的有缺陷样本生成新样本,并使有缺陷样本内部均匀分布,进而使数据平衡,提高预测模型的性能。
为了减少数据不平衡对软件缺陷预测模型的影响,在模型构建的四个阶段都存在相应的方法对数据不平衡进行修正,包括数据采样、特征提取、分类器优化以及评价标准。其中数据采样是缺陷预测模型构建的初始阶段,在初始阶段对数据不平衡进行修正可直接减小后续阶段执行的复杂度。本发明在软件缺陷预测模型构建的初始阶段数据采样阶段引入新的数据不平衡处理方法,考虑原始数据集的样本分布,对数据集进行划分,对不同分布情况的有缺陷样本采用不同的数据生成策略,使数据集类间平衡的同时类内也平衡,进而提升预测模型对有缺陷样本的预测准确率。
本发明的核心是根据训练数据集内样本分布情况,对样本进行划分,再根据划分结果对不同分布情况的有缺陷样本采取不同的数据生成策略进行数据生成,得到新的训练集样本来生成缺陷预测模型。结合基于分布的数据生成方法的软件缺陷预测模型构建主要包括以下几个部分。
第一,提取原始训练数据集。软件缺陷预测首先要从已有数据集中抽取相关特征,通常是软件代码分析的相关度量,例如代码行数、Halstead 科学度量、McCabe 环路复杂度等,根据这些特征得到特征矩阵,构建出原始的训练数据集。
第二,基于原始样本分布进行数据生成。原始的训练数据集存在数据不平衡,所以需要人工生成有缺陷样本使数据集平衡。基于样本的分布情况,对原始训练集进行划分,对不同分布情况下的有缺陷样本采取不同的策略进行数据生成。新生成样本与原训练集样本共同组成新的训练数据集。
第三,构建软件缺陷预测模型。预测模型的构建可以选取合适的机器学习算法,如:SVM、KNN、C4.5和RF等。训练预测模型使用的训练数据集为第二步中经过数据生成后的新数据集,此时训练数据集内数据平衡。
第四,对测试程序进行预测。使用构建好的软件缺陷预测模型对待测程序进行预测,可得到测试程序是否可能含有缺陷的结果。
附图说明
图1为本发明方法的实验流程图。
具体实施方式
本发明是一种面向软件缺陷预测的不平衡数据生成方法,其目的是通过为不同分布情况的有缺陷样本采取不同策略进行数据生成,使数据集类间平衡和类内平衡,进而提升预测准确率。本发明的具体实施流程可以分为以下几个阶段:
第一阶段,分布情况讨论。对软件缺陷数据集在特征空间上的分布情况进行讨论,发现两类样本的分布情况通常有三种:有缺陷样本数大于无缺陷样本数、有缺陷样本数小于无缺陷样本数和有缺陷样本数远小于无缺陷样本数。
第二阶段,根据分布情况对划分样本。由于样本有多维特征,因此选取一种高效的高维划分算法:K-means算法对数据集进行划分。划分时选取簇数(对应于分区数)为3,在最优情况下即可对应于三种分布情况。为了使结果尽可能接近最优划分结果,在聚类划分时选取距离较远的初始聚类中心。
第三阶段,确定数据生成比例。在第二阶段得到三个根据分布情况划分的子簇,对每一个子簇内样本的分布进行讨论。如果子簇内有缺陷样本数大于无缺陷样本数,那么这一簇内生成的样本数较少;如果子簇内有缺陷样本数小于或远小于无缺陷样本数,那么这一粗内生成的样本数较多。选取每一簇内无缺陷样本数与有缺陷样本数的比作为数据生成比例。根据这一比例可以求得使数据集数量上平衡时,每一簇内需要生成的有缺陷样本数。
第四阶段,确定数据生方法。为了使每一簇内生成的有缺陷样本分布均匀,对不同分布情况的子簇需要采取不同的数据生成方法。对有缺陷样本较多的子簇,采用SMOTE(Synthetic Minority Oversampling Technique)方法进行数据生成,即选取区域内同类近邻样本,两两之间随机生成新样本;对有缺陷样本较少的子簇,采用圆域法进行数据生成,即随机选取一个有缺陷样本及其近邻有缺陷样本,以随机选取的样本为圆心,与其近邻样本间的距离为半径作圆,并在圆内生成新样本。
对各个子簇进行样本生成后,生成的新样本与原始样本组合形成新的训练样本集,使用新的训练样本集训练预测模型,并对测试程序进行预测。

Claims (3)

1.一种面向软件缺陷预测的不平衡数据生成方法,其特征是对软件缺陷预测数据集进行数据生成,根据数据分布情况进行数据集划分,对不同分布情况采用不同的数据生成方法,使数据集类间和类内平衡,使用平衡后的数据集训练生成预测模型,提高预测模型对有缺陷样本的预测准确率。
2.根据权利要求1所述的面向软件缺陷预测的不平衡数据生成方法,构建基于分布的数据生成模型,结合K-means算法进行数据集划分,使用每一子簇内无缺陷样本数与有缺陷样本数的比作为数据生成比例,并在有缺陷样本较多区域采用SMOTE方法进行数据生成,有缺陷样本较少区域采用圆域法进行数据生成,其中原始训练数据集为算法的输入,新生成的训练数据集为算法的输出。
3.根据权利要求1和权利要求2所述的面向软件缺陷预测的不平衡数据生成方法和基于分布的数据生成模型,构建不平衡数据集下的软件缺陷预测模型,通过对原始数据集内样本进行基于分布的数据生成,得到新训练集,训练生成预测模型,对待测程序进行预测。
CN201910453107.4A 2019-05-28 2019-05-28 一种面向软件缺陷预测的不平衡数据生成方法 Pending CN112015631A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910453107.4A CN112015631A (zh) 2019-05-28 2019-05-28 一种面向软件缺陷预测的不平衡数据生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910453107.4A CN112015631A (zh) 2019-05-28 2019-05-28 一种面向软件缺陷预测的不平衡数据生成方法

Publications (1)

Publication Number Publication Date
CN112015631A true CN112015631A (zh) 2020-12-01

Family

ID=73500677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910453107.4A Pending CN112015631A (zh) 2019-05-28 2019-05-28 一种面向软件缺陷预测的不平衡数据生成方法

Country Status (1)

Country Link
CN (1) CN112015631A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905481A (zh) * 2021-03-22 2021-06-04 上海海事大学 一种软件缺陷预测方法
CN114548327A (zh) * 2022-04-27 2022-05-27 湖南工商大学 基于平衡子集的软件缺陷预测方法、系统、设备及介质
CN115759027A (zh) * 2022-11-25 2023-03-07 上海苍阙信息科技有限公司 文本数据处理系统及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905481A (zh) * 2021-03-22 2021-06-04 上海海事大学 一种软件缺陷预测方法
CN114548327A (zh) * 2022-04-27 2022-05-27 湖南工商大学 基于平衡子集的软件缺陷预测方法、系统、设备及介质
CN115759027A (zh) * 2022-11-25 2023-03-07 上海苍阙信息科技有限公司 文本数据处理系统及方法
CN115759027B (zh) * 2022-11-25 2024-03-26 上海苍阙信息科技有限公司 文本数据处理系统及方法

Similar Documents

Publication Publication Date Title
CN112015631A (zh) 一种面向软件缺陷预测的不平衡数据生成方法
CN110134588B (zh) 一种基于代码和组合覆盖的测试用例优先级排序方法及测试系统
CN107103332B (zh) 一种面向大规模数据集的相关向量机分类方法
CN110659207B (zh) 基于核谱映射迁移集成的异构跨项目软件缺陷预测方法
CN109491914B (zh) 基于不平衡学习策略高影响缺陷报告预测方法
CN110347599B (zh) 一种基于测试缺陷数据的管理方法及装置
CN111174370A (zh) 故障检测方法及装置、存储介质、电子装置
CN109145948A (zh) 一种基于集成学习的注塑机堵料异常检测方法
Ni et al. FeSCH: a feature selection method using clusters of hybrid-data for cross-project defect prediction
CN108243435B (zh) 一种lte小区场景划分中的参数优化方法及装置
JP2019204321A (ja) 情報処理方法、情報処理装置、及びプログラム
CN113378927A (zh) 一种基于聚类的自适应加权过采样方法
CN112633337A (zh) 一种基于聚类和边界点的不平衡数据处理方法
CN111950645A (zh) 一种通过改进随机森林提高类不平衡分类性能的方法
CN117236278B (zh) 一种基于数字孪生技术的芯片生产仿真方法及系统
CN117033912B (zh) 一种设备故障预测方法、装置、可读存储介质及电子设备
CN113191399A (zh) 一种基于机器学习分类器提高半导体芯片良品率的方法
CN112836735A (zh) 一种优化的随机森林处理不平衡数据集的方法
CN112466416B (zh) 一种结合镍基合金先验知识的材料数据清洗方法
CN112597687A (zh) 一种基于少样本学习的涡轮盘结构混合可靠性分析方法
CN111126727B (zh) 电力计费分布式并行异常检测方法
CN107957944B (zh) 面向用户数据覆盖率的测试用例自动生成方法
CN113127342B (zh) 基于电网信息系统特征选择的缺陷预测方法及装置
CN115169832A (zh) 一种基于曲线形态变化的敏感性分析方法及系统
US20220108216A1 (en) Machine learning apparatus, method, and non-transitory computer readable medium storing program

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20201201

WD01 Invention patent application deemed withdrawn after publication