什么是 Apriori 算法?

2024 年 6 月 9 日

作者

Joshua Noble

Data Scientist

Apriori 算法是一种用于关联规则学习的无监督机器学习算法。关联规则学习是一种数据挖掘技术,可识别数据中被称为项目集的不同项组之间的频繁模式、联系和依赖关系。一些常见的用例是疾病预测和推荐系统,例如电子商务平台的市场篮子分析。

“Apriori”由 Rakesh Agrawal 和 Ramakrishnan Srikant 于 1994 年提出(ibm.com 外部链接),该算法源于它在计算中使用的频繁项集的先验知识。该算法通过对数据进行多次迭代以识别 k 个项集,即经常一起出现的 k 个项。然后,使用这些 k 项集来标识 k+1 项集。Apriori 算法依赖于这样一种洞察见解,即向频繁购买的项集添加项只会降低其频率,而不是增加频率。该过程依赖于 Apriori 属性,即如果某项集在数据集中频繁出现,则其所有子集也必须频繁出现。相反,如果某个项集被标识为不频繁,则其所有超集都被视为不频繁。

Apriori 算法适用于各种类型的数据集,尤其是由事务型数据库生成的数据集,通常用于市场篮子分析,以支持推荐系统。例如,当使用销售服装和鞋子的电子商务平台时,购物者搜索鞋子,并决定将一双黑色正装鞋添加到购物车。然后,购物者注意到界面推荐了其他要购买的商品,比如袜子。此推荐系统的工作方式之一是通过了解客户的购买模式,并将可能一起被购买的物品关联起来。

使用 Apriori 算法的最大优势之一在于其简单性和适应性。然而,Apriori 算法在处理大型数据集时效率并不高。由于候选项集生成的多次迭代过程可能会使计算成本变得非常高且占用大量内存。为了缓解这些问题,Apriori 通常与其他技术相结合。

Apriori 函数已集成到许多流行的编程语言中,包括 Python、Java 和 R,使得生成高质量的关联规则和频繁项集能够轻松集成到现有的应用程序或系统中。

Apriori 算法的工作原理

Apriori 算法中的每个关键步骤都旨在识别项集及其所有可能的超集,寻找最常见的项集以创建关联规则。

第 1 步:生成频繁项集

该算法首先识别数据集中的唯一项(有时称为 1 项集)并计算其频率。然后,将那些出现概率超过指定阈值的项组合成候选项集,并筛选出不常见的项集,以降低后续步骤中的计算成本。此过程称为频繁项集挖掘,即仅查找具有有意义频率的项集。

步骤 2:扩展并修剪项集

该算法利用 Apriori 特性,进一步组合频繁项集,形成更大的项集。针对概率较低的大项集的组合会进行修剪。这样可以进一步减少了搜索空间,并提高了计算效率。

步骤 3:重复步骤 1 和 2

该算法重复步骤 1 和 2,直至完成生成所有符合定义阈值概率的频繁项集。每次迭代都会生成更复杂、更全面的项集关联。

Apriori 算法创建项集后,可以进一步分析其关联规则的强度和关系。

小球在轨道上滚动的三维设计

最新的 AI 新闻 + 洞察分析

在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。 

测量项集

Apriori 算法通过使用支持度、置信度和提升度等指标来定义其操作准则,并提高性能效率。

支持

支持度被定义为某个商品在交易中出现的次数与交易总数的比值。因此,该指标定义了每个商品在交易中出现的概率。相同的逻辑也可以扩展到项集。

S(IA)=Occ(IA)Tot一个lTr一个ns一个ctions

其中,IA 代表商品 A,Occ(IA) 表示商品 A 出现的次数,而 S(IA) 表示商品 A 的支持度

例如,在一家零售店,一天内的 2000 笔交易中,有 250 笔交易可能包含苹果的购买。使用公式:

S(IApples)=2502000=0.125

这一结果意味着当天购买苹果的概率为 12.5%。

您可以在应用 Apriori 算法时指定所需的最低支持度阈值。这意味着,任何支持度低于该阈值的项或项集都将被视为不频繁项集。

置信度

置信度指标用于标识项或项集中同时出现在项集中的概率。例如,如果一笔交易中有两个商品,假设一个商品的存在会导致另一个商品的出现。第一个项或项集称为前件,第二个项或项集为后件。因此,置信度被定义为同时具有前件和后件的交易次数与仅包含前件的交易次数的比值。该场景表示为:

C(A,B)=Occ(AB)Occ(A)

其中,A 是前件,B 是后件,并且 C(A,B)  表示前件 A 导致后件 B 的置信度。

扩展前面的示例,假设有 150 笔交易同时购买了苹果和香蕉。置信度的计算公式为:

C(Apples,B一个n一个n一个s)=1500 亿起250=0.6

