数据分析实战 45 讲
陈旸
清华大学计算机博士
123928 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
第二模块:数据分析算法篇 (20讲)
第四模块:数据分析工作篇 (2讲)
数据分析实战 45 讲
15
15
1.0x
00:00/00:00
登录|注册

30丨关联规则挖掘(上):如何用Apriori发现用户购物规则?

总结
FP-Growth算法
Apriori算法
概念
关联规则挖掘

该思维导图由 AI 生成,仅供参考

今天我来带你进行关联规则挖掘的学习,关联规则这个概念,最早是由 Agrawal 等人在 1993 年提出的。在 1994 年 Agrawal 等人又提出了基于关联规则的 Apriori 算法,至今 Apriori 仍是关联规则挖掘的重要算法。
关联规则挖掘可以让我们从数据集中发现项与项(item 与 item)之间的关系,它在我们的生活中有很多应用场景,“购物篮分析”就是一个常见的场景,这个场景可以从消费者交易记录中发掘商品与商品之间的关联关系,进而通过商品捆绑销售或者相关推荐的方式带来更多的销售量。所以说,关联规则挖掘是个非常有用的技术。
在今天的内容中,希望你能带着问题,和我一起来搞懂以下几个知识点:
搞懂关联规则中的几个重要概念:支持度、置信度、提升度;
Apriori 算法的工作原理;
在实际工作中,我们该如何进行关联规则挖掘。

搞懂关联规则中的几个概念

我举一个超市购物的例子,下面是几名客户购买的商品列表:
什么是支持度呢?
支持度是个百分比,它指的是某个商品组合出现的次数与总次数之间的比例。支持度越高,代表这个组合出现的频率越大。
在这个例子中,我们能看到“牛奶”出现了 4 次,那么这 5 笔订单中“牛奶”的支持度就是 4/5=0.8。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

