一、基础知识
上次我们介绍了几个关联分析的概念,支持度,置信度,提升度。这次我们重点回顾一下置信度和提升度:
置信度(Confidence):置信度是指如果购买物品A,有较大可能购买物品B。计算方式是这样:
置信度( A -> B) = (包含物品A和B的记录数量) / (包含 A 的记录数量)
举例:我们已经知道,(牛奶,鸡蛋)一起购买的次数是两次,鸡蛋的购买次数是4次。那么置信度Confidence(牛奶->鸡蛋)的计算方式是Confidence(牛奶->鸡蛋)=2 / 4。
提升度(Lift):提升度指当销售一个物品时,另一个物品销售率会增加多少。计算方式是:
提升度(Lift):提升度指当销售一个物品时,另一个物品销售率会增加多少。计算方式是:
提升度( A -> B) = 置信度( A -> B) / (支持度 A)
举例:上面我们计算了牛奶和鸡蛋的置信度Confidence(牛奶->鸡蛋)=2/4。牛奶的支持度Support(牛奶)=3 / 5,那么我们就能计算牛奶和鸡蛋的支持度Lift(牛奶->鸡蛋)=0.83
当提升度(A->B)的值大于1的时候,说明物品A卖得越多,B也会卖得越多。而提升度等于1则意味着产品A和B之间没有关联。最后,提升度小于1那么意味着购买A反而会减少B的销量。
举个例子,有了这个指标,你就能看出卖越多的汉堡就会卖越多的番茄酱。但卖越多的沐浴露,则可能香皂的销量会下降。
二. 关联规则
我们前面已经用Apriori得到频繁项集了。那么我们就可以在频繁项集的基础上,找到这里面的关联规则。而计算关联规则所用到的,就是我们上面所说的置信度和提升度。
这里有一点要注意,当我们发现置信度(A->B)很高的时候,反过来的值置信度(B->A)不一定很高。
一个物品的关联结果是非常多的。但好在,我们上一节学习了Apriori思想。运用在置信度上也是合适的:
如果一个关联结果的置信度低,那么它的所有超集的置信度也低。
这样一来,我们就能节省很多的计算量。
三. Apriori关联规则实战
我们还是用mlxtend库,根据上一篇找到的频繁项集,计算出它们的关联规则。在此之前,还是先介绍一下相应API的参数。