关联规则挖掘基本概念和算法--张令杰10121084
大数据分析中的关联规则挖掘算法

大数据分析中的关联规则挖掘算法在大数据时代,我们面对海量的数据,如何从中发现有效的关联规则成为了一项重要的任务。
关联规则挖掘算法的应用范围非常广泛,包括电子商务、市场营销、医疗健康等各个领域。
本文将介绍大数据分析中的关联规则挖掘算法,并探讨其在实际应用中的意义与挑战。
一、关联规则挖掘算法概述关联规则挖掘算法旨在寻找数据中的频繁项集和关联规则。
频繁项集是指在数据集中频繁出现的项的集合,而关联规则是指不同项之间的关联关系。
关联规则通常以“如果...,那么...”的形式呈现,可以用来描述数据中的关联关系和潜在规律。
关联规则挖掘算法主要包括Apriori算法、FP-growth算法等。
Apriori算法是最经典的关联规则挖掘算法之一,它通过候选项集的逐层生成和剪枝来找到频繁项集。
FP-growth算法则是一种高效的关联规则挖掘算法,它采用了频繁模式树的数据结构,通过一次构建树的过程避免了多次扫描数据集的过程,提高了算法的效率。
二、关联规则挖掘算法的意义关联规则挖掘算法在大数据分析中具有重要的意义。
首先,它可以帮助我们发现隐藏在数据背后的规律和趋势,为决策提供依据。
例如,在电子商务中,关联规则挖掘可以发现用户的购买行为和偏好,为推荐系统提供个性化的推荐。
其次,关联规则挖掘还可以发现数据中的异常或突变,用于异常检测和预警。
例如,在医疗领域,通过挖掘患者的病历数据,可以提前发现病情变化或者预测患者的风险。
三、大数据环境下的关联规则挖掘算法挑战在大数据环境下,关联规则挖掘算法面临一些挑战。
首先,数据量巨大,如何高效地处理和挖掘大规模数据成为了难点。
传统的算法可能面临计算性能、内存消耗等问题,因此需要设计高效的算法和数据结构。
其次,数据的多样性和复杂性增加了挖掘规则的难度。
不同领域的数据具有不同的特点和规律,需要定制化的挖掘算法和策略。
此外,数据隐私和安全问题也需要考虑。
在处理敏感数据时,需要保证数据的安全性和隐私性。
数据挖掘中的关联规则挖掘算法

数据挖掘中的关联规则挖掘算法数据挖掘是指通过对数据进行分析、挖掘,从中发现有价值的信息和模式的一种过程。
随着互联网和大数据技术的快速发展,数据挖掘在商业、科学、教育、医疗等各个领域的应用越来越广泛,成为了人们获取宝贵信息的有力武器。
关联规则挖掘算法,作为数据挖掘中的一个重要分支,尤其在电商、超市等领域中被广泛应用。
一、关联规则的定义关联规则是指在一个数据集合中,两种或多种物品之间的共现关系。
在超市购物中,如果一位顾客购买了咖啡,那么他很可能会购买糖和奶精。
那么,这里的“咖啡”、“糖”、“奶精”就是一组关联规则。
二、关联规则挖掘算法关联规则挖掘算法是一种用于自动分析数据集的算法。
它通过对数据集进行扫描,找出其中频繁出现的物品集合,进而挖掘出物品之间的关联规则。
常见的关联规则挖掘算法包括Apriori算法、FP-Growth算法、ECLAT算法等。
1. Apriori算法Apriori算法是一种从大规模数据集中寻找频繁模式的算法。
其基本思想是采用迭代的方式,在每一轮迭代中,都先将数据集中的项按照出现频率排序,再使用前一轮迭代中得到的频繁项集来生成新的候选集。
通过多次迭代筛选,最终获得频繁项集。
2. FP-Growth算法FP-Growth算法(频繁模式增长)是一种高效的关联规则挖掘算法。
其基本思想是利用FP树(一种基于前缀树的数据结构)来挖掘频繁项集,并通过递归来发现所有频繁项集。
3. ECLAT算法ECLAT算法(等价类集合聚类算法)是一种基于垂直数据格式的关联规则挖掘算法。
该算法基于集合间的等价关系,将事务数据集分成若干等价类,进而挖掘频繁项集。
三、关联规则挖掘的应用关联规则挖掘算法在各个领域中均得到了广泛的应用。
例如,在电商中,通过分析购物车中的商品,可以挖掘出商品之间的关联规则,进而为用户推荐相关商品;在超市中,通过分析顾客的购物行为,可以发现商品之间的关联规则,进而进行优惠券发放等等。
四、结语关联规则挖掘算法是数据挖掘中的一种重要的算法分支,其应用场景广泛且成效显著。
关联规则挖掘基本概念和算法--张令杰10121084

