•关联规则用来发现在同一事件中出现的不同项的相关性,即找出事务中频繁发生的项或属性的所有子集,以及项目之间的相互关联性。
•D:事务数据库;
•I:项目(item)集合,I=(i1,i2,…im),其中,i1,i2,…im为数据库中的项目;
•T:数据库中的事务;
•X:项集(itemset),即一个项目的集合;
•k项集:包含k个项目的集合;
•支持度s(X):项集X的支持度,表示数据库中包含项集X的交易数据的条数;
•频繁项集:也称为频繁模式。指支持度大于用户指定的最小支持度的项集;
•频繁k-项集(k frequent itemset):长度为k的频繁项集;
•关联规则挖掘的任务是找到事务数据库D中支持度和置信度分别满足用户指定的最小支持度min_sup和最小置信度min_con的规则。
•关联规则挖掘问题分为两个子问题(或者说是两个步骤):
–(1) 找出D中所有的频繁项集;
–(2) 从频繁项集中产生关联规则。
•其中,第一个子问题所需要的计算量和磁盘I/O量都较大,几乎所有的关联规则挖掘算法都是针对第一个子问题提出的。
•基于关联规则中处理的变量的类别,可以分为布尔型和数值型两种。
–性别=“男”=>职业=“网络工程师”,是布尔型关联规则;
–性别=“男”=>avg(收入)=3500,其中的收入项是数值类型,所以是一个数值型关联规则。
•基于规则中数据的抽象层次分类,可以分为单层关联规则和多层关联规则。
–Sony数码照相机=>Sony彩色喷墨打印机,是一个细节数据上的单层关联规则;
–数码照相机=>Sony彩色喷墨打印机,是一个较高层次和细节层次之间的多层关联规则。
•基于规则中涉及到的数据的维数分类,关联规则可以分为单维的和多维的。
–啤酒=>尿布,这条规则只涉及到用户购买的商品;
–性别=“男”=>职业=“网络工程师”,涉及到两个字段的信息,是两个维上的关联规则。
•基于模式与规则之间的相互关系分类,可以分为完全频繁模式挖掘、最大频繁模式挖掘和闭合频繁模式挖掘。
•一维单层布尔型关联规则最初由Agrawal等人于1994年提出,这就是著名的Apriori算法,这个算法成为后来绝大多数关联规则挖掘算法的基础。
•
•Apriori性质:频繁项集的所有非空子集也都必须是频繁的
•第1步:通过迭代,检索出源数据中的所有频繁项集,即支持度不低于用户设定的阀值的项集;
•第2步:利用第1步中检索出的频繁项集构造出满足用户最小信任度的规则。
逐级搜索的思想:
将K-1频繁项集作为生成K频繁项集的种子。
这里由于K频繁项集里的任意K-1项子集都必须是K-1频繁项集
所有有一个优化的计算过程
•Apriori算法的一个突出优势是其对大型数据库的处理能力,不需将事务数据库读入内存就可以完成挖掘任务。
•缺点是需要多次扫描数据库。