BDP超管 发表于 2021-7-16 18:33:06

关联性分析-购物篮分析案例实操讲解


很多用户购买产品A的同时,也连带购买了产品B,根据这个结果调整货架的布局陈列、设计促销组合方案,实现销量的提升。最经典的应用案例莫过于大家熟知的<啤酒和尿布>。
这就是通过对顾客的购买记录数据库进行关联规则挖掘,最终发现顾客群体的购买习惯的内在共性,从而优化设计提升销量。关联规则是反映一个事物与其他事物之间的相互依存性和关联性,常用于实体商店或在线电商的推荐系统。在关联规则分析中有3大关键词:支持度(Support)、置信度(Confidence) 与 提升度(Lift)
1、支持度(Support)支持度是两件商品(A∩B)在总销售笔数(N)中出现的概率,即A与B同时被购买的概率。类似于中学学的交集,需要元素同时满足条件。公式:例子说明:比如某超市2016年有100w笔销售,顾客购买可乐又购买薯片有20w笔,顾客购买可乐又购买面包有10w笔,那可乐和薯片的关联规则的支持度是20%,可乐和面包的支持度是10%。
2、置信度(Confidence)置信度是购买A后再购买B的条件概率。简单来说就是交集部分C在A中比例,如果比例大说明购买A的客户很大期望会购买B商品。公式:
例子说明:某超市2016年可乐购买次数40w笔,购买可乐又购买了薯片是30w笔,顾客购买可乐又购买面包有10w笔,则购买可乐又会购买薯片的置信度是75%,购买可乐又购买面包的置信度是25%,这说明买可乐也会买薯片的关联性比面包强,营销上可以做一些组合、捆绑策略销售。
3、 提升度(Lift)提升度表示先购买A对购买B的概率的提升作用,用来判断规则是否有实际价值,即使用规则后商品在购物车中出现的次数是否高于商品单独出现在购物车中的频率。如果大于1说明规则有效,小于1则无效。
公式:
例子说明:可乐和薯片的关联规则的支持度是20%,购买可乐的支持度是3%,购买薯片的支持度是5%,则提升度是1.33>1, A-B规则对于商品B有提升效果。
理论很简单,真正实践起来却会遇到种种困难,印证了那句"数据分析师的50%~80%的时间都花在了处理数据上”,例如一般POS明细是下图形式展现:

要计算支持度(Support)、置信度(Confidence)与提升度(Lift),首先需要知道Freq(A∩B)、Freq(A)、Freq(B)和总笔数数值,那么需要对商品进行排列组合,转换数据显示出所有不同的商品组合的形式。
例如销售ID=000001,我们转换成下表形式, 4种商品的两两组合(种):

若一个收银小票(销售ID)有30种商品,则组合数达到:

而可视化层级上还需要展现集团下每个分公司、每个城市、每个门店、月度、季度或者年度时间的关联规则分析,如果用传统的工具来实现上述分析无异于大海捞针。
BDP一直以高效的数据处理和优秀的可视化数据分析著称。在BDP中,不仅可以便捷地实现多维数据分析,还可以通过灵活强大的功能组合来进行更深层面的数据分析探索。
从一个分析师的角度来看,我认为BDP有以下三个最大的亮点:
1. 易操作性——可以很好地、很快地把想法转化为实践应用。2. 优秀的处理能力——轻松处理亿级数据,尤为突出的是合表速度秒级响应,这得益于BDP强大的大数据架构以及云端计算能力。3. 灵活及优秀的可视化——通过拖拽的方式即可实现可视化,同时也可进行自定义报表。下面我们就来看看在BDP中如何实现关联规则分析~
1、上传数据上传一份示例数据,可以看到13条数据中,包含3条订单中的信息

2、对该数据表进行full join
我们需要在同一张表中,显示商品A和商品B 2列字段,对该表进行自关联,获取所有商品A对应商品B的情况

3、创建数据聚合合表,设置过滤条件
在上步操作结果中我们可以发现,关联出了相同商品的情况,我们需要将该种情况过滤掉A商品名称不等于B商品名称

同时,我们会发现,在关联表中,存在AB和BA这种数据,计算同时购买AB【Freq(A∩B)】的数量时,会导致重复统计,结果加倍,所以如何保证计算同时购买AB商品的时候数据准确呢?
我们可以对AB和BA这2条数据加上统一标识,然后对其进行排序,在统计同时购买数据时,只统计排序序号为1的
这里我们可以使用商品id连接值作为统一标识:
(1)增加商品id连接字段:(调整商品编号连接顺序,使AB和BA的相同)

(2)增加排序字段:按照商品编号连接和订单编号字段对每条数据进行排序【注意:需要在数据聚合合表编辑界面添加该字段】

4、创建数据聚合合表,统计同时购买AB商品的订单数
按照商品编号连接为维度,每一个商品编号连接数,都代表一种商品组合
过滤条件为排序字段=1(只保留同一订单编号下AB和BA的一条数据)

5、制作商品订单数统计表用原始数据制作数据聚合合表,统计每种商品的订单数

6、制作聚合表,求总订单数
总订单数可以对原表订单编号数进行数据聚合求得结果,同时,我们在聚合后的表中增加一列固定值,作为关联字段

7、制作最终表,包含Freq(A∩B)、Freq(A)、Freq(B)和总订单数
制作多表关联合表:
(1)去除AB相同表—同时购买AB商品表关联出同时购买AB商品订单数
(2)去除AB相同表—商品订单数(使用A商品字段作为关联字段)关联出A商品订单数字段
(3)去除AB相同表—商品订单数(使用B商品字段作为关联字段)关联出B商品订单数字段
(4)去除AB相同表—总订单数(使用上一步添加的相同字段作为关联字段)关联出总订单数字段
支持度计算:置信度计算:
提升度计算:
在最终数据展示时,由于存在多订单合并求和情况,所以在做图时选择「平均值」展示即可

最后还可以通过可视化形式进行分析展示:(为保证可视化效果,以下图表并非使用上述的测试数据或某个企业数据)




页: [1]
查看完整版本: 关联性分析-购物篮分析案例实操讲解