基于Weka的软件缺陷预测研究与应用

合集下载

软件缺陷预测与预防技术研究

软件缺陷预测与预防技术研究

软件缺陷预测与预防技术研究在当今信息技术高度发达的时代,软件在各行各业中的应用日益广泛。

然而,软件开发过程中难免会出现各种缺陷和bug,严重影响了软件的质量和稳定性。

因此,研究软件缺陷预测与预防技术成为了很多学者的关注焦点。

首先,本文将探讨软件缺陷预测的技术方法。

软件缺陷预测是指在软件开发的早期阶段,根据已有的软件缺陷数据和特征,利用统计学和机器学习等方法,预测未来可能出现的缺陷。

通过预测软件缺陷,开发团队可以提前采取相应的措施防止缺陷的产生,从而提高软件的质量。

目前,常用的软件缺陷预测技术包括基于统计学的方法、机器学习方法和数据挖掘技术。

基于统计学的方法通过分析历史数据,统计缺陷与各种因素之间的关系,建立数学模型来预测缺陷。

机器学习方法则通过对大量缺陷数据进行学习和训练,构建预测模型,以实现对未知软件缺陷的预测。

数据挖掘技术则利用各种算法和模型,对大规模数据进行挖掘,从中发现与预测缺陷相关的特征和模式。

其次,本文将探讨软件缺陷预防的技术方法。

软件缺陷预防是指在软件开发过程中,采取一系列措施和方法,尽可能地减少软件缺陷的发生。

常用的软件缺陷预防技术包括代码审查、自动化测试、软件质量度量和规范的制定等。

代码审查是一种常见的软件缺陷预防技术,通过对代码进行逐行检查和分析,发现与修复潜在的缺陷。

代码审查可以由开发人员自行进行,也可以由专门的质量团队来进行。

自动化测试是另一种常见的软件缺陷预防技术,通过编写自动化测试脚本和工具,对软件进行自动化测试,发现并修复可能存在的缺陷。

此外,软件质量度量和规范的制定也是预防软件缺陷的重要手段,通过建立一套科学的质量度量指标和编码规范,可以对软件开发过程进行规范和控制,从而预防缺陷的发生。

最后,本文将探讨软件缺陷预测与预防技术的挑战和前景。

虽然在软件缺陷预测和预防技术方面已经取得了一定的进展,但仍然存在一些挑战。

例如,软件庞大复杂性增加了缺陷预测的难度;数据采集和标注的成本也存在一定的挑战;缺乏准确的数据集和有效的特征选择方法等。

weka实验报告总结

weka实验报告总结

weka实验报告总结
Weka是一款非常流行的机器学习和数据挖掘工具,用于实现各
种数据分析任务。

下面是对Weka实验报告的总结:
在本次实验中,我们使用Weka工具进行了一系列的数据挖掘和
机器学习实验。

我们首先对数据集进行了探索性数据分析,包括数
据的统计特征、缺失值处理、异常值检测等。

通过这些分析,我们
对数据集的特点有了更全面的了解,并为后续的实验做好了准备。

接下来,我们使用Weka提供的各种机器学习算法进行了模型的
训练和评估。

我们尝试了多种算法,包括决策树、支持向量机、朴
素贝叶斯等。

通过对比不同算法在训练集和测试集上的表现,我们
评估了它们的性能,并选择了最合适的算法作为我们的模型。

在模型训练过程中,我们还进行了特征选择和特征工程的实验。

通过选择最相关的特征或者提取新的特征,我们尝试提高模型的性
能和泛化能力。

同时,我们还使用交叉验证等方法来评估模型的稳
定性和鲁棒性。

最后,我们对模型进行了性能评估和结果分析。

通过计算准确
率、召回率、F1值等指标,我们评估了模型的分类效果。

同时,我们还进行了误差分析,找出模型在分类错误的样本上的共同特征,以便进一步改进模型。

综上所述,本次实验中我们使用Weka工具进行了一系列的数据挖掘和机器学习实验。

通过探索性数据分析、模型训练和评估、特征选择和工程,以及性能评估和结果分析,我们得到了一个具有较好性能的模型,并对数据集有了更深入的理解。

这些实验为我们进一步研究和应用机器学习提供了有益的经验和启示。

基于聚类和关键词提取的软件缺陷分析方法

基于聚类和关键词提取的软件缺陷分析方法

