思想引入:
所谓关联规则就是找到两件或两件独立事件之间的关联性。比如:著名的啤酒尿布故事——在所有购物记录中(可以把每一条记录想象成是一张小票),买了尿布的顾客大部分都买了啤酒。鉴于此:我们就发现了:在销售领域,啤酒与尿布之间存在着关联关系。发现这样的关联规则就可以更好的指导销售。
相关概念:
-
support(支持度):相关的物品在所有记录中出现的概率。简单理解:就是概率论中的频率。定义:
-
confidence(置信度):一个物品集出现的记录数 占 其中一件物品出现的记录数 的比例。简单理解:就是概率论中的条件概率。即一个事件发生的条件下,另一个事件发生的概率。定义:
存在的误区:
物品A | 物品B | 物品C | 物品D | |
---|---|---|---|---|
1 | 1 | 0 | 0 | 1 |
2 | 0 | 1 | 0 | 0 |
3 | 1 | 1 | 0 | 0 |
4 | 1 | 0 | 0 | 0 |
5 | 1 | 1 | 0 | 1 |
6 | 1 | 1 | 0 | 0 |
7 | 0 | 1 | 0 | 0 |
8 | 1 | 0 | 1 | 0 |
9 | 1 | 0 | 0 | 0 |
10 | 1 | 1 | 0 | 0 |
-
置信度小于先验概率。这里所说的先验概率,我们可以理解为物品的支持度。 解释:比如我们看上表:其中物品集{物品A和物品B}的支持率为:
4/10*100%=40%
而confidence(B->A)的置信度为:
4/6*100%=66%
如果我们认为置信度大于30%就认为物品集之间是存在关联关系的。那么我们就认为物品A和物品B之间是存在关联关系的。
但是这种情况下存在一种问题:物品集{A和B}的置信度小于物品A的支持度。这种情况下,我们也认为是没有关联关系的。这就像本来有百分之八十的人会买衣服,你推导出买了蔬菜的人百分之66%的人会买衣服。这比普遍情况下还差,就没有意义。 -
当两个商品出现的支持度相差非常大时。
解释:观察表格中物品A和物品D。confidence(D->A)=100%。这个值大于物品A的先验概率80%。但其实:这种情况下物品D的先验概率为20%。即:我们可以认为A是频繁购买的物品,D是非频繁购买的物品。如果挖掘出来的关联规则是:购买非频繁物品时会出购买频繁商品。这也是没有意义的。 -
关联规则只是说明相关联的事情之间存在相关性,并不说明事情之间存在因果关系。
例如:美国的犯罪率和冰淇淋的销量之间存在相关性。冰淇淋销量上升,犯罪率上升;冰淇淋销量下降,犯罪率下降。
总结
由以上的知识可以知道:如果我们要去找N件物品之间的关联关系。那么简单的思想是:任意2件物品的组合、任意3件物品的组合、…、N件物品的组合。那么利用组合关系:那么总共要计算的次数将是非常庞大的(使用公式不太熟QAQ,所以这里简单说一下:就是C小标是N上标m,m为组合物品的件数,然后累加起来)。这样的计算量将是非常庞大的。那么一下就介绍两个算法。Apriori和FP-growth。