关联规则Apriori算法分析如何真正实现?
关联规则是反映一个事物与其他事物之间的相互依存性和关联性,常用于实体商店或在线电商的推荐系统—通过对顾客的购买记录数据库进行关联规则挖掘,最终目的是发现顾客群体的购买习惯的内在共性,例如购买产品A的同时也连带购买产品B的概率,根据挖掘结果,调整货架的布局陈列、设计促销组合方案,实现销量的提升,最经典的应用案例莫过于大家熟知的<啤酒和尿布>。
操作方法
- 01
关联规则3大关键词:支持度(Support)、置信度(Confidence)与提升度(Lift)。我们先简单了解下这3个关键指标!
- 02
1、支持度:支持度是两件商品(A∩B)在总销售笔数(N)中出现的概率,即A与B同时被购买的概率。类似于中学学的交集,需要元素同时满足条件,公式如图2。
- 03
例子说明: 比如某超市2016年有100w笔销售,顾客购买可乐又购买薯片有20w笔,顾客购买可乐又购买面包有10w笔,那可乐和薯片的关联规则的支持度是20%,可乐和面包的支持度是10%。
- 04
2、置信度:置信度是购买A后再购买B的条件概率。简单来说就是交集部分C在A中比例,如果比例大说明购买A的客户很大期望会购买B商品,公式如下图!
- 05
例子说明: 某超市2016年可乐购买次数40w笔,购买可乐又购买了薯片是30w笔,顾客购买可乐又购买面包有10w笔,则购买可乐又会购买薯片的置信度是75%,购买可乐又购买面包的置信度是25%,这说明买可乐也会买薯片的关联性比面包强,营销上可以做一些组合、捆绑策略销售。
- 06
3、提升度:提升度表示先购买A对购买B的概率的提升作用,用来判断规则是否有实际价值,即使用规则后商品在购物车中出现的次数是否高于商品单独出现在购物车中的频率。如果大于1说明规则有效,小于1则无效,公式如下图!
- 07
例子说明: 可乐和薯片的关联规则的支持度是20%,购买可乐的支持度是3%,购买薯片的支持度是5%,则提升度是1.33>1, A-B规则对于商品B有提升效果。
- 08
要计算支持度(Support)、置信度(Confidence)与提升度(Lift),首先需要知道Freq(A∩B)、Freq(A)、Freq(B)和总笔数数值,那么需要对商品进行排列组合。
- 09
下面我们就来看看在BDP中如何实现Apriori算法,实现关联规则分析~ 商品两两组合的初步想法是通过量化的思想对商品进行编码,比方说可按照增序(从1开始),算出每笔销售单最大值,求出两者差值得到一组数组,通过数组行转列形式实现2种商品两两组合。
- 10
BDP实现的4大步骤: 操作1:点击【工作表】-【创建合表】-【SQL创建】。下图转换成日期的形式,主要目的是为下一步的数组转列做准备,为配合explode()函数使用。其中需要说明的是上图[日期]字段是自定义日期,可以更改成任意日期,没有实际日期意义。
- 11
下图主要使用的关键函数是FILL_DATES([日期1],[日期2]),Explode()。组合效果初显现,只是缺另一个商品名,然后把[下一日期]字段通过LEFT JOIN 关联出商品B的名称。
- 12
操作2:【工作表】-【创建合表】-【多表关联】 用于创建表关联 包括(LEFT/INNER/ FULL JOIN)。从下图可以看到A商品和B商品两两组合逻辑已完成,在当前表基础上我们已经可以去做连带分析内容。
- 13
操作3:【工作表】-【创建合表】-【追加合并】合并订单总数 ,A商品订单数,B商品订单数和A∩B商品连带笔数。追加合并可以把相同字段商品合并在一起,方便计算三个指标(支持度、置信度、提升度)有利于可视化展现。
- 14
操作4:可视化展现:【仪表盘】-【拖拽生成图表】
- 15
制作三个图表进行购物篮分析! 下图反映季度连带最高频次商品,高联带商品意味着对客户吸引力大商品粘性强,同时也可以查看不同分公司的TOP20连带情况。根据结果我们可以合理设计促销策略,例如买2送1等。
- 16
置信度高说明商品连带紧密,说明客户连带意愿强,同时关注支持度,支持度高说明是需求量大,如果支持度低,置信度高其实对市场作用是有限小的。
- 17
通过单价,支持度,置信度,提升度综合指标来看待商品组合,发现高价值关联商品,有助于提升客单价,同时也需要考虑提升度,提升度小于1,提升效果有限,可以把精力花在提升度大于1的商品组合。
- 18
除了购物篮分析这个典型应用,关联规则分析还在 金融行业、搜索引擎、智能推荐等领域大有所为,如银行客户交叉销售分析、搜索词推荐或者识别异常、基于兴趣的实时新闻推荐等。