三、Apriori 2025-09-17

要记住的关键名词:频繁1(2)项集、支持度、置信度

第一部分 :Apriori rule具体是什么

好的,我们来彻底讲清楚 Apriori Rule(Apriori规则) 具体是什么。

首先,需要澄清一个关键点:“Apriori规则”通常不是指一条单一的、固定的规则,而是指由Apriori算法生成的所有“关联规则”(Association Rules)的集合。 所以,当我们说“Apriori规则”时,我们指的是这个算法所发现的所有形如 {X} -> {Y} 的规则。

这些规则的核心基于两个概念:支持度(Support)置信度(Confidence)


一、Apriori规则的核心思想:Apriori原理

Apriori算法之所以高效,是因为它使用了一个非常聪明且重要的原理(Principle),这个原理也叫作 Apriori原理先验原理

如果一个项集是频繁的,那么它的所有子集也一定是频繁的。
反过来,如果一个项集是非频繁的,那么它的所有超集也一定是非频繁的。

举例说明:
假设项集 {啤酒, 尿布, 花生} 在数据库中出现的次数很少(是非频繁的)。那么,根据Apriori原理,任何包含它的更大集合,例如 {啤酒, 尿布, 花生, 可乐},出现的次数只会更少,也一定是非频繁的。

为什么这个原理如此重要?
它让算法可以“剪枝”(Prune)。算法不需要计算所有巨大项集的支持度,因为它可以提前知道,只要一个子集不频繁,这个大的项集肯定也不频繁,可以直接丢弃。这极大地减少了需要计算的项集数量,节省了计算资源和时间。

总结:Apriori原理是算法的引擎,而生成的关联规则是算法的输出结果。


二、一条具体的Apriori规则是如何产生的?

Apriori算法的工作流程可以简单分为两个核心步骤,规则产生于第二步:

步骤一:找出所有频繁项集(Frequent Itemsets)

  • 算法通过多次扫描数据库(迭代),利用Apriori原理,找出所有满足最小支持度阈值(min_support)的项集。
  • 例如,先找所有频繁的1项集(单个商品),然后组合成候选的2项集,筛掉不满足支持度的,得到频繁2项集,再组合成3项集...如此往复,直到不能再组合出更大的频繁项集为止。

步骤二:从频繁项集中生成强关联规则(Strong Association Rules)

  • 对于上一步找到的每一个频繁项集(例如 {啤酒, 尿布}),生成其所有可能的子集组合。
  • 对每一个子集组合 A,形成一条规则 A -> (L - A)
    • 例如,从频繁项集 {啤酒, 尿布} 中,可以生成两条规则:
      • {啤酒} -> {尿布}
      • {尿布} -> {啤酒}
  • 计算每一条规则的置信度(Confidence)
  • 保留那些置信度满足最小置信度阈值(min_confidence)的规则。这些就是最终的、“有趣”的强关联规则,也就是我们通常所说的 Apriori规则

三、举例说明:从数据到规则

假设我们有一个非常简单的交易数据库:

交易ID 购买的商品
1 {牛奶, 面包}
2 {面包, 尿布, 啤酒, 鸡蛋}
3 {牛奶, 尿布, 啤酒, 可乐}
4 {面包, 牛奶, 尿布, 啤酒}
5 {面包, 牛奶, 尿布, 可乐}

我们设定:

  • 最小支持度 (min_support): 40% (即至少出现 5 * 0.4 = 2 次)
  • 最小置信度 (min_confidence): 60%

1. 寻找频繁项集(简化过程):

  • 频繁1项集: {牛奶}, {面包}, {尿布} (每个都出现了4或3次)
  • 频繁2项集: {牛奶, 面包}, {牛奶, 尿布}, {面包, 尿布}, {尿布, 啤酒}
  • 频繁3项集: {牛奶, 面包, 尿布} (出现了2次)

2. 从频繁项集中生成规则:
我们以频繁2项集 {尿布, 啤酒} 为例来生成规则。

  • 它的子集有:{尿布}, {啤酒}
  • 规则1: {尿布} -> {啤酒}
    • 支持度({尿布,啤酒}) = 3/5 = 0.6
    • 支持度({尿布}) = 4/5 = 0.8
    • 置信度 = Support({尿布,啤酒}) / Support({尿布}) = 0.6 / 0.8 = 0.75 (75%)
    • 75% > 60% (min_confidence),所以这是一个强规则
  • 规则2: {啤酒} -> {尿布}
    • 支持度({尿布,啤酒}) = 0.6
    • 支持度({啤酒}) = 3/5 = 0.6
    • 置信度 = 0.6 / 0.6 = 1.0 (100%)
    • 100% > 60%,这同样是一个强规则

