专栏名称: CDA数据分析师
CDA数据分析师品牌官方微信,开放、创新、分享。
目录
相关文章推荐
天池大数据科研平台  ·  一行代码,我优化掉了1G内存占用 ·  昨天  
软件定义世界(SDX)  ·  CB ... ·  3 天前  
数据派THU  ·  最新RAG综述:15种经典RAG框架综述(上) ·  3 天前  
大数据D1net  ·  2025年大数据重回焦点,决定AI成败 ·  2 天前  
51好读  ›  专栏  ›  CDA数据分析师

干货|关联规则分析怎么做?你需要知道这3大关键词、4大步骤

CDA数据分析师  · 公众号  · 大数据  · 2017-05-02 18:00

正文

作者   熊辉

本文转载自 BDP商业数据平台,转载需授权

关联规则是反映一个事物与其他事物之间的相互依存性和关联性,常用于实体商店或在线电商的推荐系统:通过对顾客的购买记录数据库进行关联规则挖掘,最终目的是发现顾客群体的购买习惯的内在共性,例如购买产品A的同时也连带购买产品B的概率,根据挖掘结果,调整货架的布局陈列、设计促销组合方案,实现销量的提升,最经典的应用案例莫过于。


关联规则分析中的关键概念包括:支持度(Support)、置信度(Confidence)与提升度(Lift)。首先,我们简单温故下这3个关键指标:


支持度 (Support)

支持度是两件商品(A∩B)在总销售笔数(N)中出现的概率,即A与B同时被购买的概率。


公式:

例子说明:

比如某超市2016年有100w笔销售,顾客购买可乐又购买薯片有20w笔,顾客购买可乐又购买面包有10w笔,那可乐和薯片的关联规则的支持度是20%,可乐和面包的支持度是10%。


置信度 (Confidence)

置信度是购买A后再购买B的条件概率。简单来说就是交集部分C在A中比例,如果比例大说明购买A的客户很大期望会购买B商品。


公式:




例子说明:

某超市2016年可乐购买次数40w笔,购买可乐又购买了薯片是30w笔,顾客购买可乐又购买面包有10w笔,则购买可乐又会购买薯片的置信度是75%,购买可乐又购买面包的置信度是25%,这说明买可乐也会买薯片的关联性比面包强,营销上可以做一些组合策略销售。


提升度 (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中如何实现Apriori算法,实现关联规则分析:


商品两两组合的初步想法是通过量化的思想对商品进行编码,比方说可按照增序(从1开始),算出每笔销售单最大值,求出两者差值得到一组数组,通过数组行转列形式实现2种商品两两组合。

图:销售单2种商品两两组合逻辑图


实现过程

操作①:


【工作表】-【创建合表】-【SQL创建】




图:商品量化


上图转换成日期的形式,主要目的是为下一步的数组转列做准备,为配合explode()函数使用。其中需要说明的是上图[日期]字段是自定义日期,可以更改成任意日期,没有实际日期意义。



图:商品组合数效果


上图主要使用的关键函数是FILL_DATES([日期1],[日期2]),Explode()。组合效果初显现,只是缺另一个商品名,然后把[下一日期]字段通过LEFT JOIN 关联出商品B的名称。


操作②:


【工作表】-【创建合表】-【多表关联】 用于创建表关联 包括(LEFT/INNER/ FULL  JOIN)




图:商品组合数实现


从上图可以看到A商品和B商品两两组合逻辑已完成,在当前表基础上我们已经可以去做连带分析内容。


在这里,求Freq(A)和Freq(B)和总笔数数值就不祥述了,思想大致是求出所有销售商品的A 和B商品的频次,通过合表关联,整合到一张大表。

 

操作③:


【工作表】-【创建合表】-【追加合并】合并订单总数 ,A商品订单数,B商品订单数和A∩B商品连带笔数


图:追加合并逻辑实现


追加合并可以把相同字段商品合并在一起,方便计算三个指标(支持度、置信度、提升度)有利于可视化展现。

 

操作④:


可视化展现:【BDP】-【仪表盘】


图:仪表盘全局展示


注:为了更好体现可视化效果这部分的可视化展示成果并非使用上述的测试数据或某个企业数据。


制作三个图表进行购物篮分析:


图: TOP 20商品连带次数


上图反映季度连带最高频次商品,高联带商品意味着对客户吸引力大商品粘性强,同时也可以查看不同分公司的TOP20连带情况。根据结果我们可以合理设计促销策略,例如买2送1等。


图:商品组合指标


置信度高说明商品连带紧密,说明客户连带意愿强,同时关注支持度,支持度高说明是需求量大,如果支持度低,置信度高其实对市场作用是有限小的。



图:购物来分析详情


通过单价,支持度,置信度,提升度综合指标来看待商品组合,发现高价值关联商品,有助于提升客单价,同时也需要考虑提升度,提升度小于1,提升效果有限,可以把精力花在提升度大于1的商品组合。

 

同样地,我们是否可以实现三种商品的组合呢?答案是显然的,只要我们深入理解以上过程,三种商品关联也是可以在BDP中实现的。



推荐阅读

听说你最擅长“拖”,你“拖”得过Excel吗?

数据科学优质课程推荐#2:统计入门课程篇

歌手外科和猴姑,大数据告诉你白百何出轨后谁最惨

想学习数据科学?我们整理了一份优质编程入门课程清单

数据科学家在美国仍然是最热门工作的3大原因

一个优秀数据分析师的准则

Python 实现一个火车票查询的工具

干货 | 携程实时用户行为系统实践

数据分析证明最靠谱的电影评分网站不是 IMDB, 也不是烂番茄,而是...

那些年,写 Python 犯过的错误

我用6.5万条公开数据分析了一下人民眼中的人民的名义

如何获得你的第一份数据科学领域的工作?

北京空气质量数据可视化

几个提高工作效率的Python内置小工具

Python 自然语言处理《釜山行》人物关系

函数 | 这8组Excel函数,帮您解决工作中80%的难题

国外公司是如何挖掘社交媒体数据的?

大数据舆情情感分析,如何提取情感并使用什么样的工具?(贴情感标签)

【干货】Pandas速查手册中文

四步搭建企业服务数据分析体系

【干货】找不到适合自己的编程书?我自己动手写了一个热门编程书搜索网站(附PDF书单)