Apriori Algorithm 是关联规则领域里最具影响力的基础算法。它是由 Rakesh Agrawal 在 1994 年提出的,详细的介绍在这里《Fast Algorithms for Mining Association Rules》。十几年过去了,不少学者围绕着 Apriori 进行了诸多改良。但与 1994 年相比,目前基于互联网的应用,数据量大了几十倍甚至是几百倍,因此,基于 Apriori 的算法逐渐暴露出其运算成本过高的问题。但不管怎样,对于大师及其做出的贡献,我们也只有高山仰止的份儿。
Apriori 是一种广度优先算法,通过多次扫描数据库来获取支持度大于最小支持度的频繁项集。它的理论基础是频繁项集的两个单调性原则:频繁项集的任一子集一定是频繁的;非频繁项集的任一超集一定是非频繁的。晦涩的理论我这里就不多写了,有兴趣的可以去看论文。我把里面的例子给翻译一下,图文并茂,简明易懂。
某数据库 DB 里有 4 条事务记录,取最小支持度(min support)为 0.5,则计算频繁项集的过程如下:
TID
|
Items
|
100
|
A, C, D
|
200
|
B, C, E
|
300
|
A, B, C, E
|
400
|
B, E
|
|
扫描DB
|
Itemset
|
Support
|
{A}
|
2 (0.5)
|
{B}
|
3 (0.75)
|
{C}
|
3 (0.75)
|
{D}
|
1 (0.25)
|
{E}
|
3 (0.75)
|
|
取满足 最小支持度 项集
|
Itemset
|
Support
|
{A}
|
2
|
{B}
|
3
|
{C}
|
3
|
{E}
|
3
|
|
Itemset
|
{A, B}
|
{A, C}
|
{A, E}
|
{B, C}
|
{B, E}
|
{C, E}
|
|
扫描DB
|
Itemset
|
Support
|
{A, B}
|
1 (0.25)
|
{A, C}
|
2 (0.5)
|
{A, E}
|
1 (0.25)
|
{B, C}
|
2 (0.5)
|
{B, E}
|
3 (0.75)
|
{C, E}
|
2 (0.5)
|
|
取满足 最小支持度 项集
|
Itemset
|
Support
|
{A, C}
|
2
|
{B, C}
|
2
|
{B, E}
|
3
|
{C, E}
|
2
|
|
Itemset
|
{A, B, C}
|
{A, B, E}
|
{A, C, E}
|
{B, C, E}
|
|
扫描DB
|
Itemset
|
Support
|
{A, B, C}
|
1 (0.25)
|
{A, B, E}
|
1 (0.25)
|
{A, C, E}
|
1 (0.35)
|
{B, C, E}
|
2 (0.5)
|
|
取满足 最小支持度 项集
|
Itemset
|
Support
|
{B, C, E}
|
2 (0.5)
|
|
如上可以看出,在海量数据的情况下,Apriori 算法的运算过程有 2 个问题:
- 需要多次扫描数据库,时间成本很高;
- 运算过程中需要产生大量的候选集,空间成本也非常高。
针对 Apriori 算法所做的改进也基本上是围绕着解决这两个问题进行的,如在扫描DB前首先进行以便事务合并和压缩,数据分区或抽样等。
Weka 里有 Apriori 算法的 Java 实现,非常值得一看。
分享到:
相关推荐
人工智能和机器学习之关联规则学习算法:R-Apriori算法:关联规则在推荐系统中的应用.docx
人工智能和机器学习之关联规则学习算法:Multi-Level Association:关联规则在推荐系统中的应用.docx
基于关联规则的推荐系统的目标是在特定情境下提高推荐的有效性。比如,当用户将A(例如尿布)添加到购物车时,推荐系统将B(例如啤酒)作为附加商品推荐给用户,这样往往能比单纯推荐B获得更好的效果。 #### 二、...
关联规则挖掘算法是数据挖掘领域的重要技术之一,它主要用于发现不同项之间存在的有趣关系,通常用于市场篮子分析、库存管理、推荐系统等多个领域。在推荐系统的背景下,关联规则挖掘算法能够揭示用户购买或选择行为...
人工智能和机器学习之关联规则学习算法:Graph-Based Association:图关联规则在推荐系统中的应用.pdf
人工智能和机器学习之关联规则学习算法:Graph-Based Association:图关联规则在推荐系统中的应用.docx
10. 关联规则挖掘的应用:关联规则挖掘有广泛的应用,如推荐系统、市场营销、客户关系管理等。 11. 数据挖掘:数据挖掘是指从大量数据中发现有价值的知识或模式的过程。关联规则挖掘是数据挖掘的一种重要技术。 12...
5. 智能推荐:结合关联规则,我们可以构建一个简单的推荐系统。当用户购买了某个商品时,系统可以基于已发现的关联规则推荐其他可能感兴趣的商品。 6. 示例和测试:压缩包可能还包括一些示例数据和测试用例,以验证...
《毕业设计:关联规则与决策树组合算法在学生成绩分析中的研究》 在这个毕业设计项目中,我们探讨了如何运用关联规则和决策树这两种数据分析技术来深入理解并预测学生的学习成绩。这两种算法在数据挖掘领域有着广泛...
在这个“数据挖掘关联规则分析数据集”中,我们有两个合成的数据集,它们旨在帮助研究者和分析师探索不同项目之间的潜在关联,从而可能为业务决策、市场篮子分析或商品推荐系统提供依据。 关联规则通常由两部分组成...
### 分布式关联规则挖掘系统实现 #### 一、引言 随着信息技术的快速发展,海量数据的处理成为了当今社会的一项重要任务。数据挖掘作为一种从大量数据中提取有价值信息的技术,在商业决策、科学研究等多个领域得到...
关联规则挖掘是数据挖掘领域中的一个关键方法,用于发现大量数据集中的有趣关系。Apriori算法是关联规则挖掘中最经典、最广泛使用的算法之一,由Rakesh Agrawal和Ramakrishnan Srikant在1994年提出。这个算法主要...
关联规则是一种在大型数据库中发现有价值模式的统计方法,它主要应用于市场篮子分析、推荐系统和模式识别等领域。在C++中实现关联规则通常涉及数据预处理、Apriori算法或FP-Growth算法等核心步骤。下面我们将深入...
人工智能和机器学习之关联规则学习算法:QuantitativeAssociation:8.关联规则在推荐系统中的应用.docx
### 分布式系统下挖掘关联规则的两种方案 #### 一、引言 自1993年,Agrawal等人提出了关联规则的概念以来,关联规则挖掘成为了数据挖掘领域内的一个重要研究方向。传统的数据挖掘算法如Apriori算法、抽样算法、DIC...
Apriori算法是一种挖掘布尔关联规则频繁项集的经典算法,它通过迭代方式,即先找出频繁1项集,然后是频繁2项集,以此类推,直到不能发现更多的频繁k项集为止。在飞机系统故障关联规则挖掘过程中,确定最小支持度和...
《基于Hadoop实现的关联规则挖掘在图书数据分析推荐系统中的应用》 图书数据分析推荐系统是当前数字图书馆和在线书店中广泛应用的技术,它旨在通过分析用户的阅读习惯和偏好,为用户提供个性化的图书推荐。本项目...
在实际应用中,关联规则可以用于市场篮子分析、推荐系统、医疗诊断等多个领域。 “大数据论文”标签表明这篇研究不仅限于理论介绍,可能还包含了对实际大数据案例的分析和实验结果,展示Apriori算法在实际场景中的...