用WEKA软件进行Apriori算法数据挖掘测试最详细清楚解释

简介: 用WEKA软件进行Apriori算法数据挖掘测试最详细清楚解释

一、Apriori算法简介

“Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。而且算法已经被广泛的应用到商业、网络安全等各个领域。 算法简介 Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。算法思想 ”。

二、因为WEKA能识别的文件类型是.arff文件,所以我们需要将已有数据转为.arff文件格式的数据(见下图紫色框中的内容)。

1、@relation:关系名(无硬性要求,但建议取和数据相关的名如下面的movie);
2、@attribute:属性名 ;
3、 { }:属性可取值的范围,可自定义;
4、@data:之后每一行均为一个事务,未知属性值使用 “ ?”,也可以填写属性值范围{}的内容(下面的就是可以填“True”或者“False”),解释一下第一行:动作、战争,第二行:喜剧、爱情,第三行:剧情、动作、犯罪。规律就是“True”对应的属性值就是该行事务的取值内容,而“ ?”则不用显示。

5、.arff文件可以用.txt文本文件修改后缀名生成。

@relation movie
@attribute 动作 {False, True}
@attribute 战争 {False, True}
@attribute 喜剧 {False, True}
@attribute 爱情 {False, True}
@attribute 剧情 {False, True}
@attribute 犯罪 {False, True}
@attribute 科幻 {False, True}
@attribute 灾难 {False, True}
@attribute 奇幻 {False, True}
@data
True,True,?,?,?,?,?,?,?
?,?,True,True,?,?,?,?,?
True,?,?,?,True,True,?,?,?
True,True,?,?,True,?,?,?,?
?,?,?,?,?,?,True,True,?
?,?,True,True,?,?,?,?,True
True,True,?,?,?,?,?,?,?
?,?,True,?,?,?,?,?,True
?,?,?,?,True,?,?,?,?
?,?,?,?,True,?,?,?,?

三、用WEKA进行数据预处理(点击紫色箭头指向的紫色框中的内容“Explorer”)。

1、Explorer
用来进行数据实验、挖掘的环境,它提供了分类,聚类,关联规则,特征选择,数据可视化的功能。(An environment for exploring data with WEKA)
2、Experimentor
用来进行实验,对不同学习方案进行数据测试的环境。(An environment for performing experiments and conducting statistical tests between learning schemes.)
3、KnowledgeFlow
功能和Explorer差不多,不过提供的接口不同,用户可以使用拖拽的方式去建立实验方案。另外,它支持增量学习。(This environment supports essentially the same functions as the Explorer but with a drag-and-drop interface. One advantage is that it supports incremental learning.)
4、SimpleCLI
简单的命令行界面。(Provides a simple command-line interface that allows direct execution of WEKA commands for operating systems that do not provide their own command line interface.)

四、进入新页面后,点击紫色箭头指向的紫色框中的内容“Open file”。

五、找到自己之前要进行数据预处理的.arff文件(博主进行示范的是movie.arff,见第二步红色箭头指向的红色框指向的内容)。

六、可点击红色箭头指向的红色框中的内容“Edit”对.arff数据内容进行重新编辑,也可以不编辑(博主就没有重新编辑了,同时请注意:编辑不会改变原.arff文件内容也就是例子中的movie.arff文件)。

七、点击红色箭头指向的红色框中的内容“Associate”(关联规则分析)。

温馨提示:Preprocess(预处理)、Classify(分类)、Cluster(聚类)、Associate(关联规则)、Select attribute(特征选择)和Visualize(可视化)。

八、第一步点击红色箭头指向的红色框中的“choose”。

九、第二步选择红色箭头指向的红色框中的“Apriori”。进行算法选择为Apriori算法,为关联规则分析做准备。

十、点击红色箭头指向的红色框中的内容。

十一(重要)、页面中的参数值(见下图红色框的内容)都可以修改调动,但建议在修改调动之前现阅读下面各个参数所表达的含义和用法,若不需要修改调动,就直接可以采用系统默认的参数值;修改完之后点击紫色框内容(ok)确定修改。

1、car: 如果设为True,则会挖掘类关联规则而不是全局关联规则。

2、classindex :类属性索引。如果设置为-1,则倒数第一的属性也就是最后的属性被当做类属性。

3、delta: 以该数值为迭代递减单位,然后不断减小支持度直至达到最小支持度或产生了满足数量要求的规则。根据delta可以计算理解Number of cycles performed的公式是:

*(upperBoundMinSupport)-((Number of cycles performed)-1)delta >= (LowerBoundMinSupport)

4、lowerBoundMinSupport :最小支持度下界。

5、metricType :度量类型,设置对规则进行排序的度量依据。可以选择是:置信度(Confidence,

注意:类关联规则只能用置信度挖掘),提升度(Lift),杠杆率(Leverage),确信度(Conviction)。

