教程 ·

关联规则(Apriori)用 AI 一句话完成 — 支持度、置信度、提升度购物篮分析全攻略

关联规则挖掘(Apriori)完整教程:用 AI 一句话完成购物篮分析,自动输出支持度、置信度、提升度,识别频繁项集,并给出符合 APA 格式的学术报告句式。

手上有交易记录、问卷多选题或诊断共病数据?想找出"同时出现率最高的组合"?Apriori 算法的参数设置让人头疼——这篇教程教你用 AI 一句话完成完整的关联规则挖掘,支持度、置信度、提升度一次全齐,可直接用于论文报告。


购物篮问题:为什么传统工具让人头疼

关联规则挖掘(Association Rules Mining)的经典应用是购物篮分析(Market Basket Analysis):从大量交易记录中找出"哪些商品经常被一起购买",从而指导商品陈列、推荐系统和促销策略。

然而在学术研究中,关联规则远不止用于零售:

  • 流行病学:哪些症状或疾病经常共病(如高血压 + 糖尿病 + 肥胖)
  • 教育研究:学生哪些学习行为往往同时出现
  • 问卷分析:多选题中哪些选项经常被同一受访者勾选
  • 医学检查:哪些检查指标异常往往同时出现

但在 R 或 Python 中实现 Apriori 时,研究者面临的真实困难是:

  • min_supportmin_confidencemin_lift 阈值怎么设?不同数据集没有统一标准
  • 规则数量爆炸(成百上千条),哪些才是有意义的?
  • 图形化输出(网络图、气泡图)需要手动绘制
  • 如何按 APA 格式在方法节描述"数据挖掘"方法?

ChatSRS 把从参数选择到报告输出的全套流程压到一句话。


关联规则核心概念

理解三个核心指标是读懂结果的前提。

支持度(Support)

support(A -> B) = P(A ∩ B) = count(A and B) / N

含义:项集 {A, B} 在所有交易中同时出现的比例。

判断标准

  • 支持度衡量规则的普遍性,越高表示该组合越常见
  • 通常设 min_support >= 0.01(1%),低于此阈值的组合视为噪声或罕见关联
  • 在稀疏交易数据中(如医疗诊断),0.005 以上亦可考虑

:1000 笔交易中,500 笔同时包含"面包"和"牛奶",则 support(面包 -> 牛奶) = 0.50。


置信度(Confidence)

confidence(A -> B) = P(B | A) = support(A ∩ B) / support(A)

含义:在所有包含 A 的交易中,同时也包含 B 的比例;即"已知买了 A,买 B 的条件概率"。

判断标准

  • 置信度衡量规则的可靠性,越高表示关联越稳定
  • 通常设 min_confidence >= 0.50(50%),学术文章中常报告 >= 0.60 的规则
  • 置信度不考虑 B 的基准发生率,因此需要结合提升度解读

:700 笔包含"面包"的交易中,500 笔也含"牛奶",则 confidence(面包 -> 牛奶) = 500/700 = 0.714。


提升度(Lift)

lift(A -> B) = confidence(A -> B) / support(B) = P(B | A) / P(B)

含义:有了 A 之后,B 的出现概率相对其基准概率的提升倍数。

判断标准(学术通用阈值)

提升度值解读
lift = 1A 与 B 独立,无关联
lift > 1正向关联;A 出现使 B 的概率提升
lift < 1负向关联;A 出现反而使 B 概率下降
lift >= 1.5实践中认为关联有实际意义的最低参考阈值
lift >= 2.0强正向关联,学术论文中常以此筛选值得报告的规则

提升度是三个指标中最重要的一个:它校正了基准概率,能排除"B 本身很常见"导致的虚假高置信度。例如,牛奶在所有交易中出现率 80%,即便随机一笔交易都有 80% 的概率含牛奶——此时高置信度并不意味着真实关联,lift 才能揭示真相。


频繁项集(Frequent Itemsets)