这一结果表明,购买苹果后导致购买香蕉的概率为 60%。同样,假设总共有 500 笔香蕉交易,则购买香蕉导致购买苹果的置信度的计算公式为:

C(B一个n一个n一个s,Apples)=1500 亿起500=0.3

在这里,购买香蕉导致购买苹果的概率仅为 30%。

虽然置信度是衡量可能性的重要指标,但它并不能保证项之间存在明确的关联。高置信度可能基于其他原因。因此,在使用关联规则进行挖掘时,通常会设定一个最低置信度阈值,以筛选低概率的关联。

Lift

提升度是项 A 导致项 B 的可能性高于项 A 的可能性的因子。这一指标量化了 A 和 B 之间的关联强度。提升度可以帮助指示项集中的项之间是否存在真实关系,或者它们是否只是巧合而组合在一起。

L(A,B)=C(A,B)S(A) 


其中,LA,B表示项 A 导致项B 的提升度,CA,B 表示项 A 导致项 B 的置信度,SA 表示项 A 的支持度。

基于上面的示例,我们可以看到: 

L(Apples,B一个n一个n一个s)=0.60.125=4.8

较高的提升度表明,苹果和香蕉一起购买的概率比单独购买苹果的概率高4.8倍。此外,还可以看到:

L(B一个n一个n一个s,Apples)=0.30.25=1.2

较低的提升度表明,购买香蕉导致购买苹果的情况可能只是巧合。

专家荟萃 | 播客

解码 AI:每周新闻摘要

加入我们的世界级专家团队,包括工程师、研究人员、产品负责人等,他们将穿透 AI 的喧嚣,为您带来最新的 AI 新闻和见解。

将 Apriori 与其他技术相结合

在许多情况下,应用暴力计算方法(ibm.com 外部链接)来计算每个规则的支持度和置信度阈值,然后对不符合阈值的规则进行修剪,在计算上代价可能会导致无法承受。为了提高 Apriori 算法的应用效率,通常会将其与其他关联规则挖掘技术相结合。其中最常见的两种算法是 FP-growth 算法(ibm.com 外部链接)及其变体 FP-Max,用于减少内存和计算限制。Apriori 算法还可以与 Decision Trees 相结合,其中 Apriori 算法用于识别频繁项集,而 Decision Trees 技术则有助于识别关联规则。

Apriori 算法的另一种流行变体是动态项集计数 (DIC)(ibm.com 外部链接),该算法可提前开始计数潜在项集,而无需等待所有交易记录完成。DIC 将数据集划分为更小的片段,并分别处理每个片段。这种分段处理使算法能够在无法识别任何频繁的项集时提前停止,同时数据划分也显著降低了计算成本。

Apriori 算法也可用于基于无监督学习的人工智能应用程序,例如在数据支持时的聚类算法 。它可以帮助识别看似独立实体之间的关系和关联,并将其分组成可能的聚类。

Apriori 算法的用例

发现和分组项集有着广泛的应用,Apriori 算法因其多功能性,常被称为数据挖掘者首选的算法。接下来,我们将探讨该算法在不同行业中的一些常见用例。

市场购物篮分析

Apriori 算法最常见的应用之一是执行市场购物篮分析。零售商通过分析客户购买历史,优化店铺布局,将经常一起购买的商品放在彼此附近或同一货架上。电子商务平台使用 Apriori 算法研究基于用户偏好的商品关系,并通过挖掘购买模式,创建高效的客户推荐系统。此外,这类分析还可用于优化服务采购,例如从课程目录中选择培训课程,或在选择保险时推荐其他类型的保险。

医疗保健

Apriori 算法可用于发现症状与疾病之间的强关联规则,从而提高诊断效率并制定有针对性的治疗计划。例如,它可以帮助预测哪些患者 可能患有糖尿病(ibm.com 外部链接),或研究 饮食或生活方式对疾病的影响(ibm.com 外部链接)。此外,它还可以帮助确定与药物不良反应相关的因素。

Web 分析

Apriori 算法同样适用于非交易型性数据库。数据分析师经常使用 Apriori 算法进行 Web 使用情况挖掘、分析点击流数据以及解读用户行为。

财务

Apriori 算法的另一个常见应用是识别金融交易中的欺诈模式。通过识别特定购买模式可能存在欺诈行为,金融机构能够迅速采取行动,暂停交易或联系账户持有人。

相关解决方案
IBM watsonx.ai

使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。

了解 watsonx.ai
人工智能 (AI) 解决方案

借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。

深入了解 AI 解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取后续步骤

一站式访问跨越 AI 开发生命周期的功能。利用用户友好型界面、工作流并访问行业标准 API 和 SDK,生成功能强大的 AI 解决方案。

深入了解 watsonx.ai 预约实时演示