关联规则挖掘的概念
关联规则挖掘就是寻找隐藏在给定的数据记录集中数据项之间的相互依赖关系,反映了数据之间的密切程度。
关联规则的种类
简单关联
买面包的顾客中,有90%的可能性同时也会购买牛奶
时序关联
买汽车的顾客中,有70%的可能性后面还会购买车内用品
支持度与置信度
支持度(supp)
在 数据库D 中A、B、C三项同时出现的比率
置信度(conf)
在A出现的情况下,B、C也出现的比率
或在A、B都出现的情况下,C出现的比率
频繁项集
所有支持度不小于用户设定的最小支持度的项集称为频繁项集
Apriori定理
频繁项集的所有非空子集也都必须是频繁的
Apriori算法关联规则挖掘详细过程
以用户购买商品为例,分析用户的购买行为
用户购买商品记录
首先设定最小支持计数为2,最小支持度为2/5=40%,最小支持度根据实际情况人为设定,一般不能取得太小,否则挖掘得到的结果会没有太大意义。
第1步:扫瞄所有的事务D,统计每个项(每件商品)的出现次数,产生候选1-项集的集合C1
C1
第2步:通过比较,将C1中支持度计数不小于最小支持度(2)的候选1-项集选出(这里删除面包/雨伞/可口可乐/洗衣粉),产生频繁1-项集的集合L1
L1
第3步:利用自身连接L1 X L1产生候选2-项集的集合C2,扫瞄所有的事务D,统计C2中每个候选项集的支持度计数
C2
第4步:通过比较,将C2中支持度计数不小于最小支持度(2)的候选2-项集选出,产生频繁2-项集的集合L2
L2
第5步:利用自身连接L2 X L2,产生候选3-项集的集合C3,重复上述过程,直至产生的候选项集不满足Apriori定理。此处由于候选3-项集为空, 频繁2-项集为最终结果
举个例子帮大家理解为什么候选3-项集为空,比如说L2 X L2得到其中的一个3 -项集是{啤酒,尿布,牛奶},Apriori定理说频繁项集的所有非空子集也都必须是频繁的,{啤酒,尿布,牛奶}包括三个子集{啤酒,尿布},{啤酒,牛奶},{尿布,牛奶},其中{啤酒,尿布},{啤酒,牛奶}是频繁的,因为它们都出现在了L2中,但是{尿布,牛奶}不是频繁的,因此3 -项集是{啤酒,尿布,牛奶}不满足Apriori定理,其余理解类似。
关联规则产生:据以上结果,关联规则的产生如下
1. 啤酒→尿布,置信度= 3/4= 75%
2. 尿布→啤酒,置信度= 3/4= 75%
3. 牛奶→啤酒,置信度= 2/2= 100%
4. 啤酒→牛奶,置信度= 2/4= 50%
5. 尿布→婴儿爽身粉,置信度= 2/4= 50%
6. 婴儿爽身粉→尿布,置信度= 2/2= 100%
置信度计算举例啤酒→尿布,{啤酒,尿布}一起在原始购买记录中共出现了3次,而啤酒单独在原始购买记录中共出现了4次,啤酒→尿布置信度={啤酒,尿布}一起出现的次数/啤酒单独出现的次数。
有效规则:据所定最小置信度阈值的不同,可得有效的规则。置信度越大,表明关联规则越强。
“牛奶→啤酒”和“婴儿爽身粉→尿布”都是强关联规则,结果表明,购买牛奶的用户于此同时基本都还会购买啤酒,购买了婴儿爽身粉的用户于此同时也基本还会购买尿布。