研究生课程论文关联规则挖掘基本概念和算法课程名称:数据仓库与数据挖掘学院:交通运输专业:交通运输规划与管理年级:硕1003班姓名:张令杰学号:10121084指导教师:徐维祥摘要 (Ⅰ)一、引言 (1)二、关联规则的基本描述 (1)三、经典频繁项集挖掘的Apriori算法 (3)四、提高Apriori算法的效率 (6)五、由频繁项集产生关联规则 (8)六、总结 (9)参考文献 (9)目前,数据挖掘已经成为一个研究热点。
关联规则数据挖掘是数据挖掘的一个主要研究内容,关联规则是数据中存在的一类重要的可被发现的知识。
其核心问题是如何提高挖掘算法的效率。
本文介绍了经典的关联规则挖掘算法Apriori并分析了其优缺点。
针对该算法的局限性,结合Apriori性质,本文对Apriori中连接的步骤进行了改进。
通过该方法,可以有效地减少连接步产生的大量无用项集并减少判断项集子集是否是频繁项集的次数。
关键词:Apriori算法;关联规则;频繁项集;候选集一、 引言关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。
如果两项或多项属性之间存在关联,那么其中一项的属性就可以依据其他属性值进行预测。
它在数据挖掘中是一个重要的课题,最近几年已被业界所广泛研究。
关联规则挖掘的一个典型例子是购物篮分析[1]。
关联规则研究有助于发现交易数据库中不同商品(项)之间的联系,找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响。
分析结果可以应用于商品货架布局、货存安排以及根据购买模式对用户进行分类。
最著名的关联规则发现方法是R. Agrawal 提出的Apriori 算法。
关联规则挖掘问题可以分为两个子问题:第一步是找出事务数据库中所有大于等于用户指定的最小支持度的数据项集;第二步是利用频繁项集生成所需要的关联规则,根据用户设定的最小置信度进行取舍,最后得到强关联规则。
识别或发现所有频繁项目集市关联规则发现算法的核心。
二、关联规则的基本描述定义1. 项与项集数据库中不可分割的最小单位信息,称为项目,用符号i 表示。
关联规则挖掘的分类

