aprioir算法_关联规则

关联规则用于评估商品同时出现的概率,通过支持度和置信度衡量。Apriori算法通过频繁项集挖掘生成规则,而FP-Growth算法使用FP-Tree数据结构直接提取频繁项集,减少数据库扫描次数。两者都是挖掘交易数据中隐藏模式的有效方法。
摘要由CSDN通过智能技术生成

关联规则:评定规则的标准

支持度:规则前项LHS和规则后项RHS所包括的商品都同时出现的概率,LHS和RHS商品的交易次数/总交易次数。

置信度:在所有的购买了左边商品的交易中,同时又购买了右边商品的交易机率,包含规则两边商品的交易次数/包括规则左边商品的交易次数。

提升度(有这个规则和没有这个规则是否概率会提升,规则是否有价值):无任何约束的情况下买后项的交易次数/置信度。提升度必须大于1才有意义。

一、Aprioir

多遍数据库扫描是昂贵的,挖掘长模式需要很多遍扫描,并产生大量候选。Aprioir具有的性质:频繁项集的所有非空子集也必须是频繁的。

首先找频繁一项集(满足最小支持度要求的项集),在频繁一项集的基础上寻找频繁二项集,再依次寻找频繁三、四等等,直到没有满足最小支持度的项集。

再根据频繁项集产生关联规则。频繁项集的非空子集计算置信度,在一定置信度的情况下保留下来相应有用的规则。

Aprioir算法本来orange2.7算法可以实现,不知道为什么orange3给取消了这个算法

二、FP-Growth

FP-growth算法不同于Apriori算法生成候选项集再检查是否频繁的“产生-测试” 方法,而是使用一种称为频繁模式树(FP-Tree,PF代表频繁模式,Frequent Pattern)菜单紧凑数据结构组织数据,并直接从该结构中提取频繁项集。每个事务被映射到FP-tree的一条路径上,不同的事务会有相同的路径,因此重叠的越多,压缩效果越好。

FP-growth算法分为两个过程,一是根据原始数据构造FP-Tree,

首先扫描一遍数据集,找出频繁项的列表L,并且按照支持度排序,根据此排序调整原数据中事务的排序。然后开始构造FP-tree,根节点为空,处理每个事物时按照L中的顺序将事物中出现的频繁项添加到中的一个分支。(下图中D是通过指针连接上的,这样后期搜索时候,是直接知道D出现两次的)

83a7c7cab0e50b5837b75197cdf119c9.png

构造完成FP-Tree后,选定叶节点,收集所有包含叶节点的前缀路径,通过把与叶节点相关联的支持度计数相加,得到叶节点的支持度计数,从而产生满足最小支持度的规则。

62030c619a40f046da8c173cfe4c17da.png

原文:http://www.cnblogs.com/fionacai/p/6131495.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常好的问题!那么,让我来简单介绍一下关联规则Apriori算法。 在数据挖掘中,关联规则是一种可以在数据集中发现有趣关系的技术。关联规则通常用于市场篮子分析,其中我们试图找出哪些商品经常一起购买。例如,如果一个人购买了牛奶,那么他们很可能会购买面包。 Apriori算法是一种用于挖掘关联规则算法。它的核心思想是利用先验知识减少搜索空间,从而提高算法的效率。Apriori算法的基本流程如下: 1. 扫描数据集,统计每个项的出现次数。 2. 删除出现次数低于某个阈值的项。 3. 生成候选项集。 4. 扫描数据集,统计候选项集的出现次数。 5. 删除出现次数低于某个阈值的候选项集。 6. 生成更高维度的候选项集,重复步骤4-5。 最终,我们得到一组频繁项集,这些项集的出现频率高于预设的阈值。我们可以利用这些频繁项集来生成关联规则,并计算它们的置信度和支持度。 在Python中,我们可以使用mlxtend库中的apriori函数来实现Apriori算法。具体使用方法可以参考以下示例代码: ```python from mlxtend.frequent_patterns import apriori from mlxtend.frequent_patterns import association_rules import pandas as pd # 加载数据集 data = pd.read_csv('data.csv', header=None) # 将数据集转换为适合apriori函数的形式 def encode_units(x): if x <= 0: return 0 if x >= 1: return 1 return None data = data.applymap(encode_units) # 使用apriori函数挖掘频繁项集 frequent_itemsets = apriori(data, min_support=0.5, use_colnames=True) # 使用association_rules函数生成关联规则 rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1) # 打印关联规则 print(rules) ``` 当然,这只是一个简单的示例,实际上我们在使用Apriori算法时还需要考虑很多细节。如果您对此感兴趣,可以进一步学习相关知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值