总结

所以,Apriori规则具体是什么?

它是一条强关联规则,必须同时满足两个条件:

  1. 它的主体(左边和右边合起来的项集)是一个频繁项集(支持度 ≥ min_support)。
    (主体是频繁项集才能拆分出来规则)
  2. 它的置信度足够高(置信度 ≥ min_confidence)。

最终,Apriori算法的输出就是一系列这样的规则,例如:
{尿布} -> {啤酒} (Support=60%, Confidence=75%)
{啤酒} -> {尿布} (Support=60%, Confidence=100%)

业务人员可以根据这些规则来制定营销策略,比如将尿布和啤酒放在一起促销。

第二部分:Apriori 的读音和命名缘由

1. 如何读音?

Apriori 的读音是 /ˌæpriˈɔːraɪ//ˌɑːpriˈɔːri/

可以近似用中文谐音为:“阿-普利-奥-瑞”“啊-普利-欧-莱”

  • Ap: 发音类似于 “Apple” 的开头,读作 “阿普” 或 “啊普”。
  • ri: 发音为 “利”。
  • o: 发音为 “奥” 或 “欧”。
  • ri: 发音为 “瑞” 或 “莱”。

在数据挖掘和计算机科学领域,大家通常都直接读这个英文发音。你可以在 Google 翻译或剑桥词典等工具中输入 “Apriori”,点击发音按钮来听标准的读法。

2. 为什么这么命名?

这个名字非常精妙,因为它直接反映了算法的核心思想。它源于拉丁语短语 “a priori”

  • 拉丁语含义: “a priori” 的字面意思是 “由因推果”“由先验的【知识】推得”。在哲学和逻辑学中,它指的是“不依赖于经验,仅通过推理即可获得的知识”(先验知识)。与之相对的是 “a posteriori”(后验的),即通过经验获得的知识。

  • 与算法的关联: Apriori 算法的核心是 Apriori 原理(Apriori Principle)

    如果一个项集是频繁的,那么它的所有子集也一定是频繁的。
    反之,如果一个项集是非频繁的,那么它的所有超集也一定是非频繁的。

    这个原理就是算法所依赖的 “先验知识(a priori knowledge)”

    • 如何运作: 算法在寻找频繁项集(如 {啤酒, 尿布})时,并不需要每次都扫描整个数据库来验证一个大的项集是否频繁。它可以事先(a priori)就知道:如果 {啤酒} 这个子集本身都不频繁,那么包含 {啤酒} 的任何更大组合(如 {啤酒, 尿布}{啤酒, 尿布, 花生})也绝对不可能是频繁的,因此可以直接剪枝掉,无需计算。
  • 总结命名原因

    1. 效率基础: 算法利用一种“先验的”知识(Apriori原理)来减少需要计算的候选集数量,极大提高了效率。
    2. 核心动作: 它的工作方式就是基于已知的(先验的)小项集信息,来推断未知的大项集的性质。

因此,这个名字 Apriori 完美地概括了该算法的灵魂——利用已知的频繁项集属性,先验地推断和剪枝候选集。这比它的功能描述性名称(如 “Frequent Itemset Miner”)要深刻和优雅得多。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在美国有这样一家奇怪的超市,它将啤酒与尿布这样两个奇怪的东西放在一起进行销售,并且最终让啤酒与尿布这两个看起来没有...
    大数据_zzzzMing阅读 5,157评论 0 2
  • 一、简介 Apriori算法是第一个关联规则挖掘算法,也是最经典的算法。它利用逐层搜索的迭代方法找出数据库中项集的...
    dora_yip阅读 5,878评论 0 3
  • 关联规则挖掘是数据挖掘中常用的手段,一般指的是从交易数据库、关系数据库以及其他的数据集中发现项或对象的频繁的模式(...
    Carey_Wu阅读 5,077评论 0 6
  • 在电商行业里,有一个著名的公式:销售额=UV*转化率*客单价。而提高客单价的一个有效手段就是关联销售或者叫交叉销售...
    山的那边是什么_阅读 10,024评论 2 5
  • 01 啤酒与尿布 好久没写代码了,脑子快生锈了,今天我们来实操一个比较有意思的算法——Apriori算法。 Apr...
    Sudden阅读 22,831评论 1 19

友情链接更多精彩内容