Apriori算法--关联规则的频繁项集算法-笔记

Apriori算法是一种挖掘关联规则的频繁项集算法,核心思想是通过候选项生成和情节的向下封闭检测两个阶段来挖掘频繁项集。

很多挖掘算法是在Apriori算法的基础上进行改进的,比如基于散列(Hash)的方法,基于数据分割(Partition)的方法,以及不产生候选项集的FP-GROWTH方法。

Apriori算法核心是基于两阶段频集思想的地推方法。该关联规则在分类上属于单维、单层、布尔关联规则。所有支持度大于最小支持度的项集被称为频繁项集,简称频集。

可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法两大缺点。

项的集合称为项集,包含K个项的项集称为K-项集。集合是一个二项集,项集的出项频率是包含项集的事务数,称为项集的频率,支持度计数或计数。注意,第一项集的支持度有时称为相对支持度,而出现频率称为绝对支持度。
如果项集I的支持度满足预定义的最小支持度阈值,则I是频繁项集

关联规则形如 X->Y,X为关联规则的先导,Y为关联规则的后继。

假设I是项的集合。给定一个交易数据库D,其中每个事务(Transaction)t是I的非空子集,即,每一个交易都与一个唯一的标识符TID(Transaction ID)对应。关联规则在D中的支持度(support)是D中事务同时包含X、Y的百分比,即概率;置信度(confidence)是D中事物已经包含X的情况下,包含Y的百分比,即条件概率。如果满足最小支持度阈值和最小置信度阈值。这些阈值是根据挖掘需要人为设定。

TID网球拍网球运动鞋羽毛球
11110
21100
31000
41010
50111
61100

用一个简单的例子说明。表1是顾客购买记录的数据库D,包含6个事务。项集I={网球拍,网球,运动鞋,羽毛球}。考虑关联规则(频繁二项集):网球拍与网球,事务1,2,3,4,6包含网球拍,事务1,2,6同时包含网球拍和网球,X^Y=3,D=6,支持度(X^Y)/D=0.5;X=5, 置信度(X^Y)/X=0.6。若给定最小支持度α = 0.5,最小置信度β = 0.6,认为购买网球拍和购买网球之间存在关联

Apriori算法具有这样一条性质:任一频繁项集的所有非空子集也必须是频繁的。因为假如P(I)< 最小支持度阈值,当有元素A添加到I中时,结果项集(A∩I)不可能比I出现次数更多。因此A∩I也不是频繁的。

Apriori算法流程:

1、过单趟扫描数据库D;计算出各个1项集的支持度,得 到频繁1项集的集合。

2、从2项集开始循环,由频繁k-1项集生成频繁频繁k项集。

2.1>连接步:为了生成,预先生成,由2个只有一个项不同的属于的频集做一 个(k-2)JOIN运算得到的。

2.2> 剪枝步:由于是的超集,所以可能有些元素不是频繁的。舍弃掉子集不是频繁项集即不在频繁k-1项集中的项集

2.3> 扫描数据库,计算2.3步中过滤后的k项集的支持度,舍弃掉支持度小于阈值的项集,生成频繁k项集。

3、当当前生成的频繁k项集中只有一个项集时循环结束

Apriori算法的缺点:(1)由频繁k-1项集进行自连接生成的候选频繁k项集数量巨大。(2)在验证候选频繁k项集的时候需要对整个数据库进行扫描,非常耗时。

网上提到的频集算法的几种优化方法:1、基于划分的方法。2、基于hash的方法。3、基于采样的方法。4、 减少交易的个数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值