算法目的
关联规则挖掘中有一个非常典型的案例,"啤酒纸尿裤"案例,讲的是通过对一家超市的销售情况研究发现,很多买了纸尿裤的客户,同时会购买啤酒,经过调查发现,买这些纸尿裤的一般是家庭父亲,他们在被家庭主妇派去买纸尿裤时,会同时选择购买啤酒来犒劳自己,根据这个发现,超市将纸尿裤和啤酒放在一起,或者将它们进行捆绑销售,提高了产品的销量。
关联规则挖掘就是通过挖掘算法来找到事物背后隐藏的关联规则,从而来指导实践,相类似的还有键盘与鼠标等
关联规则基础概念
- 关联规则:形式为A->B,如{面包}->{牛奶,果酱},表示面包与牛奶和果酱之间存在关联关系
- 项:事物的类型,类似数据表中的字段,在"啤酒纸尿裤"中,啤酒和质量库就是两个项
- 项集:项的集合,根据所含项的多少,分为单位项,2项,3项等等
- 事务:行为的记录,类似数据表中的记录,在"啤酒纸尿裤"中,指代用户的一次次购买行为
- 支持计数:某一项集在所有事务中出现的次数
- 支持度:某一项集在所有事务中占的比例,即支持计数除以总事务数,用于判断某一项集是否为频繁项集
- 置信度:关联规则中,后件项集在前件项集中出现的频繁程度,对于{面包}->{牛奶,果酱},就是牛奶,果酱这一组合在所有出现面包的事务中出现的频率,置信度越高,表示关联性越强
- 最小支持度:用于判断某一项集是否为频繁项集,大于最小支持度时,为频繁项集
- 最小置信度,用于判断某一关联规则是否为强关联规则,大于最小支持度时,为强关联规则
Apriori原理
- 1、找出所有可能的大小为1候选项集,大小为1时,所有项集都是候选项集,当大于1时,只有当该项集的子项集为频繁项集时,该项集才为候选项集
- 2、根据最小支持度,从候选项集中筛选出频繁项集
- 3、重复1、2步骤,寻找大小+1的频繁项集,直到没有更大的候选项集
事务集:
TID |
商品 |
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
第一步,找出大小为1的候选集: |
|
项集 |
支持度计数 |
|
3 |
|
3 |
|
3 |
|
2 |
|
3 |
|
3 |
第二步,根据最小支持度来筛选出频繁项集,设最小支持度为0.5,则频繁项集为: |
|
项集 |
支持度计数 |
|
3 |
|
3 |
|
3 |
|
3 |
|
3 |
第三步,找出大小为2的候选集: |
|
项集 |
支持度计数 |
|
3 |
|
3 |
|
3 |
|
3 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
第四步,根据最小支持度来筛选出频繁项集,设最小支持度为0.5,则频繁项集为: |
|
项集 |
支持度计数 |
|
3 |
|
3 |
|
3 |
|
3 |
第五步,找出大小为3的候选集: |
|
项集 |
支持度计数 |
|
3 |
第四步,根据最小支持度来筛选出频繁项集,设最小支持度为0.5,则频繁项集为: |
|