2021年3月计算机工程与设计Mar.2021第42卷第3期COMPUTER ENGINEERING AND DESIGN Vl42No.3基于聚类和关键词提取的软件缺陷分析方法高俊婷,张丽萍+,赵凤荣(内蒙古师范大学计算机科学技术学院,内蒙古呼和浩特010022)摘要:提出一种基于K-Means和主题模型的软件缺陷分析方法,对软件缺陷的类别和关键词进行研究。

获取缺陷报告进行预处理,获取有效特征,利用向量空间模型进行文本表示,计算权重,根据最终特征向量进行聚类;提取每一类缺陷的主题和关键词,帮助修复人员快速找到对应的修复方式。

关键词提取结果以单词形式呈现给修复人员。

实验结果表明,所提方法在bugzilla、firefox和SeaMonkey这3款软件的缺陷报告共1500条缺陷信息上最终聚类平均准确率能达到81%。

关键词:缺陷分析;聚类;软件缺3;主题模型;K均值中图法分类号:TP3115文献标识号:A文章编号:1000-7024(2021)03083010doi:10.16208/j.issnl000-7024.202103.033Software defect analysis method based on clustering and keyword extractionGAO Jun-ting,ZHANG Li-pin g+,ZHAO Fengrong(School of Computer Science and Technology,Inner Mongolia Normal University,Hohhot010022,China)Abstract:A software defect analysis method based on K-Means and topic model was proposed,and the categories and keywords of software defects were studied.The defect report was obtained for preprocessing.The effective feature was obtained.The vec­tor space model was used for text representation,the weight was calculated&and the final feature vector was used for clustering. The theme and keywords of each type of defect were extracted to help the repairer quickly find the corresponding repair method. The keyword extraction results were presented to the repairer in word form.Experimental resul t s show that the proposed algo­rithm can achieve an average cluster accuracy of81%on the defect reports of bugzilla&firefox and SeaMonkey.Key words:defect analysis;clustering;software defect;topic model;K-Means1引言软件缺陷IT通常以缺陷报告的形式存储在缺陷跟踪系统中⑷,因此缺陷分析首要工作是对缺陷报告进行分析。

数据挖掘工具WEKA及其应用研究

数据挖掘工具WEKA及其应用研究

数据挖掘工具WEKA及其应用研究作者:杨忠诚来源:《企业科技与发展》2018年第09期【摘要】数据挖掘、知识发现和机器学习的研究取得了瞩目的成果,一大批算法和数据集层出不穷,为让研究者简单、有效地测试新的算法和数据,开源工具WEKA提供了一个优秀的测试和开发平台。

目前,WEKA已成为数据挖掘研究领域最常用的工具。

文章详细介绍WEKA平台的使用方法,并介绍在WEKA社区内一些成熟的应用模块。

【关键词】数据挖掘;WEKA;算法;数据集层【中图分类号】TP311.13 【文献标识码】A 【文章编号】1674-0688(2018)09-0038-020 引言由于需要统一的工作台,让研究人员能够轻松获得机器学习中的最新技术,怀卡托知识分析环境(Waikato Environment for Knowledge Analysis,WEKA)应运而生。

在1992年项目开始的时候,学习算法有多种语言可供使用,可用于不同的平台,并以各种数据格式运行。

收集学习机制来做数据集的比较研究,这个任务的工作量多得令人望而生畏。

设想WEKA不仅提供学习算法的工具箱,而且还提供一个框架,研究人员可以实现新算法,而不必关心支持数据操作和方案评估的基础架构。

目前,WEKA被认为是数据挖掘和机器学习领域的里程碑式系统,被研究和商业领域广泛接受,成为数据挖掘研究领域最常用的工具。

WEKA的成功很大程度上归功于它的开源性,用户能够自由使用源代码,也就愿意改进或编写新的项目融入扩展WEKA。

1 WEKA工作台WEKA项目旨在为研究者和练习者提供通用的机器学习算法集和数据预处理工具,用户可以简单快速地在WEKA工作台上对新的数据集进行新的算法测试,其模块化、可扩展的架构允许用户从广泛的基础学习算法和工具集合中构建复杂的数据挖掘流程。

通过简单的API、插件机制和设备,可以自动将新的学习算法与WEKA的图形用户界面集成在一起,因此扩展工具包非常容易。

数据挖掘WEKA实验报告

数据挖掘WEKA实验报告

数据挖掘-WAKA实验报告一、WEKA软件简介在我所从事的证券行业中,存在着海量的信息和数据,但是这些数据日常知识发挥了一小部分的作用,其包含了大量的隐性的信息并不为所用,但是却可以为一些公司的决策和对客户的服务提供不小的价值。