在计算关联规则之前,Apriori 算法先找出所有满足 min_support频繁项集(即经常同时出现的商品组合),再从频繁项集中提取满足 min_confidencemin_lift 的规则。

Apriori 核心思路

  1. 找出所有频繁 1-项集(单个商品支持度 >= min_support)
  2. 用频繁 (k-1)-项集生成候选 k-项集,剪枝(非频繁子集的超集必然非频繁)
  3. 重复直到无更大频繁项集
  4. 从频繁项集生成关联规则,过滤置信度和提升度

这一"向上封闭性"(Apriori Property)大幅减少了候选集数量,是算法效率的核心所在。


案例数据:连锁超市购物篮交易分析

研究背景

某连锁超市收集了 2000 笔交易记录,每笔交易包含顾客购买的商品列表(宽格式:每种商品一列,0/1 表示是否购买)。共涉及 20 种商品类别(乳制品、主食、饮料、零食、蔬菜等)。

研究目标:识别频繁共购商品组合,为店内商品陈列和捆绑促销提供数据依据。

数据结构(宽格式示例)

交易ID   面包   牛奶   黄油   鸡蛋   酸奶   苹果   啤酒   薯片   ...
T001      1      1      1      0      0      1      0      0
T002      1      1      0      1      1      0      0      0
T003      0      0      0      0      0      0      1      1
T004      1      0      1      1      0      0      0      0
...(共 2000 行)

ChatSRS 同时支持长格式(每行一个购买记录,transaction_id + item 两列)和宽格式(每种商品一列)输入。


用 AI 一句话完成关联规则挖掘

chatsrs.com 上传数据后输入:

"对这份购物篮数据做 Apriori 关联规则挖掘。

  1. 设 min_support = 0.05,min_confidence = 0.50,min_lift = 1.5,提取频繁项集和关联规则
  2. 输出频繁 1-项集和 2-项集的支持度排名前 15 表格
  3. 输出满足阈值的关联规则三线表(前件、后件、支持度、置信度、提升度、规则计数)
  4. 按提升度降序,标注前 10 条最强规则
  5. 绘制关联规则气泡图(x 轴支持度,y 轴置信度,气泡大小=提升度)
  6. 输出 APA 格式中文方法节和结果节描述"

60 秒后,ChatSRS 完整输出以下五部分结果。


输出结果怎么读

输出 1:频繁项集支持度排名

表 1  频繁 1-项集与 2-项集支持度排名(N = 2000,min_support = 0.05)

排名   项集                      支持度     交易数
1      {牛奶}                    0.642      1284
2      {面包}                    0.618      1236
3      {蔬菜}                    0.481       962
4      {水果}                    0.396       792
5      {酸奶}                    0.312       624
...
8      {面包, 牛奶}               0.382       764
9      {牛奶, 黄油}               0.261       522
10     {面包, 蔬菜}               0.218       436
11     {牛奶, 蔬菜}               0.203       406
12     {面包, 水果}               0.189       378
13     {黄油, 鸡蛋}               0.172       344
14     {面包, 黄油}               0.164       328
15     {酸奶, 水果}               0.152       304

注:1-项集按单项支持度排序;2-项集按联合支持度排序。
   支持度 = 该项集出现次数 / 总交易数(N = 2000)。

读表要点:牛奶(64.2%)和面包(61.8%)是最常购买的单品;{面包, 牛奶}(38.2%)是最常见的 2-项集,几乎每 3 笔交易就有超过 1 笔同时包含这两样。


输出 2:关联规则三线表

表 2  Apriori 关联规则结果(min_support = 0.05,min_confidence = 0.50,min_lift = 1.0)

