#介绍
关联规则又称频繁模式挖掘,旨在搜索给定数据集中反复出现的联系。啤酒与尿布的故事太过于经典了,做数据处理的同学应该都听说过这个故事,这个故事其实是BI产品编造出来的数据“神话”,但是算法本质原理还是值得研究的。这个故事也就是说把有关联的东西放在一起,可以方便顾客的购买。
一般,关联规则可以应用的场景有:
- 优化货架商品摆放或者优化邮寄商品的目录
- 交叉销售或者捆绑销售
- 搜索词推荐或者识别异常
#基础概念 - 项目:数据集中的一个元数据,对超市的交易来说一般是指交易中的一个物品,如啤酒;
- 项集:若干项目的集合,如{啤酒,尿布};
- 频繁模式:频繁地出现在数据集中的模式;
- 频繁项集:频繁地同时出现在数据集中的项目集合;
- 支持度:项集在总数据集中出现的概率;
- 置信度:在条件X下,根据规则{X->Y}推导出Y的概率;
- 提升度:是一种简单的相关性度量,可以用来评价所发现模式的相关性。
#实现过程
实现过程也是按照上面三个度进行:首先在数据集中找到频繁项集,即满足最小支持度的项集;然后计算是否符合强关联规则,即满足最小置信度;最后验证筛选有效的强关联规则,即提升度>1。
支持度是在全部数据集中,{A,B}同时出现的概率;置信度是条件A下,同时发生B的概率,公式可表示如下:
s u p p o r t ( A = > B ) = P ( A ∪ B ) support(A=>B) = P(A\cup B) support(A=>B)=P(A∪B)
c o n f i d e n c e ( A = > B ) = P ( B ∣ A ) = s u p p o r t ( A ∪ B ) s u p p o r t ( A ) = s u p p o r t _ c o u n t ( A ∪ B ) s u p p o r t _ c o u n t ( A ) confidence(A=>B) = P(B|A) = \frac{support(A\cup B)}{support(A)} = \frac{support\_count(A\cup B)}{support\_count(A)} confidence(A=>B)=P(B∣A)=support(A)support(A∪B)=