购物篮分析

2025-5-27 Guide
  • 报表设计
  • 分析师
About 9 min

# 概述

购物篮分析(Market Basket Analysis)是一种数据挖掘技术,主要用于发现顾客购买行为中的模式和关联。 它通过分析销售交易数据来识别哪些产品经常一起被购买,从而帮助企业更好地理解消费者的购买习惯、优化商品布局、制定促销策略以及提升客户体验。

# 实现思路

测试数据-示例超市.xls (opens new window)

一般我们使用三个指标来度量一个关联规则,这三个指标分别是:支持度置信度提升度

# Support(支持度)

表示某个商品组合在所有交易中出现的频率。例如,如果在100次交易中有20次同时购买了A和B,则A和B的支持度为20%。

支持度 = 同时购买A和B订单数 / 总购买订单数
1

# Confidence(置信度)

指的是在已知一个特定商品被购买的情况下,另一个商品也被购买的概率。比如,“买了A的顾客也买了B”的置信度是80%,意味着在所有包含A的商品篮子中,有80%也包含了B。

置信度 = 同时购买A和B订单数 / 购买A的订单数
1

# Lift(提升度)

衡量两个商品一起购买的概率与它们独立购买概率的比值。提升度大于1表示这两个商品更可能一起被购买;等于1则表明两者独立;小于1说明这些商品倾向于不一起购买。例如,如果“买了A的顾客也买了B”的提升度是2,这意味着买A的顾客买B的可能性是随机情况下预期的两倍。

A的购买比率 = 购买A次数 / 总购买订单数
B的购买比率 = 购买B次数 / 总购买订单数
提升度 = 支持度 / (A的购买比率 * B的购买比率)
1
2
3

# 数据准备

在原有超市订单表基础之间,为了实现找到两种产品的关系可以用订单号自关联, 增加过滤条件AB商品不相等

# 增加计算字段

商品A的订单数 = {FIXED `a_子类别` : distinct(`订单 ID`) }
商品B的订单数 = {FIXED `b_子类别` : distinct(`订单 ID`) }
同时购买商品AB订单数 = {FIXED `a_子类别`, `b_子类别` : distinct(`订单 ID`) }
总订单数 = {FIXED  : distinct(`订单 ID`)}
1
2
3
4

数据 明细 (注意是明细数据不是汇总数据)如下所示

# 增加汇总表达式

由于上面通过计算字段增加的字段已经是汇总级别,所以下面在汇总计算的时候需要选择 max/min/avg 中的一种汇总函数,不能选择sum函数

支持度 = max(`同时购买商品AB订单数`) / max(`总订单数`)
置信度 = max(`同时购买商品AB订单数`) / max(`商品A订单数`)
商品A购买占比 = max(`商品A订单数`) / max(`总订单数`)
商品B购买占比 = max(`商品B订单数`) / max(`总订单数`)
提升度 = ${支持度} / (${商品A购买占比} * ${商品B购买占比})
1
2
3
4
5

# 制作热力图

细节解析

  • 支持度指标设置值格式化,百分数,保留两位小数
  • 配置栏:
    • 数字标签 开启显示
    • 布局:开启自定义,增加右边距
    • 视觉映射:开启自定义,垂直位置居中

# 分析看板

增加联动

Last update: May 27, 2025 16:53