关联规则挖掘——Apriori

算法目的

    关联规则挖掘中有一个非常典型的案例,"啤酒纸尿裤"案例,讲的是通过对一家超市的销售情况研究发现,很多买了纸尿裤的客户,同时会购买啤酒,经过调查发现,买这些纸尿裤的一般是家庭父亲,他们在被家庭主妇派去买纸尿裤时,会同时选择购买啤酒来犒劳自己,根据这个发现,超市将纸尿裤和啤酒放在一起,或者将它们进行捆绑销售,提高了产品的销量。
    关联规则挖掘就是通过挖掘算法来找到事物背后隐藏的关联规则,从而来指导实践,相类似的还有键盘与鼠标等

关联规则基础概念

  • 关联规则:形式为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,则频繁项集为:
项集 支持度计数
3
posted @ 2021-10-30 10:15  codedogzlc  阅读(436)  评论(0编辑  收藏  举报