关联规则(频繁项集)——Apriori

1.该问题最初是对“购物篮”提出来的,著名例子是“尿布与啤酒”。
2.相关概念:
 关联规则的支持度:Support(A,B)=包含A和B的事务数/事务总数
 关联规则的置信度:Confidence(A,B)= 包含A和B的事务数/包含A事务数
 频繁项集:项集的频率大于等于最小支持度。
 强相关规则:同时满足最小支持度和最小置信度。
3.关联规则挖掘的步骤:
 生成频繁项集,然后生成规则
4.Apriori算法:
 思路:第一步先扫描数据库一遍,通过计算每一个1项集的支持度,得到L1(Lk为k频繁集);第二步是反复迭代的方法找到L2,L3...直到不能再找到新的频繁项集时停止迭代。在搜索Lk时,是用Lk-1自连接方法产生候选集Ck,先用一定的剪枝略裁剪候选项;再扫面数据库,计算Ck的支持度,删除非频繁项集,便得到Lk.
 定理1:频繁项集的所有非空子集都是频繁项集。
 定理2:非频繁项集的超集一定是非频繁项集。
5.实例:对于表1-1的交易记录,设定sup=3/10,利用Apriori产生频繁项集.
 表1-1
 
(1)由I={bread,beer,cake,cream,milk,tea}的所有项目产生候选项C1,去掉小于sup的项集。得到表1-2.
 表1-2
 
(2)利用L1中各项组合连接,产生候选项C2,然后扫描记录,得到支持度,然后去掉小于sup的项集,得到L2. 如表1-3所示。
 表1-3
 
(3)利用L2中的各项组合连接产生候选项C3,扫描记录,获得支持度,去掉小于sup的项集,得到L3,如表1-4所示。
 表1-4
 
(4)重复上述步骤,C4为空,所有频繁项集被找到,算法停止。
6.Apriori算法的优点:空间复杂度小,并有两个先验性质。
 Apriori算法的缺点:需要扫描数据库的次数太多,产生的候选项集Ck很多。

7.FP-growth算法:
 其是对Apriori算法的改进,是基于FP-tree的频繁模式增长算法,其不生成候选项集。
 思想:分而治之。在两次扫描数据库后,把数据库压缩到一棵频繁模式树(FP-tree),再将频繁模式树分成一些条件FP树,每一个条件FP树和一个频繁项集相关联,最后,对所有的条件FP树进行挖掘。
 步骤:
(1)构造FP树,FP树是事务数据库的压缩表示,每个事务都映射到FP树中的一条路径。
 针对上例,利用FP-tree思想,先构造表头和FP-tree,如下图:
 
(2)利用FP树产生频繁项集;
 FP增长算法以自底向上的方式搜索FP树,从表项(cream:3)出发,可以找到包含cream的路径<milk:8,bread:5,tea:3,cream:2>和<milk:8,bread:5,cream:1>,根据cream的计数,将上述路径化简为关于cream的如下信息:<milk,bread,tea:2>,<milk,bread:1>,然后建立关于cream的FP-tree ,如下图:
 

 包含项目cream的所有频繁项集
 
根据上述方法一次建立关于tea,bread,milk的FP-tree.得到所有的频繁项集。
 FP-growth算法的优点:
 只遍历数据库2遍,挖掘时间会比Apriori短。
 FP-growth算法的缺点:
 建立FP-tree,会占用大量的内存空间,当生成和释放海量的条件树时,将占用很多的运算时间和计算机空间。
 
 


  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值