关联规则挖掘的分类一、引言关联规则挖掘是数据挖掘领域中的一项重要技术,它可以从大量的数据中发现隐藏在其中的关联关系。
通过挖掘这些关联规则,可以帮助企业或机构了解客户需求、市场趋势等信息,从而制定更有效的营销策略和商业决策。
本文将介绍关联规则挖掘的基本概念和分类,并提供详细的规则。
二、基本概念1.关联规则关联规则是指在一个数据集合中,两个或多个项之间的关系。
例如,在一个购物清单中,如果经常一起购买牛奶和面包,则可以得出“牛奶→面包”的关联规则。
2.支持度和置信度支持度是指某个项集出现在所有交易记录中的比例。
例如,在100个交易记录中,有60次出现了“牛奶”,因此“牛奶”的支持度为60%。
置信度是指如果一个交易记录包含某个项集A,那么它也会包含另一个项B的概率。
例如,“牛奶→面包”的置信度为70%,表示在所有购买了“牛奶”的交易记录中,有70%也购买了“面包”。
3.频繁项集频繁项集是指在数据集中经常出现的项集。
例如,在一个购物清单中,如果“牛奶”和“面包”经常一起出现,则可以将它们组成一个频繁项集。
三、关联规则挖掘的分类1.基于Apriori算法的关联规则挖掘Apriori算法是一种基于频繁项集的关联规则挖掘算法。
其基本思想是从单个项开始,逐步扩展到更大的项集,直到不再有频繁项集为止。
具体步骤如下:(1)找出所有单个项的支持度;(2)根据支持度阈值筛选出频繁1-项集;(3)根据频繁1-项集生成候选2-项集;(4)计算候选2-项集的支持度,并根据支持度阈值筛选出频繁2-项集;(5)重复上述步骤,直到不再有频繁k-项集为止。
Apriori算法的优点是简单易懂,容易实现。
但是当数据量较大时,其计算复杂度较高。
2.基于FP-growth算法的关联规则挖掘FP-growth算法是一种基于前缀树结构的关联规则挖掘算法。
其基本思想是将数据集转化为一棵FP树,然后通过遍历FP树来挖掘频繁项集。
具体步骤如下:(1)构建FP树;(2)从FP树中挖掘频繁项集。
数据关联规则挖掘

1.关联规则挖掘可以帮助医护人员分析疾病与症状之间的关系,提高疾病诊断的准确性和效率 。 2.通过关联规则挖掘,可以挖掘出疾病与生活习惯、饮食等因素的相关性,为健康管理和疾病 预防提供支持。 3.关联规则挖掘可以为医疗科研提供数据支持,促进医学技术的进步和发展。
关联规则挖掘的应用
▪ FP树的构造
1.FP树是一种特殊的数据结构,用于存储频繁项集的信息,其 中的每个节点表示一个项集。 2.构造FP树的过程中,需要对数据集进行多遍扫描,每次扫描 都会更新FP树的结构。 3.在构造FP树时,需要保证树的深度尽可能小,以减少后续挖 掘的计算量。
FP-Growth算法详解
▪ FP树的挖掘
Apriori算法详解
Apriori算法流程
1.数据预处理:将数据集转换为事务数据库。 2.生成频繁项集:通过逐层搜索和剪枝,生成满足最小支持度 阈值的频繁项集。 3.生成关联规则:基于频繁项集,生成满足最小置信度阈值的 关联规则。
Apriori算法优化
1.通过增加哈希树等数据结构,提高候选项集的生成和测试速 度。 2.采用多线程或分布式计算,提高算法的处理能力。 3.结合其他数据挖掘技术,如聚类或分类,提高关联规则的质 量和实用性。
数据关联规则挖掘
关联规则挖掘的应用
关联规则挖掘的应用
▪ 关联规则挖掘在市场营销中的应用
1.关联规则挖掘可以帮助企业分析消费者购买行为,找出商品之间的相关性,为精准营销提供 支持。 2.通过关联规则挖掘,企业可以制定更加精准的营销策略,提高商品销售额和客户满意度。 3.关联规则挖掘可以为企业的市场预测和决策提供依据,提高企业的竞争力和市场占有率。
FP-Growth算法详解
数据挖掘原理与算法关联规则挖掘