因此,我们可以通过一些数据采集、数据挖掘来获得潜在的有价值的信息。

数据挖掘就是通过分析存在于数据库里的数据来解决问题。

在数据挖掘中计算机以电子化的形式存储数据,并且能自动的查询数据,通过关联规则、分类于回归、聚类分析等算法对数据进行一系列的处理,寻找和描述数据里的结构模式,进而挖掘出潜在的有用的信息。

数据挖掘就是通过分析存在于数据库里的数据来解决问题。

WEKA的出现让我们把数据挖掘无需编程即可轻松搞定。

WEKA是由新西兰怀卡托大学开发的开源项目,全名是怀卡托智能分析环境(WaikatoEnvironmentforKnowledgeAnalysis)。

WEKA是由JAVA编写的,WEKA得到,并且限制在GBU通用公众证书的条件下发布,可以运行在所有的操作系统中。

是一款免费的,非商业化的机器学习以及数据挖掘软件WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。

如果想自己实现数据挖掘算法的话,可以看一看WEKA的接口文档。

在WEKA中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。

安装WEKA也十分简单,首相要下载安装JDK环境,JDK在这个页面可以找到它的下载。

点击JDK6之后的Download按钮,转到下载页面。

选择Accepct,过一会儿页面会刷新。

我们需要的是这个WindowsOfflineInstallation,Multi-languagejdk-6-windows-i586.exe5 3.16MB,点击它下载。

也可以右键点击它上面的链接,在Flashget等工具中下载。

数据挖掘WEKA实验报告

数据挖掘WEKA实验报告

数据挖掘WEKA实验报告一、实验目的本次实验的目的是使用WEKA软件对一个数据集进行数据挖掘,并通过数据挖掘的方法来预测数据集中其中一特定变量的值。

二、实验流程1. 数据集的导入:首先,我们将数据集导入WEKA软件中。

在WEKA主界面中,选择“Explorer”选项,并在弹出的窗口中选择“Open File”选项,然后选择要导入的数据集文件即可。

2. 数据预处理:在导入数据集后,我们需要对数据集进行预处理。

预处理的目的是为了提高数据挖掘的准确性和可靠性。

在WEKA中,我们可以通过选择“Preprocess”选项进行数据预处理。

常见的数据预处理方法有缺失值处理、异常值处理、离散化、标准化等。

3. 数据分析与建模:在数据预处理完成后,我们需要进行数据分析和建模。

在WEKA中,我们可以使用分类、回归、聚类等方法进行数据分析。

在本次实验中,我们选择使用朴素贝叶斯分类器进行数据分析与建模。

在WEKA中,我们可以通过选择“Classify”选项,并在弹出的窗口中选择“NaiveBayes”选项来使用朴素贝叶斯分类器。

4.模型评估与优化:在完成数据分析与建模后,我们需要对模型进行评估与优化。

在WEKA中,我们可以使用交叉验证、混淆矩阵、ROC曲线等方法进行模型评估。

根据评估结果,我们可以对模型进行优化,以提高模型的准确性和可靠性。

5.结果可视化:最后,我们可以对挖掘结果进行可视化展示。

在WEKA中,我们可以使用图表和图形来展示挖掘结果。

根据可视化结果,我们可以更加直观地理解和分析挖掘结果。

三、实验结果与分析在本次实验中,我们选择了一个含有1000个样本的数据集,并使用朴素贝叶斯分类器进行数据挖掘。

经过数据预处理和模型评估,我们最终得到了一个准确率为80%的分类模型。

通过对模型进行优化,我们成功的预测了数据集中其中一特定变量的值。

四、实验总结通过本次实验,我们学习了如何使用WEKA软件进行数据挖掘。

WEKA是一个功能强大的数据挖掘工具,它提供了丰富的数据预处理和分析方法,可以帮助我们进行高效准确的数据挖掘。

数据挖掘工具WEKA及其应用研究

数据挖掘工具WEKA及其应用研究

数据挖掘工具WEKA及其应用研究数据挖掘工具WEKA是一种集成了众多数据挖掘算法的开源软件。

它提供了一套简单易用的界面和函数库,方便用户进行数据预处理、特征选择、分类、回归、聚类、关联规则挖掘等常见的数据挖掘任务。