前件(A)         后件(B)      支持度   置信度   提升度   规则计数
{黄油}       -> {牛奶}       0.198    0.814    1.268*   396
{黄油}       -> {面包}       0.164    0.674    1.091*   328
{黄油,鸡蛋}  -> {面包}       0.124    0.721    1.167*   248
{酸奶}       -> {牛奶}       0.213    0.683    1.064*   426
{酸奶,面包}  -> {牛奶}       0.156    0.812    1.265*   312
{蔬菜,面包}  -> {牛奶}       0.148    0.679    1.058*   296
{水果,酸奶}  -> {牛奶}       0.139    0.914    1.424*   278
{水果,酸奶}  -> {面包,牛奶}  0.098    0.645    1.688    196
{黄油,鸡蛋}  -> {牛奶,面包}  0.096    0.558    1.461    192
{水果,蔬菜}  -> {牛奶}       0.091    0.874    1.361*   182

注:* 提升度 < 1.5,关联强度中等;表中同时列出中等(1.0 <= lift < 1.5)和较强(lift >= 1.5)规则,
   供与 Top-10 强规则(表 3,min_lift = 1.5)对比参考;
   规则按提升度降序排列。

输出 3:Top-10 最强关联规则(提升度降序)

表 3  提升度最高的 10 条关联规则(lift >= 1.5)

排名   前件                    后件          支持度   置信度   提升度
1      {啤酒, 薯片}         -> {零食饮料}    0.087    0.921    3.142
2      {红酒, 奶酪}         -> {熟食}        0.068    0.876    2.984
3      {尿不湿}             -> {啤酒}        0.062    0.841    2.763
4      {红酒}               -> {奶酪}        0.079    0.734    2.618
5      {咖啡, 面包}         -> {黄油}        0.071    0.697    2.377
6      {水果, 酸奶}         -> {麦片}        0.058    0.679    2.241
7      {蔬菜, 水果}         -> {有机食品}    0.053    0.651    2.093
8      {咖啡}               -> {面包,黄油}   0.065    0.631    1.984
9      {水果, 酸奶}         -> {牛奶, 面包}  0.098    0.645    1.688
10     {黄油, 鸡蛋}         -> {牛奶, 面包}  0.096    0.558    1.461

注:提升度 >= 2.0 视为强关联(规则 1-7);>= 1.5 视为中等关联(规则 8-10)。
   "尿不湿 -> 啤酒"(lift = 2.76)为经典购物篮分析案例,常见于年轻父母的购物行为。

读表要点

规则业务解读
啤酒+薯片 -> 零食饮料(lift=3.14)极强关联,可做捆绑陈列或联合促销
红酒 -> 奶酪(lift=2.62)经典西式搭配,适合单独促销区
尿不湿 -> 啤酒(lift=2.76)年轻父亲效应,避免将两者陈列在对立区
咖啡 -> 面包+黄油(lift=1.98)早餐套餐关联,捆绑早餐套包商机

论文里怎么报告(APA 7th 格式)

关联规则属于探索性数据挖掘方法,APA 7th 对此类方法没有专门的报告格式规范,但学术界有通行惯例:必须报告算法、三个核心指标的阈值及其设定依据、频繁项集数量、筛选后规则数量,以及最重要规则的完整三元组(support, confidence, lift)


方法节写法

采用 Apriori 算法对购物篮交易数据进行关联规则挖掘,以探索商品间的共购关联模式(Agrawal & Srikant, 1994)。算法参数设定如下:最小支持度(min_support)= 0.05,最小置信度(min_confidence)= 0.50,最小提升度(min_lift)= 1.50。支持度阈值根据数据集规模(N = 2000 笔交易,20 种商品)参照 Tan 等(2018)推荐的稀疏数据设定方法确定;提升度阈值参照 Brin 等(1997)对"兴趣度"(interestingness)的定义,以 1.5 作为实际关联的最低参考值。所有分析以 R 4.4 arules 包实施。


结果节写法

Apriori 算法共识别出 47 个满足最小支持度(>= 0.05)的频繁项集,其中 1-项集 20 个,2-项集 24 个,3-项集 3 个。在频繁项集基础上,提取满足最小置信度(>= 0.50)和最小提升度(>= 1.50)的关联规则共 10 条(见表 3)。