(1)Confidence(conf):Confidence(A==>B)=Support(AUB)/Support(A)注意:AUB表
示同时包含A和B的支持项。比如:剧情=True 4 ==> 动作=True 2 计算出 Confidence=2/4=0.5。

(2)Lift (lift): P(A,B)/(P(A)P(B)) Lift=1时表示A和B独立。这个数越大(>1),越表明A和B存在于一个购物篮中不是偶然现象,有较强的关联度。注意:P(A)是指包含A属性数目在所有原始项目集数目的比例

(3)Leverage (lev):P(A,B)-P(A)P(B)Leverage=0时A和B独立,Leverage越大A和B的关系越密切。

(4)Conviction(conv):P(A)P(!B)/P(A,!B) (!B表示B没有发生) Conviction也是用来衡量A和B的独立性。从它和lift的关系(对B取反,代入Lift公式后求倒数)可以看出,这个值越大, A、B越关联。

6、minMtric :度量的最小值,指的是你上一步选择的度量类型的度量最小值比如默认选择了Confidence,那么Confidence的度量最小值就是minMtric设置的值,在后面生成的Best rules found中Confidence若比这个度量最小值还小就会被直接删掉不会出现,比如minMtric=0.9,Conf=0.8,则不会出现。

7、numRules :最多需要发现的规则数,会把发现的规则数进行排序,最多把前numRules个显示出来,比如numRules=10,那么就是最多显示十条规则数。

8、outputItemSets :如果设置为True,会在结果Size of set of large itemsets L(X)中输出具体项集而不仅仅是项集数目(Size of set of large itemsets)。

9、removeAllMissingCols: 移除全部为缺省值的列。

10、significanceLevel :重要程度,重要性测试(仅用于置信度)。

11、upperBoundMinSupport: 最小支持度上界,从这个值开始迭代减小到大于等于最小支持度。

12、verbose :如果设置为True,则算法会以冗余模式运行。

十二、点击紫色箭头指向的紫色框中的内容(Start)。

十三:成功生成相应关联规则(见下图)。

十四(重要)、相应颜色框对应相应属性值设置内容,左边颜色框的内容随右边相应颜色框的修改内容改变而改变。注意:Minimum support: 0.2 (2 instances)中instances的计算过程是:0.2X10=2。公式:四舍五入(最小支持度x项目总数)。instances的作用是为挑选minsup_count>=instances的值组成X-频繁项目集(X取1,2,3…)如下图中的L(1)是频繁项目集。Minimum metric 值的作用是:下面的Best rules found:中的conf必须大于等于Minimum metric 值才能进入频繁项目集。


相关文章
|
1月前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
2月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
22天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
53 1
|
1月前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
58 3
|
2月前
|
敏捷开发 监控 jenkins
自动化测试之美:打造高效的软件质量保障体系
【10月更文挑战第20天】在软件开发的海洋中,自动化测试如同一艘精准的导航船,引领项目避开错误的礁石,驶向质量的彼岸。本文将扬帆起航,探索如何构建和实施一个高效的自动化测试体系,确保软件产品的稳定性和可靠性。我们将从测试策略的制定、工具的选择、脚本的编写,到持续集成的实施,一步步描绘出自动化测试的蓝图,让读者能够掌握这一技术的关键要素,并在自己的项目中加以应用。
37 5
|
2月前
|
测试技术
软件质量保护与测试(第2版)学习总结第十三章 集成测试
本文是《软件质量保护与测试》(第2版)第十三章的学习总结,介绍了集成测试的概念、主要任务、测试层次与原则,以及集成测试的不同策略,包括非渐增式集成和渐增式集成(自顶向下和自底向上),并通过图示详细解释了集成测试的过程。
72 1
软件质量保护与测试(第2版)学习总结第十三章 集成测试
|
2月前
|
测试技术
软件质量保护与测试(第2版)学习总结第十章 黑盒测试
本文是《软件质量保护与测试》(第2版)第十章的学习总结,介绍了黑盒测试的基本概念和方法,包括等价类划分、边界值分析和因果图法,并通过具体例子展示了如何设计测试用例来验证软件的功能性需求。
73 1
软件质量保护与测试(第2版)学习总结第十章 黑盒测试
|
2月前
|
Java 测试技术 持续交付
探索自动化测试的奥秘:提升软件质量的关键
【10月更文挑战第20天】 在当今快速发展的软件行业中,自动化测试已成为确保产品质量和加速开发周期的重要工具。本文将深入探讨自动化测试的核心概念、实施策略及其对软件开发生命周期的影响,旨在为读者提供一种全面理解自动化测试的视角,并展示如何有效地将其应用于实际项目中以提高软件质量和效率。
28 2
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
77 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)

热门文章

最新文章