WEKA已经在科研领域和商业应用中被广泛应用,成为数据挖掘领域不可或缺的工具之一WEKA的主要特点包括以下几个方面:1.多种算法的集成:WEKA内置了多种数据挖掘算法,包括决策树、贝叶斯分类器、支持向量机、神经网络等。

用户可以根据任务需求选择适合的算法,并进行参数调整和模型评估。

2.数据预处理和特征选择:WEKA提供了一系列的数据预处理功能,如缺失值处理、离散化、异常值处理等。

此外,它还支持特征选择的功能,可以帮助用户选择最相关的特征,减少维度和噪音。

3.可视化界面和交互式操作:WEKA提供了直观易用的用户界面,用户可以通过可视化界面进行数据导入、算法选择、模型构建和结果展示等操作。

此外,用户还可以通过命令行界面和编程接口进行批量处理和自动化操作。

4.可扩展性和易定制性:WEKA是一个开源软件,用户可以根据自己的需要添加自定义的算法和功能。

它还支持通过插件的形式添加新功能和扩展库,满足更复杂的应用需求。

WEKA的应用范围非常广泛,包括但不限于以下几个方面:1.金融风控:WEKA可以用于分析和建立信用评分模型,帮助银行和金融机构评估客户信用风险,进行风险控制和信用决策。

2.医疗健康:WEKA可以用来分析医疗数据,挖掘疾病预测模型、生成患者分群和进行药物反应性分析等。

这有助于医生制定个体化治疗方案和改进医疗管理。

基于机器学习的软件缺陷预测与修复策略研究

基于机器学习的软件缺陷预测与修复策略研究

基于机器学习的软件缺陷预测与修复策略研究随着软件在现代社会中的广泛应用,软件质量成为影响用户体验和企业竞争力的重要因素。

然而,由于软件开发过程中的缺陷可能导致软件系统的不稳定性和功能不完整等问题,软件缺陷预测和修复成为了软件开发领域中一个关键的研究方向。

近年来,基于机器学习的软件缺陷预测与修复策略得到了广泛的关注和研究。

软件缺陷预测是指利用机器学习技术,通过对软件开发历史数据的分析和建模,来预测未来产生缺陷的可能性。

这一领域的研究可以帮助软件开发团队更好地了解软件开发的风险,及时采取措施提前进行缺陷修复,从而减少软件开发过程中的风险和成本。

同时,通过对软件缺陷的预测,可以优化软件测试策略,提高测试效率和效果。

在软件缺陷预测的研究中,机器学习技术被广泛应用。

机器学习是一种通过从数据中学习规律和模式,从而作出预测或决策的方法。

在软件缺陷预测中,机器学习算法可以通过对历史软件开发数据的学习,构建预测模型,从而预测未来可能出现的缺陷。

常用的机器学习算法包括朴素贝叶斯、决策树、支持向量机和随机森林等。

除了机器学习算法的选择外,数据的质量和特征选择也是影响软件缺陷预测效果的重要因素。

在进行软件缺陷预测之前,需要对软件开发历史数据进行清洗、整理和特征提取等预处理步骤。

同时,还需要选择合适的特征子集,从而减少特征维度,提高预测模型的效果和泛化能力。

除了软件缺陷预测外,机器学习技术还可以应用于软件缺陷的修复策略研究。

在软件开发过程中,修复软件缺陷是一个重要的环节。

传统的修复策略主要依赖于经验和人工判断,存在一定的主观性和随机性。

而基于机器学习的修复策略可以借助历史数据和模式识别的能力,自动学习和挖掘有效的修复策略。

这些策略可以根据软件缺陷的类型、严重性和影响范围等因素,自动推荐合适的修复方法和优先级。

然而,基于机器学习的软件缺陷预测与修复策略研究也面临一些挑战。

首先,软件开发过程中的数据通常是大规模、高维度的,如何有效地处理和利用这些数据仍然是一个难题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Weka的软件缺陷预测研究与应用作者:郭江峰曲豫宾来源:《河南科技》2020年第08期摘要:在软件开发过程中,软件缺陷预测能预先识别存在的潜在缺陷模块,大幅减少测试所需的人力、物力,优化测试资源分配,提高测试效率和软件产品质量。

软件缺陷预测技术不仅具有重要的研究意义,更具有重要的应用价值。

基于Weka数据挖掘平台,本研究使用NASA缺陷数据集进行了软件缺陷预测,在合理选择机器学习算法、科学设置参数的情况下,取得了良好的软件缺陷预测结果。