内容提要
基本概念与处理措施 经典旳频繁项目集生成算法分析 Apriori算法旳性能瓶颈问题 Apriori旳改善算法
2024/9/29
1
3.1 基本概念与处理措施
关联规则挖掘(Association Rule Mining)是数据挖掘中研究较早而 且至今仍活跃旳研究措施之一。
(2) genrules( lk , lk);
算法3-4旳关键是genrules递归过程,它实现一种 频繁项目集中全部强关联规则旳生成。
2024/9/29
15
算法-递归测试一种频集中旳关联规则
算法3-5 递归测试一种频集中旳关联规则
genrules(lk: frequent k-itemset, xm: frequent m-itemset)
对于每一种频繁项目集l,生成其全部旳非空子集; 对于l 旳每一种非空子集x,计算Conference(x),假
如Confidence(x)≥minconfidence,那么“x(l-
x)”成立。
算法3-4 从给定旳频繁项目集中生成强关联规则
Rule-generate(L,minconf)
(1) FOR each frequent itemset lk in L
confidence=conf”;
(6) IF (m-1 > 1) THEN //generate rules with subsets of xm-1 as
antecedents
(7) genrules(lk, xm-1);
(8) END (9)END;
2024/9/29
16
Rule-generate算法例子
定义3-2(频繁项目集).给定全局项目集I和数据库D ,D 中全部满足顾客指定旳最小支持度(Minsupport)旳项目 集,即不小于或等于minsupport旳I旳非空子集,称为频繁 项目集(频集:Frequent Itemsets)或者大项目集(Large Iitemsets)。在频繁项目集中挑选出全部不被其他元素包 括旳频繁项目集称为最大频繁项目集(最大频集: Maximum Frequent Itemsets)或最大大项目集 (Maximum Large Iitemsets)。
数据挖掘中的关联规则挖掘算法

数据挖掘中的关联规则挖掘算法数据挖掘是通过对大量数据的分析和处理,发现其中隐藏的模式、关系和规律的过程。
而关联规则挖掘算法就是其中的一种重要方法,它帮助我们发现数据集中的频繁项集和关联规则。
一、关联规则挖掘算法简介关联规则挖掘算法是指在事务型数据中挖掘频繁项集和关联规则的方法。
频繁项集指的是在一组数据事务中频繁出现的项集,而关联规则则是指形如{A}→{B}的规则,其中A和B为项集。
常用的关联规则挖掘算法包括Apriori算法和FP-growth算法。
二、Apriori算法Apriori算法是最早被提出和广泛应用的关联规则挖掘算法之一。
它基于频繁项集的性质,使用候选集和剪枝策略来逐步生成频繁项集。
1. 候选集生成Apriori算法的第一步是生成候选集,即通过扫描数据集来获取初始的候选项集C1。
然后根据C1生成候选项集C2,再根据C2生成C3,以此类推,直到生成不再增长的候选集。
2. 剪枝策略在生成候选集的过程中,Apriori算法采用了一种称为“Apriori性质”的剪枝策略,即如果一个项集不是频繁的,那么它的超集也不是频繁的。
这样可以减少不必要的计算。
3. 频繁项集生成通过候选集生成步骤得到的候选集,通过扫描数据集来计算支持度,并筛选出频繁项集,即满足最小支持度阈值的项集。
4. 关联规则生成根据频繁项集,生成关联规则。
对于每个频繁项集,可以根据置信度阈值来筛选出满足条件的关联规则。
三、FP-growth算法FP-growth算法是一种用于挖掘频繁项集的高效算法。
它通过构建一种称为FP树的数据结构,显著减少了候选项集的生成和扫描数据集的次数。
1. 构建FP树FP-growth算法首先通过扫描数据集构建FP树。
FP树是一种前缀树,它通过链接相似的项集,将频繁项集的信息压缩到了树中。
2. 构建条件模式基通过FP树,可以获取每个项集的条件模式基。
条件模式基是指以某个项集为后缀的路径集合。
3. 递归挖掘频繁项集利用条件模式基,可以递归地挖掘频繁项集。
关联规则挖掘及相关算法的介绍

