Apriori算法及例题

一:Apriori算法介绍

关联规则挖掘是数据挖掘中最活跃的研究方法之一 。最早是由 Agrawal 等人提出的1993最初提出的动机是针对购物篮分析问题提出的,其目的是为了发现交易数据库中不同商品之间的联系规则。这些规则刻画了顾客购买行为模式,可以用来指导商家科学地安排进货,库存以及货架设计等。

Apriori算法是一种挖掘关联规则的频繁项集算法,一种最有影响的挖掘布尔关联规则频繁项集的算法。Apriori是由a priori合并而来的,它的意思是后面的是在前面的基础上推出来的,即先验推导。其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。

Apriori定律:

  • 如果一个集合是频繁项集,则它的所有子集都是频繁项集。
  • 如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。

算法处理过程如下,在数据库中寻找关联度最高的一组值:
在这里插入图片描述

Apriori算法采用了逐层搜索的迭代的方法,算法简单明了,没有复杂的理论推导,也易于实现。但其有一些难以克服的缺点:

  • 对数据库的扫描次数过多
  • Apriori算法会产生大量的中间项集
  • 采用唯一支持度
  • 算法的适应面窄

总结来说:

  • Apriori算法基本思想:频繁项集的任何子集也一定是频繁的。
  • 用频繁的(k-1)-项集生成候选的频繁k-项集,用数据库扫描和模式匹配计算候选集的支持度

二:例题

挖掘出支持度为3的最大频繁项级:
在这里插入图片描述

解答过程如下,这也是著名的“尿布与啤酒”问题
在这里插入图片描述

三:FP-growth算法

Apriori算法在产生频繁模式完全集前需要对数据库进行多次扫描,同时产生大量的候选频繁集,这就使Apriori算法时间和空间复杂度较大。但是Apriori算法中有一个很重要的性质:频繁项集的所有非空子集都必须也是频繁的。但是Apriori算法在挖掘额长频繁模式的时候性能往往低下,Jiawei Han提出了FP-Growth算法。

FP-growth算法将数据集存储在一种称作FP树的紧凑数据结构中,然后发现频繁项集或者频繁项对,即常在一块出现的元素项的集合FP树。FP代表频繁模式(Frequent Pattern)。FP树通过链接(link)来连接相似元素,被连起来的元素项可以看成一个链表。

在这里插入图片描述

FP-growth算法虽然能高效地发现频繁项集,但是不能用于发现关联规则。FP-growth算法的执行速度快于Apriori算法,通常性能要好两个数量级以上。

FP-growth算法只需要对数据集扫描两次,它发现频繁项集的过程如下:

  • 构建FP树
  • 从FP树中挖掘频繁项集

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Apriori算法例题,可以考虑以下数据集: 假设有一个超市销售记录的数据集,其中包含了顾客购买的产品信息。数据集的示例如下: Transaction ID | Items Purchased ---------------------------------- 1 | Milk, Bread, Eggs 2 | Bread, Cheese 3 | Milk, Juice 4 | Bread, Cheese, Juice 5 | Milk, Bread, Cheese 我们可以使用Apriori算法来发现频繁项集及其关联规则。首先,我们需要确定阈值来定义频繁项集的最小支持度,例如假设我们将最小支持度设置为2。 第一步,我们计算每个单个项的支持度。在这个例子中,我们可以得到以下结果: Item | Support Count ------------------------- Milk | 3 Bread | 4 Eggs | 1 Cheese | 3 Juice | 2 通过计算得到的支持度,我们可以发现Milk、Bread、Cheese是频繁项集。 第二步,根据频繁项集生成候选项集。首先,我们生成长度为2的候选项集。通过组合频繁项集中的项,我们可以得到以下候选项集: Candidate Itemset | Support Count --------------------------------- Milk, Bread | 2 Milk, Cheese | 2 Bread, Cheese | 3 然后,我们计算候选项集的支持度。根据计算得到的支持度,我们可以发现Milk, Bread和Milk, Cheese是频繁项集。 第三步,继续生成更长的候选项集。通过组合频繁项集中的项,我们可以得到长度为3的候选项集: Candidate Itemset | Support Count ----------------------------------- Milk, Bread, Cheese | 2 最后,我们可以得到频繁项集:Milk, Bread, Cheese。根据频繁项集,我们可以生成关联规则,例如: Milk, Bread => Cheese Cheese => Milk, Bread 这些关联规则可以帮助超市了解不同产品之间的购买关联性,从而进行商品摆放优化、促销策略制定等决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值