提升度最高的规则为 {啤酒, 薯片} → {零食饮料},support = .087,confidence = .921,lift = 3.14,表明同时购买啤酒和薯片的顾客中,91.1% 也会购买其他零食饮料,其共购概率是基准概率的 3.14 倍。另一典型规则 {红酒} → {奶酪}(support = .079,confidence = .734,lift = 2.62)和 {尿不湿} → {啤酒}(support = .062,confidence = .841,lift = 2.76)亦呈现较强正向关联(lift > 2.0),具有显著的促销设计参考价值。


APA 格式报告要素汇总

要素格式示例
算法引用Agrawal & Srikant(1994)
参数报告min_support = .05,min_confidence = .50,min_lift = 1.50
规则数报告共提取 X 条满足阈值的关联规则
单条规则support = .087, confidence = .921, lift = 3.14
频繁项集共 47 个频繁项集(1-项集 20 个,2-项集 24 个,3-项集 3 个)

APA 细节提醒:支持度、置信度均为比例,小数点前不写 0(写 .087,不写 0.087);lift 是比值,保留两位小数;方法节须引用 Apriori 原论文(Agrawal & Srikant, 1994, VLDB)和所用软件/包版本。


参数设定指南:阈值怎么选

这是最常被提问的实操问题,没有通用答案,但有可参考的经验框架:

支持度(min_support)

数据规模商品/变量数推荐 min_support
< 500 笔任意>= 0.10
500-5000 笔< 50 种0.05-0.10
5000-50000 笔50-500 种0.01-0.05
> 50000 笔> 500 种0.001-0.01
医疗/诊断数据(低频共病)0.005-0.02

置信度(min_confidence)

  • 探索性研究(想尽量多看规则):>= 0.30
  • 标准设定:>= 0.50
  • 高可靠性要求(如临床推荐):>= 0.70

提升度(min_lift)

  • lift >= 1.0:仅排除负关联,包含所有正关联
  • lift >= 1.5:实践中认为有实际意义的最低阈值
  • lift >= 2.0:强关联,适合论文重点报告
  • lift >= 3.0:极强关联,值得业务层面重点关注

提示:在 ChatSRS 中,如果规则数量过多(> 100 条),可在指令里追加"进一步筛选 lift >= 2.0 的规则并按提升度排名";如果规则过少(< 5 条),则降低 min_support 或 min_confidence 并重跑。


关联规则在学术研究中的三类应用场景

场景一:问卷多选题关联分析

多选题(如"您使用过哪些统计软件",可多选)产生的数据天然适合关联规则:每位受访者的选项集合 = 一笔"交易"。

ChatSRS 指令示例

"这份问卷数据第 Q12 题是多选题(选项 A-G),每行是一位受访者,做关联规则分析,找出哪些选项组合经常被同一受访者勾选,min_support = 0.08,min_lift = 1.5,输出三线表和 APA 报告描述"


场景二:临床共病关联分析

从电子病历提取的诊断数据:每位患者一行,所有诊断编码(ICD)为多选项。关联规则可以揭示哪些疾病倾向于同时发生。

注意点:医疗数据往往高度稀疏,min_support 可设至 0.005;提升度 >= 2.0 在临床研究中常作为有临床意义的参考标准。


场景三:教育行为关联分析

如学习管理系统(LMS)日志数据:每位学生完成的学习行为(观看视频、做练习、参与讨论等)为多选项。关联规则可发现高成就学生的典型行为组合模式。


常见问题 FAQ

Q1:支持度、置信度都很高,但提升度却接近 1,规则有意义吗?

A:没有实际意义。提升度接近 1 说明 A 和 B 的关联是"虚假高置信"——B 本身的基准发生率就很高,无论有没有 A,B 几乎都会出现。例如"牛奶的支持度 = 0.64",任何规则的后件如果是{牛奶},仅靠基准概率就能获得 0.64 的置信度。此时 lift = confidence / support(B) = 0.64 / 0.64 = 1.00,说明 A 对 B 没有任何额外贡献。实际操作中应以 lift >= 1.5 作为规则有意义的最低门槛,而不单独看置信度高低。