关联规则挖掘及相关算法的介绍关联规则挖掘是数据挖掘中的一项重要任务,它的目标是发现数据集中的项集之间的频繁关联关系。
通过挖掘关联规则,我们可以获取数据中的隐藏信息,从而帮助企业做出更加明智的决策。
本文将介绍关联规则挖掘的基本概念、算法原理以及常用的挖掘算法。
首先,我们来了解一下关联规则挖掘的基本概念。
关联规则是指一个前项和一个后项之间的关联关系,通常用IF前项,则后项的形式表示。
例如,"如果顾客购买了咖啡,则很有可能会购买牛奶"。
其中,“顾客购买了咖啡”是前项,"购买牛奶"是后项。
关联规则通常会带有一个置信度度量,表示被数据支持的程度。
置信度越高,关联规则越可靠。
关联规则挖掘的核心问题是如何发现频繁项集。
频繁项集是指在数据集中经常出现的项集。
如果一个项集的支持度(出现的频率)超过事先设定的阈值,则认为它是频繁项集。
通过挖掘频繁项集,我们可以进一步发现这些项集之间的关联规则。
现在,我们来介绍一些常用的关联规则挖掘算法。
1. Apriori 算法:Apriori 算法是关联规则挖掘中最经典的算法之一、它通过迭代的方式生成候选项集,并利用频繁项集的性质进行剪枝,最终得到频繁项集。
Apriori 算法的核心思想是利用先验原理,即如果一个项集是频繁的,那么它的所有子集也必须是频繁的。
Apriori 算法的时间复杂度较高,随着项集的增长而呈指数增长。
2. FP-growth 算法:FP-growth 算法是一种基于树结构的关联规则挖掘算法。
它通过构建一个称为 FP 树的树结构来挖掘频繁项集。
FP-growth 算法首先通过扫描数据集构建 FP 树,然后通过递归树来发现频繁项集。
相比于 Apriori算法,FP-growth 算法不需要生成候选项集,因此更加高效。
3. Eclat 算法:Eclat 算法是一种基于垂直数据格式的关联规则挖掘算法。
垂直数据格式将事务数据转化为项集-事务矩阵的形式,在这个矩阵中,每一列表示一个项,每一行表示一条事务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
研究生课程论文关联规则挖掘基本概念和算法课程名称:数据仓库与数据挖掘学院:交通运输专业:交通运输规划与管理年级:硕1003班姓名:张令杰学号:10121084指导教师:徐维祥摘要 (Ⅰ)一、引言 (1)二、关联规则的基本描述 (1)三、经典频繁项集挖掘的Apriori算法 (3)四、提高Apriori算法的效率 (6)五、由频繁项集产生关联规则 (8)六、总结 (9)参考文献 (9)目前,数据挖掘已经成为一个研究热点。
关联规则数据挖掘是数据挖掘的一个主要研究内容,关联规则是数据中存在的一类重要的可被发现的知识。
其核心问题是如何提高挖掘算法的效率。
本文介绍了经典的关联规则挖掘算法Apriori并分析了其优缺点。
针对该算法的局限性,结合Apriori性质,本文对Apriori中连接的步骤进行了改进。
通过该方法,可以有效地减少连接步产生的大量无用项集并减少判断项集子集是否是频繁项集的次数。
关键词:Apriori算法;关联规则;频繁项集;候选集一、 引言关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。
如果两项或多项属性之间存在关联,那么其中一项的属性就可以依据其他属性值进行预测。
它在数据挖掘中是一个重要的课题,最近几年已被业界所广泛研究。
关联规则挖掘的一个典型例子是购物篮分析[1]。
关联规则研究有助于发现交易数据库中不同商品(项)之间的联系,找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响。
分析结果可以应用于商品货架布局、货存安排以及根据购买模式对用户进行分类。
最著名的关联规则发现方法是R. Agrawal 提出的Apriori 算法。
关联规则挖掘问题可以分为两个子问题:第一步是找出事务数据库中所有大于等于用户指定的最小支持度的数据项集;第二步是利用频繁项集生成所需要的关联规则,根据用户设定的最小置信度进行取舍,最后得到强关联规则。
识别或发现所有频繁项目集市关联规则发现算法的核心。
二、关联规则的基本描述定义1. 项与项集数据库中不可分割的最小单位信息,称为项目,用符号i 表示。
项的集合称为项集。
设集合{}k i i i I,,,21 =是项集,I 中项目的个数为k ,则集合I 称为k -项集。
例如,集合{啤酒,尿布,牛奶}是一个3-项集。
定义2. 事务设{}k i i i I ,,,21 =是由数据库中所有项目构成的集合,一次处理所含项目的集合用T 表示,{}n t t t T ,,,21 =。
每一个i t 包含的的项集都是I 子集。
例如,如果顾客在商场里同一次购买多种商品,这些购物信息在数据库中有一个唯一的标识,用以表示这些商品是同一顾客同一次购买的。
我们称该用户的本次购物活动对应一个数据库事务。
定义3. 项集的频数(支持度计数)包括项集的事务数称为项集的频数(支持度计数)。
定义4. 关联规则关联规则是形如Y X ⇒的蕴含式,其中X ,Y 分别是I 的真子集,并且φ=⋂Y X 。
X 称为规则的前提,Y 称为规则的结果。
关联规则反映X 中的项目出现时,Y 中的项目也跟着出现的规律定义5. 关联规则的支持度(support )关联规则的支持度是交易集中同时包含的X 和Y 的交易数与所有交易数之比,记为support ()Y X ⇒,即Support ()Y X ⇒= support Y X ⋃=()XY P支持度反映了X 和Y 中所含的项在事务集中同时出现的频率。
定义6. 关联规则的置信度(confidence )关联规则的置信度是交易集中包含X 和Y 的交易数与所有交易数与包含X 的交易数之比,记为confidence ()Y X ⇒,即Confidence ()Y X ⇒=()()()X Y P X port Y X port =⋃sup sup 置信度反映了包含X 的事务中,出现Y 的条件概率。
定义7. 最小支持度与最小置信度通常用户为了达到一定的要求,需要指定规则必须满足的支持度和置信度阈限,当support ()Y X ⇒、confidence ()Y X ⇒分别大于等于各自的阈限值时,认为Y X ⇒是有趣的,此两个值称为最小支持度阈值(min_ sup)和最小置信度阈值(min_ conf)。
其中,min_ sup 描述了关联规则的最低重要程度,min_ conf 规定了关联规则必须满足的最低可靠性。
定义8. 频繁项集设{}n u u u U ,,,21 =为项目的集合,且I U ⊆,Φ≠U ,对于给定的最小支持度min_ sup ,如果项集U 的支持度support ()U ≥min_ sup ,则称U 为频繁项集,否则,U 为非频繁项集。
定义9. 强关联规则support ()Y X ⇒≥min_ sup 且confidence ()Y X ⇒≥min_ conf ,称关联规则Y X ⇒为强关联规则,否则称Y X ⇒为弱关联规则。
性质[2]. 设X 和Y 是数据集D 中的项目集(1)若Y X ⊆,则support ()X ≥support ()Y(2)若Y X ⊆,如果X 是非频繁项目集,则Y 也是非频繁项目集,即任意弱项目集的超集都是弱项集。
(3)若Y X ⊆,如果Y 是非频繁项目集,则X 也是非频繁项目集,即任意大项集的子集都是大项集。
三、经典频繁项集挖掘的Apriori 算法[3](一)Apriori 算法基本思想。
Apriori 算法基本思想是通过对数据库的多次扫描来计算项集的支持度,发现所有的频繁项集从而生成关联规则。
Apriori 算法对数据集进行多次扫描。
第一次扫描得到频繁1-项集的集合L 1,第k (k>1)次扫描首先利用第(k-l )次扫描的结果L k 来产生候选k-项集的集合C k ,然后再扫描的过程中确定C k 中元素的支持度,最后再每一次扫描结束时计算频繁k-项集的集合L k ,算法当候选k-项集的集合C k 为空时结束。
(二)Apriori 算法产生频繁项集的过程。
产生频繁项集的过程主要分为连接和剪枝两步:①连接步。
为找L k ,通过L k-1与自身作连接产生候选k-项集的集合C k 。
设1l 和2l 是L k-1中的项集。
记[]j l i 表示i l 的第j 个项。
Apriori 假定事务或项集中的项按字典次序排序。
对于(k-1)项集i l ,意味将项排序,使[]1i l < []2i l <…<[]1-k l i 。
如果Lk-1的元素1l 和2l 的前(k-2)个对应项相等,则1l 和2l 可连接。
即,如果([]11l =[]12l )∩([]21l =[]22l )∩…∩([]21-k l =[]22-k l )∩([]11-k l <[]12-k l )时,1l 和2l 可连接。
条件[]11-k l <[]12-k l 仅仅是保证不重复。
连接1l 和2l 产生的结果项集为([]11l ,[]21l ,…,[]11-k l ,[]12-k l )。
②剪枝步。
Apriori 算法的性质可知,频繁k-项集的任何子集必须是频繁项集。
由连接生成的集合Ck 需要进行验证,去除不满足支持度的非频繁k-项集。
(三)Apriori 算法的主要步骤①扫描全部数据,产生候选1-项集的集合C 1;②根据最小支持度,由候选1-项集的集合C 1产生频繁1-项集的集合L 1;③对k>1,重复执行步骤④、⑤、⑥;④由L k 执行连接和剪枝操作,产生候选(k+l )-项集的集合C k+1;⑤根据最小支持度,由候选(k+l )-项集的集合C k+1,产生频繁(k+1)-项集的集合L k+1; ⑥若L ≠Φ,则k=k+1,跳往步骤④;否则,跳往步骤⑦;⑦根据最小置信度,由频繁项集产生强关联规则,结束。
(四)Apriori 算法描述。
输入:数据库D ,最小支持度阀值min_ sup输出:D中的频繁集L(1)Begin(2)L1=1-频繁项集;(3)for(k=2;L k-1≠Φ;k++)do begin(4)C k=Apriori_ gen(L k-1);{调用函数Apriori_ gen(L k-1)通过频繁(k-1)-项集产生候选k-项集}(5)for所有数据集t∈D do begin {扫描D用于计数}(6)C t=subset(C k,t);{用subset找出该事务中是候选的所有子集}(7)for所有候选集c∈C t do(8)c. count++;(9)end;(10)L k={c∈C k |c. count≥min_ sup}(11)end(12)end(13)Return L1∪L2∪L k…∪L m{形成频繁项集的集合}(五)、Apriori算法的举例[1]下图是一个数据库的事务列表,在数据库中有9笔交易,即|D|=9。
每笔交易都用不同的TID作代表,交易中的项按字典序存放,下面描述一下Apriori算法寻找D中频繁项集的过程。
设最小支持度计数为2,即min_ sup=2,利用Apriori算法产生候选项集及频繁项集的过程如下所示:第一次扫描:扫描数据库D 获得每个候选项的计数:C 1 L 1由于最小事务支持数为2,没有删除任何项目。
可以确定频繁1-项集的集合L1,它由具有最小支持度的候选1-项集组成。
第二次扫描:为发现频繁2项集的集合L 2,算法使用L 1∞L 1产生候选2项集的集合C 2。
在剪枝步没有候选从C 2中删除,因为这些候选的每个子集也是频繁的。
C 1 C 2 L 2第三次扫描:L 2∞L 2产生候选3项集的集合C 3。
C3 C3 L3候选3项集C3的产生详细地列表如下:(a) 连接C3=L2∞L2={{I1,I2},{I1,I3},{I1,I5},{I2,I3},{I2,I4},{I2,I5}} ∞{{I1,I2},{I1,I3},{I1,I5},{I2,I3},{I2,I4},{I2,I5}}={{I1,I2,I3},{I1,I2,I5},{I1,I3,I5},{I2,I3,I4},{I2,I3,I5},{I2,I4,I5}}(b) 使用Apriori性质剪枝:频繁项集的所有非空子集也必须是频繁的。
例{I1,I3,I5}的2项子集是{I1,I3},{I1,I5}和{I3,I5}。
{I3,I5}不是L2的元素,因而不是频繁的。
因此,从C3中删除{I1,I3,I5}(c) 这样,剪枝C3={{I1,I2,I3},{I1,I2,I5}}第四次扫描:算法使用L3∞L3产生候选4-项集的集合C4。
L3∞L3={{I1,I2,I3,I5}},根据Apriori 性质,因为它的子集{I2,I3,I5}不是频繁的,所以这个项集被删除。
这样C4= Φ,因此算法终止,找出了所有的频繁项集。