关键词:软件缺陷预测;度量元;机器学习;Weka中图分类号:TP311.52 文献标识码:A 文章编号:1003-5168(2020)08-0014-05Research and Application of Software Defect Prediction Based on WekaGUO Jiangfeng1,2 QU Yubin1(1.Jiangsu College of Engineering and Technology,Nantong Jiangsu 226007;2.Kizilsu Vocational Technical College,Atushi Xinjiang 845350)Abstract: In the process of software development, software defect prediction can identify the potential defect modules in advance, greatly reduce the human and material resources needed for testing, optimize the distribution of testing resources, and improve the testing efficiency and software product quality. Software defect prediction technology not only has important research significance, but also has important application value. Based on Weka data mining platform, the software defect prediction was carried out by using NASA defect data set in this study, and good software defect prediction results were obtained under the condition of selecting machine learning algorithm reasonably and setting parameters scientifically.Keywords: software defect prediction;metrics;machine learning;Weka随着科学技术和社会经济的快速发展,计算机技术在各个行业得到了广泛应用,计算机软件(系统)与人们的工作、生活也越来越紧密,软件质量和系统可靠性对生产和管理活动的效率和安全性的影响也越来越大[1]。

但是,随着人们对软件需求的不断增长,软件规模变大,复杂程度增加,软件的开发与维护难度越来越大。

隐含缺陷的软件在运行过程中可能会产生软件失效或系统崩溃,严重的软件缺陷会给企业带来巨额的经济损失,甚至可能引发人员伤亡[1-2]。

用户需求不明确、软件开发过程不规范、软件开发人员经验与能力不足等原因,均会导致软件缺陷的产生。

为保证软件质量,软件测试人员会通过一定的软件测试方法对软件缺陷进行排查,然后通知开发人员对软件缺陷进行处理。

然而,受软件项目的开发进度和成本控制等实际因素的影响,软件测试工程师无法对所有软件模块进行完全覆盖测试。

1 软件缺陷预测的定义与研究意义随着人们对计算机软件的依赖程度越来越大,如何有效提高软件质量成为软件工程领域研究的重點和难点。

传统的软件质量保障手段(如静态代码审查或动态软件测试)效率低下,需要大量的人力、物力,而且需要额外对代码进行插桩等修改操作[3]。

软件缺陷预测技术逐渐成为软件工程领域的研究热点之一[4-12]。

软件缺陷预测,一般是指通过分析软件源代码或开发过程,设计出与软件缺陷存在相关性的度量元,然后对软件历史仓库进行挖掘分析来创建缺陷预测数据集。

基于缺陷预测数据集,使用特定的建模方法(如机器学习)构建缺陷预测模型,基于预测模型对软件后续版本中的潜在缺陷模块进行预测分析[13]。

软件缺陷预测能大幅度减少测试所需的人力、物力,并且无须额外对代码进行插桩等修改操作。

软件部署前、模块开发结束后可以及时开展缺陷预测,预先识别出潜在缺陷模块,便于项目主管优化测试资源分配,提高测试效率和软件产品质量。

因此,研究软件缺陷预测技术,构建软件缺陷预测模型,提前预测识别软件中的缺陷,不仅具有重要的研究意义,更具有重要的应用价值。

2 软件缺陷预测方法根据软件缺陷预测方法的不同,可将其分为静态预测和动态预测[6]。

静态预测主要将软件代码量化为静态特征,对这些特征和历史缺陷信息进行统计分析,挖掘历史缺陷的分布规律并构建预测模型,然后基于预测模型对新的程序模块进行预测。

动态预测则是对软件缺陷发生的时间进行分析,挖掘软件缺陷与其发生时间之间的关联。

目前,随着机器学习算法的广泛应用,静态软件缺陷预测不断取得良好的预测结果,受到了研究者的更多关注[14-15]。

2.1 软件缺陷预测过程软件缺陷预测过程可分为四个阶段,如图1所示[16]。

2.1.1 程序模块抽取。

对软件历史仓库进行挖掘分析,从中抽取出程序模块。

程序模块的粒度可设置为文件、包、类、函数等。

抽取出模块后,将这些程序模块分别标记为有缺陷模块或无缺陷模块。

2.1.2 设计度量元。

基于软件静态代码或软件开发过程,设计相应的度量元,通过这些度量元对程序模块进行软件度量,并构建出缺陷预测数据集。

2.1.3 构建缺陷預测模型。

对缺陷预测数据集进行必要的数据预处理之后,借助特定的建模方法(如机器学习方法)构建出软件缺陷预测模型。