Q2:Apriori 和 FP-Growth 有什么区别?什么时候用哪个?

A:两者都是频繁项集挖掘算法,结果完全相同,区别在于计算效率。Apriori 采用逐层遍历候选集的方式,在商品种类多(> 1000 种)或数据集大(> 10 万笔)时速度较慢;FP-Growth 使用树形结构,只需两次扫描数据库,速度快 10-100 倍。对于学术研究中常见的中小规模数据(商品 < 200 种、交易 < 5 万笔),两者速度差距可忽略,Apriori 更直观易理解,也更常出现在教材和论文中。ChatSRS 在数据规模较大时会自动切换为 FP-Growth,结果报告格式不变。

Q3:关联规则能用于预测吗?和逻辑回归有什么区别?

A:关联规则是描述性/探索性方法,不是预测性方法。它描述的是"什么和什么同时出现",不建立因果关系,也没有因变量——这是与逻辑回归(有明确因变量、建模条件概率)的本质区别。如果你的目标是"给定某些特征,预测某结局发生概率",应使用逻辑回归(见二元 Logistic 回归教程);如果目标是"在大量变量中无监督地发现高频共现模式",才用关联规则。两者可以互补:先用关联规则探索性发现有趣的变量组合,再用逻辑回归对关注的组合做假设检验。

Q4:关联规则挖掘出来的规则怎么在论文里选择性报告?规则太多怎么办?

A:关联规则挖掘常产生数十至数百条规则,论文中不需要全部列出。推荐的筛选和报告策略是:(1) 选取提升度最高的 10-20 条规则列入主表,其余放附录或补充材料;(2) 将规则按业务语义或研究假设分组,分别解读;(3) 报告完整的频繁项集数量和总规则数量,说明筛选阈值,让读者可以复现。在 ChatSRS 中,可在指令里追加"按提升度降序只保留前 15 条写入三线表,其余列入补充材料",系统将自动分级输出。

Q5:关联规则分析如何报告样本量和效应量?

A:关联规则没有类似 Cohen's d 或 eta 方的标准效应量指标;提升度本身即为效应大小的量化指标。学界通行参考阈值如下:lift >= 1.5 为中等关联,lift >= 2.0 为较强关联,lift >= 3.0 为强关联(Tan et al., 2018)。报告时,除 lift 外,也应同时报告支持度(反映规则的普遍性)和置信度(反映规则的可靠性),三者缺一不可。样本量方面,APA 并无专门规定;实践中建议交易数 / 商品种数 >= 50,以保证频率估计的稳定性,否则需说明样本量局限性。


小结

关联规则(Apriori)是探索"什么与什么同时出现"的核心工具,难点集中在三处:正确设定支持度/置信度/提升度阈值、从海量规则中筛选有意义的结果,以及按学术规范报告方法与结果。ChatSRS 把全部流程压到一句话,自动输出频繁项集表、关联规则三线表、气泡可视化,并生成可直接复制进论文的 APA 格式描述。

核心记忆点:提升度(lift)是判断规则是否真正有意义的最关键指标,置信度高但提升度 = 1 的规则不值得报告;lift >= 1.5 是实践中认可的最低有意义门槛,lift >= 2.0 适合论文重点报告。


参考文献

  • Agrawal, R., & Srikant, R. (1994). Fast algorithms for mining association rules. Proceedings of the 20th International Conference on Very Large Data Bases (VLDB), 487–499.
  • Brin, S., Motwani, R., Ullman, J. D., & Tsur, S. (1997). Dynamic itemset counting and implication rules for market basket data. ACM SIGMOD Record, 26(2), 255–264. https://doi.org/10.1145/253262.253325
  • Tan, P.-N., Steinbach, M., Karpatne, A., & Kumar, V. (2018). Introduction to data mining (2nd ed.). Pearson.

相关阅读


本文首发于 ChatSRS 官方博客。如有问题或反馈,欢迎在 ChatSRS 站内 [用户中心 -> 帮助与反馈] 联系我们。