关联规则挖掘基本概念和算法--张令杰10121084
- 格式:doc
- 大小:848.50 KB
- 文档页数:12
数据挖掘中的关联规则算法使用方法教程数据挖掘是一门通过从大量数据中发现隐藏模式、关系和信息的技术。
关联规则算法是数据挖掘中的重要工具,用于发现数据集中的关联关系和规律。
本教程将介绍关联规则算法的基本概念、使用方法和常见问题。
一、关联规则算法概述关联规则算法主要用于发现数据集中的关联关系和规律,它可以帮助我们了解事物之间的相互关系,并通过这些关系进行预测和推断。
常见的应用场景包括购物篮分析、市场篮子分析、推荐系统等。
关联规则算法通过分析频繁项集和支持度,找到频繁项集之间的关联规则。
频繁项集是指在数据集中频繁出现的组合项集,支持度是指某个项集在数据集中出现的频率。
通过计算支持度和置信度,可以找到具有较高置信度的关联规则。
常用的关联规则算法包括Apriori算法、FP-Growth算法和Eclat算法。
接下来将逐一介绍这些算法的使用方法。
二、Apriori算法1. Apriori算法基本原理Apriori算法是关联规则算法中最常用的一种算法。
它通过迭代的方式逐步生成频繁项集,然后根据频繁项集生成关联规则。
Apriori算法的基本原理如下:- 生成频繁1项集;- 循环生成候选k项集,并计算支持度;- 剪枝:删除支持度低于阈值的项集,得到k频繁项集;- 生成关联规则,并计算置信度。
2. Apriori算法使用步骤使用Apriori算法进行关联规则挖掘的步骤如下:- 输入数据集:准备一份包含项集的数据集;- 设置支持度和置信度的阈值;- 生成频繁1项集;- 根据频繁1项集生成2频繁项集;- 通过剪枝操作得到k频繁项集;- 根据频繁项集生成关联规则,并计算置信度;- 输出频繁项集和关联规则。
三、FP-Growth算法1. FP-Growth算法基本原理FP-Growth算法是一种高效的关联规则挖掘算法,它通过构建频繁模式树来快速发现频繁项集和关联规则。
FP-Growth算法的基本原理如下:- 构建FP树:将数据集构造成FP树,每个节点表示一个项,每个路径表示一条事务;- 构建条件模式基:从FP树中抽取频繁1项集,并构建条件模式基;- 通过条件模式基递归构建FP树;- 根据FP树生成关联规则。
关联规则挖掘算法关联规则挖掘算法的核心思想是寻找频繁项集和关联规则。
频繁项集是指经常同时出现的物品集合,而关联规则是指物品之间的关联关系。
关联规则通常以“如果...那么...”的形式呈现,表示不同物品之间的逻辑关系。
有多种关联规则挖掘算法可供选择,其中最常见的包括Apriori算法、FP-growth算法和Eclat算法。
Apriori算法是最早也是最著名的关联规则挖掘算法之一、它基于Apriori原理,即如果一个项集是频繁的,那么它的所有子集也一定是频繁的。
该算法首先通过扫描数据集来确定频繁项集,然后使用频繁项集生成关联规则。
FP-growth算法是一种基于分析树结构的快速关联规则挖掘算法。
它通过构建频繁模式树(FP-tree)来发现频繁项集和关联规则。
FP-growth算法相对于Apriori算法具有更高的效率,因为它不需要生成候选集,而是通过对数据集的多次扫描来构建FP-tree。
Eclat算法是一种基于垂直数据表示(vertical data representation)的关联规则挖掘算法。
它将项集表示为其在事务中的出现位置的集合,通过递归地挖掘次数递减的频繁项集来生成关联规则。
Eclat算法更适用于稠密数据集,因为它只需要对数据进行水平扫描。
关联规则挖掘算法的应用非常广泛。
在市场营销中,它可以帮助企业发现产品之间的关联关系,从而进行有针对性的推广和销售。
在电子商务中,它可以通过分析用户的购买记录来推荐相关产品。
在医疗领域中,它可以帮助发现潜在的疾病风险因素。
在社交网络分析中,它可以用于发现用户之间的关联关系和行为模式。
总结来说,关联规则挖掘算法是一种强大的数据分析工具,可以帮助分析人员发现数据中的隐藏模式和规律。
不同的算法有不同的优势和适用场景,选用合适的算法可以提高挖掘效率和准确性,从而为决策提供有价值的参考。
数据分析中的关联规则挖掘与应用随着大数据时代的到来,数据分析成为了各个行业中不可或缺的一环。
而在数据分析的过程中,关联规则挖掘作为一种重要的技术方法,被广泛应用于市场营销、推荐系统、医疗健康等领域。
本文将探讨关联规则挖掘的原理、方法以及其在实际应用中的价值。
一、关联规则挖掘的原理关联规则挖掘是一种基于数据挖掘的技术方法,用于发现数据集中项集之间的关联关系。
其基本原理是通过分析数据集中的项集之间的频繁程度和关联度,从而找出其中的关联规则。
关联规则通常表示为X→Y,其中X和Y分别代表项集,表示当出现X时,很可能会出现Y。
关联规则的挖掘过程主要包括两个步骤:频繁项集的发现和关联规则的生成。
频繁项集指的是在数据集中出现频率较高的项集,而关联规则则是在频繁项集的基础上,通过计算置信度或支持度等指标,筛选出具有一定关联性的规则。
二、关联规则挖掘的方法关联规则挖掘的方法主要包括Apriori算法、FP-Growth算法等。
其中,Apriori算法是一种经典的关联规则挖掘算法,其基本思想是通过迭代的方式,逐渐增加项集的大小,从而找到频繁项集。
而FP-Growth算法则是一种基于前缀树的高效关联规则挖掘算法,通过构建FP树和利用条件模式基,可以快速挖掘频繁项集。
在实际应用中,根据数据集的特点和需求,选择合适的关联规则挖掘方法非常重要。
不同的方法有着不同的优势和适用范围,需要根据具体情况进行选择。
三、关联规则挖掘的应用关联规则挖掘在实际应用中有着广泛的应用价值。
首先,关联规则挖掘可以应用于市场营销领域。
通过分析购物篮中的商品组合,可以挖掘出消费者的购买习惯和偏好,从而进行精准的商品推荐和定价策略制定。
其次,关联规则挖掘在推荐系统中也有着重要的应用。
通过分析用户的历史行为和偏好,可以为用户推荐相关的商品或内容,提高用户的满意度和粘性。
此外,关联规则挖掘还可以应用于医疗健康领域。
通过分析患者的病历数据和疾病发展规律,可以挖掘出潜在的疾病关联关系,为医生提供辅助诊断和治疗的参考。
浅谈关联规则挖掘算法—读A New Joinless Apriori Algorithm for Mining Association Rules有感(宁德师范学院 352100 张世良)摘要:数据挖掘是一个多学科交叉融合而形成的新兴的学科,它利用各种分析工具在海量数据中发现模型和数据间的关系。
而在大规模事务数据库中,挖掘关联规则是数据挖掘领域的一个非常重要的研究课题。
文中介绍了关联规则挖掘的研究情况,描述了经典Apriori算法的实现,并对该算法进行了分析和评价,指出了其不足和原因。
并对FP树挖掘最大频繁项集的算法描述,并得到结论:数据库中潜在的最大频繁模式越多,运行时间越长。
关键词:数据挖掘;关联规则;频繁项集;FP树Briefly Discuss of Mining Association Rules AlgorithmAbstract:Data mining is an emerging subject that composed and amalgamated by multiple subjects.It is an analytic process designed to explore data in search of consistent patterns and systematic relationship a between variables.Mining association rules in business transaction data has one of the important topic of research on data mining .This paper introduced the research complexion of the association rules mining algorithm,describes the classical Aprlori algorithm,analyses and evaluates it.The author emphasizes FP tree mining maximum frequent item sets algorithm specially.And evaluates perforce of the algorithm through instance.At the end,the paper gives the conclusion:the more maximum frequent item pattern in the database,the longer run time is needed .Key words:data mining ;association rules;frequent item sets;FP tree 0 引言简单地说,数据挖掘(data mining)是揭示存在于数据里的模式及数据间的关系的学科,它强调对大量观测到的数据库的处理。
研究生课程论文关联规则挖掘基本概念和算法课程名称:数据仓库与数据挖掘学院:交通运输专业:交通运输规划与管理年级:硕1003班姓名:张令杰学号:10121084指导教师:徐维祥摘要 (Ⅰ)一、引言 (1)二、关联规则的基本描述 (1)三、经典频繁项集挖掘的Apriori算法 (3)四、提高Apriori算法的效率 (6)五、由频繁项集产生关联规则 (8)六、总结 (9)参考文献 (9)目前,数据挖掘已经成为一个研究热点。
关联规则数据挖掘是数据挖掘的一个主要研究内容,关联规则是数据中存在的一类重要的可被发现的知识。
其核心问题是如何提高挖掘算法的效率。
本文介绍了经典的关联规则挖掘算法Apriori并分析了其优缺点。
针对该算法的局限性,结合Apriori性质,本文对Apriori中连接的步骤进行了改进。
通过该方法,可以有效地减少连接步产生的大量无用项集并减少判断项集子集是否是频繁项集的次数。
关键词:Apriori算法;关联规则;频繁项集;候选集一、 引言关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。
如果两项或多项属性之间存在关联,那么其中一项的属性就可以依据其他属性值进行预测。
它在数据挖掘中是一个重要的课题,最近几年已被业界所广泛研究。
关联规则挖掘的一个典型例子是购物篮分析[1]。
关联规则研究有助于发现交易数据库中不同商品(项)之间的联系,找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响。
分析结果可以应用于商品货架布局、货存安排以及根据购买模式对用户进行分类。
最著名的关联规则发现方法是R. Agrawal 提出的Apriori 算法。
关联规则挖掘问题可以分为两个子问题:第一步是找出事务数据库中所有大于等于用户指定的最小支持度的数据项集;第二步是利用频繁项集生成所需要的关联规则,根据用户设定的最小置信度进行取舍,最后得到强关联规则。
识别或发现所有频繁项目集市关联规则发现算法的核心。
二、关联规则的基本描述定义1. 项与项集数据库中不可分割的最小单位信息,称为项目,用符号i 表示。
关联规则挖掘算法关联规则是形如x→y的蕴涵式,其中, x和y分别称为关联规则的先导(antecedent 或left-hand-side, lhs)和后继(consequent或right-hand-side, rhs) 。
其中,关联规则xy,存在支持度和信任度。
挖掘过程两个阶段关联规则挖掘过程主要包含两个阶段:第一阶段必须先从资料集合中找出所有的高频项目组(frequent itemsets),第二阶段再由这些高频项目组中产生关联规则(association rules)。
关联规则发掘的第一阶段必须从完整资料子集中,找到所有高频项目组(large itemsets)。
高频的意思就是所指某一项目组发生的频率相对于所有记录而言,必须达至某一水平。
一项目组发生的频率称作积极支持度(support),以一个涵盖a与b两个项目的2-itemset为基准,我们可以经由公式(1)求出涵盖{a,b}项目组的积极支持度,若积极支持度大于等同于所预设的最轻积极支持度(minimum support)门槛值时,则{a,b}称作高频项目组。
一个满足用户最轻积极支持度的k-itemset,则称作高频k-项目组(frequent k-itemset),通常则表示为large k或frequent k。
算法并从large k的项目组中再产生large k+1,直至无法再找出更长的高频项目组年才。
关联规则挖掘的第二阶段是要产生关联规则(association rules)。
从高频项目组产生关联规则,是利用前一步骤的高频k-项目组来产生规则,在最小信赖度(minimum confidence)的条件门槛下,若一规则所求得的信赖度满足最小信赖度,称此规则为关联规则。
例如:经由高频k-项目组{a,b}所产生的规则ab,其信赖度可经由公式(2)求得,若信赖度大于等于最小信赖度,则称ab为关联规则。
案例分析就沃尔马案例而言,使用关联规则挖掘技术,对交易资料库中的纪录进行资料挖掘,首先必须要设定最小支持度与最小信赖度两个门槛值,在此假设最小支持度min_support=5% 且最小信赖度min_confidence=70%。
关联规则挖掘及相关算法的介绍关联规则挖掘是数据挖掘中的一项重要任务,它的目标是发现数据集中的项集之间的频繁关联关系。
通过挖掘关联规则,我们可以获取数据中的隐藏信息,从而帮助企业做出更加明智的决策。
本文将介绍关联规则挖掘的基本概念、算法原理以及常用的挖掘算法。
首先,我们来了解一下关联规则挖掘的基本概念。
关联规则是指一个前项和一个后项之间的关联关系,通常用IF前项,则后项的形式表示。
例如,"如果顾客购买了咖啡,则很有可能会购买牛奶"。
其中,“顾客购买了咖啡”是前项,"购买牛奶"是后项。
关联规则通常会带有一个置信度度量,表示被数据支持的程度。
置信度越高,关联规则越可靠。
关联规则挖掘的核心问题是如何发现频繁项集。
频繁项集是指在数据集中经常出现的项集。
如果一个项集的支持度(出现的频率)超过事先设定的阈值,则认为它是频繁项集。
通过挖掘频繁项集,我们可以进一步发现这些项集之间的关联规则。
现在,我们来介绍一些常用的关联规则挖掘算法。
1. Apriori 算法:Apriori 算法是关联规则挖掘中最经典的算法之一、它通过迭代的方式生成候选项集,并利用频繁项集的性质进行剪枝,最终得到频繁项集。
Apriori 算法的核心思想是利用先验原理,即如果一个项集是频繁的,那么它的所有子集也必须是频繁的。
Apriori 算法的时间复杂度较高,随着项集的增长而呈指数增长。
2. FP-growth 算法:FP-growth 算法是一种基于树结构的关联规则挖掘算法。
它通过构建一个称为 FP 树的树结构来挖掘频繁项集。
FP-growth 算法首先通过扫描数据集构建 FP 树,然后通过递归树来发现频繁项集。
相比于 Apriori算法,FP-growth 算法不需要生成候选项集,因此更加高效。
3. Eclat 算法:Eclat 算法是一种基于垂直数据格式的关联规则挖掘算法。
垂直数据格式将事务数据转化为项集-事务矩阵的形式,在这个矩阵中,每一列表示一个项,每一行表示一条事务。
数据分析知识:数据分析中的关联规则挖掘关联规则挖掘是数据分析领域中的一项重要技术。
它主要用于挖掘数据集中的相关性关系,从而发现隐藏在数据中的规律和模式。
在实际应用中,关联规则挖掘被广泛应用于市场营销、电子商务、金融风险控制等领域。
一、什么是关联规则挖掘关联规则挖掘是指在一个数据集中挖掘出不同数据之间的相关性并发现它们的规律和模式,从而获得有价值的业务洞见的过程。
一个典型的关联规则挖掘过程包括两个步骤:支持度和置信度。
支持度是指在所有交易中的某个商品或商品组合出现的次数。
置信度是指当某个商品出现时,另外一个商品也会同时出现的可能性。
二、关联规则挖掘的原理关联规则挖掘技术的原理主要基于频繁项集和关联规则。
频繁项集是指在数据集中出现次数较多的项,而关联规则指出多个项之间的相关性。
频繁项集和关联规则的发现可以帮助我们理解数据中的关系和模式,并帮助我们做出更好的决策。
三、关联规则挖掘的步骤关联规则挖掘的过程主要分为以下几个步骤:1、数据预处理。
包括数据清洗和特征选择等。
在此过程中,我们需要删除数据集中的错误数据并对数据进行转换和缩放。
2、将数据转换为事务型数据集。
在此过程中,我们需要将数据集转换为一个包含事务的数据集。
事务是指一个包含多个对象的集合,每个对象有一个唯一的标识符。
3、提取频繁项集。
在此过程中,我们需要识别出数据集中所有频繁项集。
频繁项集是指在一个数据集中出现频次较高的项。
4、生成关联规则。
在此过程中,我们需要识别出数据集中的所有关联规则。
关联规则是指两个或多个项之间的关系。
5、评估规则。
在此过程中,我们需要评估各个关联规则之间的强度,并筛选出最有价值的规则。
我们可以使用置信度和支持度等指标来评估关联规则的强度。
四、关联规则挖掘的应用关联规则挖掘技术在市场营销、电子商务、金融风险控制等领域发挥着重要的作用。
1、市场营销。
在市场营销中,我们可以使用关联规则挖掘技术来发现不同产品之间的相关性。
这有助于我们提高销售额,增加利润,并了解客户需求。
数据科学中的关联规则挖掘方法与应用案例数据科学是当今信息时代的热门领域之一,它通过收集、处理和分析大量的数据来揭示隐藏在其中的规律和趋势。
在数据科学的研究中,关联规则挖掘是一种常用的方法,它用于发现数据集中的关联关系。
本文将介绍关联规则挖掘的基本概念、方法和应用案例。
一、关联规则挖掘的基本概念关联规则挖掘是一种数据挖掘技术,用于发现数据集中的频繁项集和关联规则。
频繁项集是指在数据集中经常同时出现的一组项,而关联规则则是描述这些项之间的关联关系。
例如,在一个超市的销售数据中,频繁项集可以是购买了牛奶和面包的顾客,而关联规则可以是“如果顾客购买了牛奶,那么他们也很可能购买面包”。
关联规则通常使用两个指标来衡量其质量,即支持度和置信度。
支持度是指一个规则在数据集中出现的频率,而置信度是指规则的条件发生时,结论也发生的概率。
支持度和置信度都是在0到1之间的值,越大表示规则越强。
二、关联规则挖掘的方法关联规则挖掘有多种方法,其中最常用的是Apriori算法。
Apriori算法是一种迭代的方法,它通过不断生成候选项集和剪枝来发现频繁项集和关联规则。
具体来说,Apriori算法首先扫描数据集,统计每个项的支持度,然后根据设定的最小支持度阈值生成频繁一项集。
接下来,Apriori算法使用频繁一项集生成候选二项集,并再次扫描数据集计算支持度,剪枝得到频繁二项集。
以此类推,直到无法生成更多的频繁项集为止。
除了Apriori算法,还有其他一些关联规则挖掘方法,如FP-Growth算法和Eclat算法。
FP-Growth算法通过构建一种称为FP树的数据结构来发现频繁项集,而Eclat算法则使用垂直数据格式来存储和处理数据。
三、关联规则挖掘的应用案例关联规则挖掘在各个领域都有广泛的应用,以下是其中一些典型的案例:1. 零售业:超市和电商平台可以利用关联规则挖掘来发现商品之间的关联关系,从而进行交叉销售和推荐。
例如,当顾客购买了一种商品时,系统可以推荐其他常一起购买的商品,提高交易额和用户满意度。
数据挖掘中的关联规则与频繁项集挖掘算法在当今信息爆炸的时代,随着数据规模的不断增加,数据挖掘技术越来越受到重视。
数据挖掘是一种从大量数据中提取隐含的、以前未知的、潜在有用的信息的过程。
数据挖掘技术可以帮助企业和机构更好地理解其数据,发现其中的规律和模式,并据此做出合理的决策。
在数据挖掘中,关联规则与频繁项集挖掘算法是两个重要的技术,本文将对它们进行详细介绍。
一、关联规则关联规则是数据挖掘中常用的一种技术,用于发现数据中的关联关系。
关联规则通常用来描述数据之间的相关性,并找出一些隐藏的规律和关系。
它可以被应用于很多领域,例如市场营销、医疗诊断、天气预测等。
一个典型的关联规则可以表示为“A→B”,意思是当事件A发生时,事件B也会发生。
其中A和B可以是单个项或者项集。
1.找出频繁项集在关联规则挖掘中,首先需要找出频繁项集。
频繁项集是指经常出现在一起的一组项的集合。
找出频繁项集有多种算法,其中最著名的是Apriori算法和FP-growth算法。
Apriori算法是一种基于候选集生成的方法,它通过不断迭代的方式来找出频繁项集。
而FP-growth 算法则是一种基于数据压缩的方法,它通过构建FP树来高效地发现频繁项集。
2.计算关联规则在找出频繁项集之后,接下来需要计算关联规则。
计算关联规则的方法通常有两种,一种是基于支持度和置信度的方法,另一种是基于卡方检验的方法。
支持度是指一个项集在数据集中出现的频率,而置信度是指如果项集A出现,则项集B也出现的概率。
通过对支持度和置信度的限定,可以筛选出符合要求的关联规则。
3.应用关联规则找出关联规则之后,可以将其应用于实际业务中。
例如在市场营销中,可以根据关联规则来设计促销活动;在医疗诊断中,可以根据关联规则来发现疾病的潜在因素。
因此,关联规则在实际应用中具有广泛的价值。
二、频繁项集挖掘算法频繁项集挖掘算法是数据挖掘中的一种重要技术,它用来找出在数据集中频繁出现的项集。
研究生课程论文关联规则挖掘基本概念和算法课程名称:数据仓库与数据挖掘学院:交通运输专业:交通运输规划与管理年级:硕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= Φ,因此算法终止,找出了所有的频繁项集。