关联规则挖掘算法Aprior和FPGrowth对比与改进

Aprior算法和FPGrowth算法同属于关联规则挖掘算法,但Aprior是基于广度优先的,而FPGrowth是基于深度优先的,即Aprior算法需要建立K项集,然后扫描数据库;而FPGrowth算法则是扫描数据库,然后查找频繁项集。

Aprior算法

Aprior算法的原理和实现参见http://blog.csdn.net/olaking/article/details/42810865http://www.tuicool.com/m/articles/MFZnuuA
但Aprior算法每生成一轮K项集,就需要扫描数据库一次,不仅增加了数据库的负担,并且运算速度慢,故而对Aprior算法进行如下改进:
1.基于hash表的项集计数
将每个项集通过相应的hash函数映射到hash表中的不同的桶中,将桶中的项集计数和最小自信度confidence进行比较,若小于confidence,则将该项集删除。然后根据已经计算的项集生成更多项数的项集,依次映射到哈希表中。这样的方式可以减少项集的存储数量。
2.动态项集计数
在扫描的不同点添加候选项集,这样,如果一个候选项集已经满足最少支持度,则在可以直接将它添加到频繁项集,而不必在这次扫描的以后对比中继续计算。
3.对给定数据的子集进行挖掘
选取原始数据的一个样本进行数据挖掘,这是通过牺牲精确度来降低算法运行开销,样本的大小以恰好放入内存为宜。同时,最小支持度可以适当降低来减少遗漏的频繁项集。
4.事务压缩 (压缩进一步迭代的事务数)
不包含任何k-项集的事务不可能包含任何(k+1)-项集,这种事务在下一步的计算中可以加上标记或删除

FPGrowth

FPGrowth算法的原理和具体实现参见http://www.cnblogs.com/fengfenggirl/p/associate_fpgowth.html,FPGrowth算法只需扫描两次数据库即可。FPGrowth的并行化运算参见http://blog.csdn.net/jameshadoop/article/details/36236305

关联规则评价

有时候,强规则(即同时满足支持度和自信度)并不能成功过滤掉我们并不感兴趣的规则,所以需要新的评价标准
1.相关性系数lift

lift=pABP(A)P(B)=p(A)p(B|A)P(A)P(B)=confidence(A>B)s
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值