2.1.4 缺陷预测。

使用构建好的软件缺陷预测模型对新程序模块进行预测分类,将程序模块预测为有缺陷倾向性模块或无缺陷倾向性模块。

预测目标也可以是程序模块含有的缺陷数或缺陷密度。

2.2 度量元设计度量元的设计是软件缺陷预测研究中的核心问题[17]。

典型的度量元包括代码行数、McCabe环路复杂度和Halstead科学度量等。

将McCabe环路复杂度作为度量元主要考虑程序的控制流复杂度,其假设条件是如果程序模块的控制流复杂度越高,含有缺陷的可能性也越高[18]。

将Halstead科学度量作为度量元主要考虑程序内操作符和操作数的数量,其假设条件是如果程序模块中的操作符和操作数越多,导致代码的阅读难度越大,含有缺陷的可能性越高[19]。

除了基于软件代码设计度量元之外,部分研究者基于软件开发过程进行度量元的设计[20-21]。

基于软件开发过程主要考虑软件项目管理、开发人员经验、代码修改特征等方面。

基于哪一种方式设计度量元更能有效构建缺陷预测模型,研究人员对此进行了比较研究。

Graves[22]、Moser[21]等人研究认为,基于开发过程设计出的度量元更为有效。

而Menzies[23]等人研究认为,基于静态代码的度量元可以构建出高质量的缺陷预测模型。

可以看出,两者并无明显的优劣之分,合理地设计度量元,都能取得良好的预测效果。

2.3 缺陷预测模型构建与应用在构建缺陷预测模型之前,根据数据集的质量,可能需要先进行缺陷预测数据集的预处理。

这是因为数据集可能存在噪声、维数灾难和类不平衡等问题,预处理可以提高数据集的质量[24]。

数据集经过预处理后,借助一定的算法来构建缺陷预测模型。

作为人工智能和数据科学核心的机器学习,在软件缺陷预测领域得到了广泛应用,通常被选用为构建软件缺陷预测模型的算法。

常用于软件缺陷预测的机器学习方法可分为分类方法和回归方法。

分类方法主要包括分类回归树、朴素贝叶斯、K-最近邻、支持向量机、集成学习和聚类分析等;回归方法主要包括线性回归、多项式回归、逐步回归和弹性回归等。

使用构建的软件缺陷预测模型,就可以对新数据(测试集)进行测试并得出预测结果,预测目标可以是模块内是否含有缺陷、含有的缺陷数量或缺陷密度等。

3 基于Weka的软件缺陷预测应用Weka是由新西兰怀卡托大学开发的数据挖掘工具,内含了大量的机器学习算法,可以实现数据的预处理、分类、回归、聚类、关联规则以及可视化等功能。

本文试验数据采用美国国家航空航天局(NASA)缺陷数据集。

里面包括12个项目的缺陷数据集,其中每个数据集都对软件系统中的功能模块进行了标记,分别标记为有缺陷模块和无缺陷模块。

数据集的缺陷率为0.78%~35.2%,数据集的模块总数范围为125~16 962,数据集基本信息如表1所示。

3.1 数据集加载与预处理在“Preprocess”选项卡中,单击“Open file”命令按钮,选择指定的数据集。

Weka默认的数据格式为“*.arff”。

加载完数据集后,如果数据集中问题数据较多,则不能直接进行数据挖掘模型的训练和学习,必须进行数据预处理。

数据预处理一般可分为数据清理、数据集成、数据变换、数据归约4个方面。

这些预处理都可以使用Weka提供的过滤器(Filter)来实现,Filter又可分为非监督学习和监督学习两种过滤器。

3.2 指定分类器选择“Classify”选项卡,点击“Choose”按钮,展开“Classifiers”后可以看到bayes、functions、lazy、meta、misc、rules、trees,共7种类型,每种类型又包括多种具体的分类或回归算法,如图2所示。

鼠标左键点击“Choose”按钮右侧的文本框,出现“GenericObjectEditor”对话框,可以在对话框中为各算法指定具体参数,不同的参数值对算法性能具有重要影响。

本次试验选择软件缺陷预测研究中经常采用的决策树法分类器,在图2中展开“trees”列表,选择其中的“J48”。

3.3 构建软件缺陷预测模型为评估软件缺陷预测模型的性能,需要通过“Test Option”来指定测试模式。

Weka共提供了4种测试模式,分别为“Using training set”“Supplied test set”“Cross-validation”和“Percentage split”。

相关文档
最新文档