关联规则挖掘是一项重要的数据挖掘技术,通过发现商品之间的关联关系,可以实现商品捆绑销售和相关推荐,从而提高销售量。本文介绍了关联规则挖掘中的支持度、置信度和提升度等重要概念,以及Apriori算法的工作原理。支持度表示商品组合出现的频率,置信度表示购买了商品A后会购买商品B的概率,而提升度衡量了商品A的出现对商品B出现概率的提升程度。Apriori算法通过查找频繁项集的过程来实现关联规则挖掘,首先计算单个商品的支持度,然后逐步组合商品,筛选出频繁项集。文章还介绍了Apriori算法的改进算法FP-Growth算法,通过创建FP树和项头表,减少了频繁项集的存储以及计算时间,从而提高了关联规则挖掘的效率。文章最后提到了其他的改进算法,如CBA算法和GSP算法,以及对于新理论的提出和改进的思考。总的来说,本文通过介绍关联规则挖掘的基本概念和算法原理,为读者提供了对于关联规则挖掘技术的全面了解和学习的机会。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《数据分析实战 45 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(31)

  • 最新
  • 精选
  • third
    置顶
    我也是自己的理解,不知道是否正确,给大家参考一下 构建子树 1.假设已经完成创建项头表的工作,省略count+1 2.扫描数据集,按照项头表排列好的结果,一次创建节点 3.因为尿布出现在所有订单中,没有例外情况,所以这只有一个子节点 4.因为牛奶出现在尿布中的所有订单里,所以只有一个子节点 5.由表中数据可得,在出现牛奶的订单中,面包出现的情况,分为两种, 1)出现3次面包,出现在有牛奶的订单中 2)出现一次面包,出现在没有牛奶的订单中 故,生成两个子节点 6.后续内容属于迭代内容,自行体会 3.创建条件模式集 是一个减掉子树过程。将祖先节点的支持度,记为叶子节点之和,减少频繁项集。 简单理解,就是有几个叶子,说明最开始的节点,怀了几个孩子,怀几个生几个 理解 1.创建含有啤酒的FP树,只有订单中含有啤酒的频繁项集才存在 2.去掉啤酒节点,品酒节点为空,得到,两个频繁项集 见图可理解 作业 1.工作原理 1)K=1,计算支持度 2)筛选小于最小支持度的项集 3)判断如果项集项集为空,K-1项集为最终结果 4)判断失败,K=K+1,重复1-3 2.优化 1)利用FP树和项头表,减少频繁项集的数量存储和计算

    编辑回复: 总结的不错,都可以看下。

    2019-02-20
    16
  • Sam.张朝
    https://www.ibm.com/developerworks/cn/analytics/library/machine-learning-hands-on2-fp-growth/index.html FP 还是这里说的清楚

    作者回复: 多谢分享

    2019-05-09
    9
  • 白夜
    Apriori 的工作原理: 0.设置一个最小支持度, 1.从K=1开始,筛选频繁项集。 2.在结果中,组合K+1项集,再次筛选 3.循环1、2步。直到找不到结果为止,K-1项集的结果就是最终结果。 FP-Growth相比Apriori的优点: 降低了计算复杂度,只要遍历两次数据集。可以直接得到指定商品的条件模式基。

    编辑回复: 对的 是Apriori和FP-Growth的特点。

    2019-02-21
    4
  • Ronnyz
    老师,想问下那置信度和提升度在Aproiri和FP-Growth算法中应用在哪了

    作者回复: 可以用于筛选,比如itemsets, rules = apriori(data, min_support=0.5, min_confidence=1)

    2019-11-21
    1
  • 梁林松
    Apriori算法工作原理是通过计算子集的置信度来寻找频繁项集,从而确立关联。 PF-Growth算法是改进的 Apriori, 改进之处在于它是按照明确品类去计算频繁项目集的,而不是去求全部数据集的频繁项集。

    作者回复: 对的

    2019-02-28
    1
  • ken
    Apriori挖掘频繁项集,那么置信度和提升度是对得出的频繁项集进行验证的是吧?如得出了啤酒的频繁项集后是对每个结果计算提升度,怎么选择最优的组合呢?是否会出现提升度大而置信度下降的情况?

    编辑回复: 置信度和提升度是对频繁项集的一种验证,在筛选最优组合的时候,一般会设置最小支持度,最小置信度,这样频繁项集和关联关系都要满足这个条件。提升度 (A→B)= 置信度 (A→B)/ 支持度 (B),所以提升度是对满足前两者条件的另一种验证方式,这样避免一种情况:置信度(A->B)很高,是因为本身支持度(B)很高,实际上和A的出现关系不大。

    2019-02-20
    1
  • McKee Chen
    Apriori算法的原理: 1. 输入数据集合D,支持度阈值α 2. 扫描整个数据集,得到所有出现过的数据,作为候选频繁1项集。K=1,频繁0项集为空集 3. 扫描数据计算候选频繁K项集的支持度 4. 去除候选频繁K项集中支持度低于阈值的数据集,得到频繁K项集。如果得到的频繁K项集为空,则直接返回频繁K-1项集的集合作为算法结果,算法结束。否则继续对K项进行计算,直到没有更新的频繁项集 Apriori算法和FP-Growth算法的区别: 1. Apriori算法需要对数据集进行多次扫描,而FP-Growth只需要扫描数据集两次 2. Apriori算法可能产生大量的候选集。而FP-Growth只需要创建FP树来储存频繁项集,并在创建前对不满足最小支持度的项进行删除

    作者回复: 加油 总结的不错

    2021-01-19
  • JustDoDT
    在这个基础上,我们将商品两两组合,得到 k=2 项的支持度 上面这句话下面的表,商品1,2的置信度应该为4/5,表里面列的1/5 我数了同时有商品1,2的订单有4个。 希望核实一下。

    作者回复: from efficient_apriori import apriori # 设置数据集 transactions = [(1, 2, 3), (4, 2, 3, 5), (1, 3, 5, 6), (2, 1, 3, 5), (2, 1, 3, 4)] # 挖掘频繁项集和频繁规则 itemsets, rules = apriori(transactions, min_support=0.5, min_confidence=1) print("频繁项集:", itemsets) print("关联规则:", rules)

    2020-04-07
    2
  • 布兰特
    K=3 项的商品组合 是不是少了一个 1,3,5 组合啊

    作者回复: 1,3,5的支持度低于0.5的最小支持度,所以最终结果里被舍弃了

    2020-04-01
  • Red Cape
    构造FP树的过程这里看不懂,面包,啤酒为什么会拆分呢

    编辑回复: FP -Growth中有一个概念叫:条件模式基。它在FP树创建的时候还用不上,创建的时候主要是通过扫描整个数据,和项头表来构造FP树。条件模式基用于挖掘频繁项的过程。通过数找到每个项(item)的条件模式基,递归挖掘频繁项集

    2019-02-21
收起评论
显示
设置
留言
31
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部