频繁模式树
大数据分析中关联分析技术的使用教程

大数据分析中关联分析技术的使用教程大数据分析已经成为当今信息时代的重中之重,企业和组织通过对数据进行深入分析,能够获得有价值的洞察,为业务决策提供有力支持。
而在大数据分析中,关联分析技术被广泛用于揭示数据之间的关联关系,发现隐藏在数据背后的规律和潜在的相关性。
在本篇文章中,我们将为您介绍关联分析技术的基本概念、常用算法以及实际应用。
一、关联分析概述关联分析是一种从大规模数据集中寻找有趣关系、相互依赖的任务。
它通过发现项目集中的频繁模式来完成,频繁模式指的是在数据集中经常出现的物品组合。
关联分析被广泛应用于市场篮子分析、商品推荐、交叉销售等领域。
二、关联分析算法1. Apriori算法Apriori算法是关联分析中最常用的算法之一,它基于频繁模式的性质。
Apriori算法通过扫描数据集多次来找到频繁项集,利用逐层递加的方式来发现频繁项集的超集,直到无法找到更多频繁项集为止。
Apriori算法的核心思想是:如果一个物品组合是频繁的,那么它的子集也一定是频繁的。
2. FP-Growth算法FP-Growth算法是一种高效的关联分析算法,通过构造FP树(频繁模式树)来实现快速的频繁模式挖掘。
与Apriori算法相比,FP-Growth算法避免了多次扫描事务数据库的操作,通过构造FP树和利用后缀路径来发现频繁模式。
FP-Growth算法适合处理包含大量事务和高维度特征的数据集。
3. Eclat算法Eclat算法也是一种经典的关联分析算法,它通过交集来计算频繁模式。
Eclat算法首先构建一个频繁项集的垂直格式数据结构,然后利用递归的方式来生成频繁项集。
与Apriori算法和FP-Growth算法相比,Eclat算法更适用于处理稀疏数据集。
三、关联分析的实际应用1. 市场篮子分析市场篮子分析是关联分析的经典应用之一,它通过挖掘购物篮中的频繁模式,从而揭示商品之间的关联关系。
利用市场篮子分析,商户可以了解消费者购买习惯,进行商品陈列、促销策略的优化,提高销售额和客户满意度。
fp树算法例题

fp树算法例题FP-Growth算法是一种用于频繁项集挖掘和关联规则学习的算法,它通过构建FP树(Frequent Pattern Tree)来高效地找出数据集中的频繁项集。
这里给出三个简化的FP树算法例题及其答案。
例题1数据集:最小支持度:2问题:构建FP树并找出频繁项集。
答案:统计各项目的频率:a(4), b(4), c(3), d(1)。
根据最小支持度,删除d。
构建FP树,根节点为null,然后按频率排序后的项目列表为a, b, c。
遍历事务,构建FP树。
挖掘FP树,得到频繁项集:{a:4}, {b:4}, {c:3}, {a,b:3}, {a,c:2}, {b,c:2}, {a,b,c:2}。
例题2数据集:最小支持度:2问题:构建FP树并找出频繁项集。
答案:统计各项目的频率:面包(4), 牛奶(3), 尿布(4), 啤酒(3), 鸡蛋(1)。
根据最小支持度,删除鸡蛋。
构建FP树,根节点为null,然后按频率排序后的项目列表为尿布, 面包, 啤酒, 牛奶。
遍历事务,构建FP树。
挖掘FP树,得到频繁项集:{尿布:4}, {面包:4}, {啤酒:3}, {牛奶:3},{尿布,面包:3}, {尿布,啤酒:3}, {牛奶,尿布:3}, {面包,牛奶,尿布:2}, {尿布,面包,啤酒:2}。
例题3数据集:(简化电商销售数据)最小支持度:2问题:构建FP树并找出频繁项集。
答案:统计各项目的频率:手机(3), 电脑(2), 耳机(2)。
所有项目均满足最小支持度。
构建FP树,根节点为null,然后按频率排序后的项目列表为手机, 电脑, 耳机。
遍历事务,构建FP树。
挖掘FP树,得到频繁项集:{手机:3}, {电脑:2}, {耳机:2}, {手机,电脑:2}, {手机,耳机:2}。
注意这里{手机,电脑,耳机}不是频繁项集,因为它的支持度为1,不满足最小支持度条件。
Apriori算法的改进及实例

Apriori算法的改进及实例Apriori算法是一种用于挖掘频繁项集的经典算法,它通过生成候选项集和剪枝的方式来减少搜索空间,从而高效地找到频繁项集。
随着数据规模的不断增大,Apriori算法的效率和性能也受到了挑战。
研究人员们提出了许多改进的方法,以提高Apriori算法的效率和性能。
本文将介绍一些Apriori算法的改进和实例。
1. Apriori算法改进之一:FP-growth算法FP-growth算法是一种基于树结构的频繁项集挖掘算法,它通过构建一棵FP树(频繁模式树)来表示数据集,从而避免了生成候选项集和多次扫描数据集的过程。
FP-growth算法的思想是先构建出数据集的FP树,然后利用FP树来挖掘频繁项集,从而避免了Apriori算法中生成候选项集的过程,大大提高了算法的效率。
下面是一个简单的FP-growth算法的实例:假设有如下的数据集:{1, 2, 3, 4},{1, 2, 4},{1, 2},{2, 3, 4},{2, 3},{3, 4},{2, 4}首先构建数据集的FP树:1) 第一次扫描数据集,统计每个项的支持度,得到频繁1项集{1, 2, 3, 4}和支持度{4, 7, 4, 6};2) 对频繁1项集根据支持度进行排序{4, 7, 6, 4},得到频繁1项集的顺序{3, 1, 4, 2};3) 第二次扫描数据集,创建FP树;4) 根据数据集创建FP树如下图所示:2/| \1 3 4| |4 4FP树的根节点是空集,根据第一次扫描数据集得到频繁1项集的顺序,依次插入树中。
接下来利用FP树来挖掘频繁项集:1) 首先从FP树的叶子节点开始,对于每一个项头表(item header table)中的项,按照条件模式基的方式来获取频繁项集;2) 对于每一个项头表中的项,从叶子节点到根节点回溯,得到条件模式基;3) 对于每一个条件模式基,利用条件FP树来获取频繁项集;4) 依次获取频繁项集{1, 2, 3, 4}、{2, 3, 4}、{2, 4}。
fp-growth讲义

FP-Growth算法是一种高效发现频繁项集的方法,基于Apriori算法构建,但在完成相同任务时采用了一些不同的技术。
以下是FP-Growth算法的讲义:一、FP-Growth算法FP-Growth算法是一种频繁模式增长算法,其核心思想是利用一种称为FP树(频繁模式树)的数据结构来存储和挖掘频繁项集。
FP树是一种特殊的数据结构,能够有效地压缩数据集,并快速地挖掘频繁项集。
FP-Growth算法的基本过程如下:构建FP树:首先,对原始数据集进行一次扫描,计算每个项集的支持度,并丢弃支持度小于阈值的项集。
然后,按照支持度递减的顺序对频繁项集进行排序。
接下来,再次扫描数据集,构建FP树。
在构建FP树的过程中,对于每个频繁项集,将其映射到FP树中的一条路径上。
如果某个项集的某些前缀在FP树中已经存在,则将这些前缀连接起来形成新的路径。
这个过程能够有效地压缩数据集,并保留频繁项集的信息。
挖掘频繁项集:在构建完FP树之后,就可以利用该树来挖掘频繁项集。
这个过程也只需要一次数据集的扫描。
从FP树中挖掘频繁项集的过程是从根节点开始,向下搜索FP树,并记录满足最小支持度的项集。
在搜索过程中,可以利用节点之间的链接关系来跳过一些不满足支持度要求的节点,从而提高搜索效率。
二、优势与不足FP-Growth算法相比Apriori算法的优势在于其能够更高效地发现频繁项集。
这是因为在构建FP树的过程中,数据集被有效地压缩,同时保留了频繁项集的信息。
这使得FP-Growth算法在处理大规模数据集时具有更好的性能。
此外,由于FP-Growth算法只需要对数据集进行两次扫描,所以其运行时间和空间复杂度都比Apriori算法更低。
然而,FP-Growth算法也存在一些不足之处。
首先,该算法需要设置一个支持度阈值来过滤掉非频繁项集,这可能会影响最终的结果质量。
其次,对于一些特殊的数据分布情况,如数据集中存在大量的频繁项集或者最小支持度设置得很低,FP-Growth算法的性能可能会下降。
fpm指标

fpm指标一、什么是fpm指标1.1 定义FPM(Frequent Pattern Mining)指标是一种数据挖掘技术,用于从大规模数据集中发现频繁模式。
频繁模式是指在数据集中经常出现的模式或项集。
FPM指标可以应用于多个领域,如市场营销、推荐系统、网络安全等。
1.2 应用场景•市场营销:通过挖掘顾客购买行为的频繁模式,可以为企业提供个性化的推荐和优惠策略,提高销售额。
•推荐系统:通过分析用户的历史行为,挖掘出用户的喜好模式,为用户推荐个性化的商品或内容。
•网络安全:通过挖掘网络中的频繁模式,可以发现潜在的攻击行为,提高网络的安全性。
二、FPM算法2.1 Apriori算法Apriori算法是一种经典的FPM算法,其基本思想是通过逐层搜索频繁项集,从而发现频繁模式。
2.1.1 基本概念•项集(Itemset):由一个或多个项组成的集合。
•支持度(Support):项集的支持度是指在数据集中出现该项集的频率。
•频繁项集(Frequent Itemset):支持度大于等于最小支持度阈值的项集。
2.1.2 算法步骤1.初始化:生成所有的候选1-项集。
2.剪枝:从候选1-项集中删除不满足最小支持度的项集。
3.迭代生成候选k-项集:根据频繁(k-1)-项集生成候选k-项集。
4.剪枝:从候选k-项集中删除不满足最小支持度的项集。
5.重复步骤3和步骤4,直到无法生成新的候选项集。
6.输出所有的频繁项集。
2.2 FP-Growth算法FP-Growth算法是一种基于FP树的FPM算法,相对于Apriori算法,FP-Growth算法具有更高的效率。
2.2.1 基本概念•FP树(Frequent Pattern Tree):一种用于存储频繁模式的树形结构。
•头指针表(Header Table):用于记录每个项的出现频率和在FP树中的位置。
2.2.2 算法步骤1.构建FP树:对数据集进行两次遍历,第一次统计每个项的频率,第二次构建FP树。
fp树算法

fp树算法FP树(Frequent Pattern Tree)算法是一种用于挖掘频繁项集的算法。
它通过构建一种称为FP树的数据结构,将事务数据集合转换为一棵树状结构,并利用该树状结构来发现频繁项集。
FP树算法具有高效的性能和较小的存储空间占用,因此被广泛应用于关联规则挖掘和数据压缩等领域。
FP树的构建过程包括两个主要步骤:首先是对事务数据集进行扫描以构建频繁项集表达的FP树,然后利用FP树进行频繁项集的挖掘和生成关联规则。
在FP树构建的过程中,数据集首先需要按照事务中的频繁项出现的频率进行排序,然后进行遍历扫描。
通过扫描事务数据集两次,分别统计每个项集的频度和排序,构建FP树的树状结构。
在构建过程中,如果某个项在树中已经存在,就在对应的节点上增加计数;否则,就新增一个节点。
FP树的节点包括项标签、计数和节点链接(指向相同项标签的下一个节点)。
其中,项标签表示该节点所代表的项,计数表示该项出现的频度。
节点链接用于将相同项标签的节点之间进行链接,方便后续的挖掘。
FP树的构建完成之后,可以通过遍历FP树来挖掘频繁项集。
FP树的遍历过程类似于深度优先搜索,从根节点开始,沿着子节点的链接递归遍历整个树。
在遍历过程中,根据某个节点的计数和条件模式基(由节点路径上的非叶子节点组成)可以得到该节点的条件频繁项集。
同时,遍历过程还会产生一颗以当前节点为根的条件FP树,用于进一步的频繁项集挖掘。
FP树算法通过构建FP树和遍历FP树的方式来发现频繁项集,具有较高的效率和性能优势。
它避免了候选项集的生成和扫描过程,减少了计算的复杂度并节省了存储空间。
因此,FP树算法在关联规则挖掘、购物篮分析、在线推荐系统等领域有着广泛的应用。
总结起来,FP树算法是一种用于挖掘频繁项集的高效算法。
通过构建FP树和遍历FP树的方式,可以发现频繁项集并生成关联规则。
该算法具有高效的性能和较小的存储空间占用,被广泛应用于关联规则挖掘和数据压缩等领域。
基于递推式右路径扩展的XML频繁模式树挖掘
11 I EQT 算 法 . FL
A a 提 出 的 算 法 F E T是 在 有 序 树 中 基 于 候 选 si RQ 生 成 测 试 方 法 挖 掘 频 繁 子 树 的 典 型 算 法 根 据 反 向搜 索 这 种 方 法 提 出 了 最 右 路 径 扩 展 的 方 法 解 决 候 选 子 树
收 稿 日期 : 0 0 2 1 2 1 —1 —3 修 稿 日期 : 0 1 1 5 2 1 ~0 —1
Q T算法 的最右扩展思想 . 只在树 的最右分支 上增加新 的节 点。 但是它充分利用 已生成的频繁模式信息 。 使得
生 成 的 候 选 模 式 的 数 目减 少 很 多 . 且 Fe tr 并 rq e T e算 法
言
1 X ML繁 模 式 树 挖 掘 相 关算 法 分 析
频繁 子树模式挖掘 .比较经典 的两个 挖掘频 繁归
纳 子 树 的 算 法 是 基 于 A r r思 想 的 F E T算 法 和 pi i 0 R Q
F e t re算 法 rqT e
当前 X ML挖 掘 的 研 究 可 以 分 为 结 构 挖 掘 和 内容
效 的结 构 化 分 类 器 X u sl 传 统 的 基 于 I 的 向 量 Rl l与 eS 。 R 空 间 模 型 分 类 算 法 相 比 。 过 We 通 b文 档 结 构 信 息 进 行 分 类 具 有 更 高 的 正 确 率
★基 金 项 目: 家 自然 科 学 基金 ( .0 0 0 2 国 No5 6 4 1 )
有 较 高 的效 率
的列 举 问 题 。它 的 基 本思 想 是 首先 找 到 单 项 频 繁 的 节
构 和 树 的 模 式 匹 配 。对 于频 繁 子 树 的 挖 掘 , J ai M.Z k 采 . 用 了 新 的 数 据 结 构 So e Ls 和 TeMieo 法 来 挖 cp - i t re nr] 算 掘 一 个 森 林 中 的 所 有 频 繁 子 树 .经 过 修 改 还 可 以 对 未 排 序 的 树 进 行 挖 掘 A a 提 出 了 F E T算 法 I 类 似 si RQ 2 1 用
fpgrowth函数
fpgrowth函数fpgrowth函数是一种用于频繁模式挖掘的算法,它是一种高效的数据挖掘方法,用于发现数据集中的频繁模式或关联规则。
在本文中,我们将详细介绍fpgrowth函数的原理、应用场景以及使用方法。
一、原理fpgrowth函数是基于FP树(Frequent Pattern Tree)的一种频繁模式挖掘算法。
它通过构建一个特殊的数据结构FP树来存储数据集,然后利用FP树来快速发现频繁项集。
FP树是一种紧凑的数据结构,它通过节点链接的方式表示数据集中的频繁项集,可以避免昂贵的模式枚举过程。
具体来说,fpgrowth函数的工作流程如下:1. 构建FP树:遍历数据集,统计每个项的频次,并根据频次排序生成频繁项集。
然后根据频繁项集构建FP树,将数据集映射到FP 树上。
2. 挖掘频繁项集:从FP树的根节点开始,递归地遍历每个节点,找到以当前节点为末尾的路径(即频繁项集),将其加入结果列表中。
3. 生成关联规则:根据频繁项集,使用置信度等指标来生成关联规则,可以通过设置最小支持度和置信度的阈值来控制规则的生成。
二、应用场景fpgrowth函数在很多领域都有广泛的应用,特别适用于:1. 市场篮子分析:可以挖掘顾客购买商品的频繁组合,从而进行交叉销售和推荐。
2. 网络流量分析:可以挖掘网络流量中的异常行为和攻击模式,用于网络安全监测和预警。
3. 社交网络分析:可以挖掘用户之间的关系和行为模式,用于社交网络推荐和社区发现。
4. 生物信息学:可以挖掘基因序列中的频繁模式,用于寻找基因间的关联和功能预测。
三、使用方法fpgrowth函数通常通过调用相应的库或软件包来实现,例如Python 中的mlxtend库、R语言中的arules包等。
以Python为例,使用mlxtend库的fpgrowth函数可以按照以下步骤进行:1. 导入库:首先导入mlxtend库。
2. 准备数据集:将数据集整理成列表或数组的形式。
fpgrowth算法sql代码
fpgrowth算法是一种常用的频繁模式挖掘算法,它能够快速有效地发现数据集中的频繁模式和关联规则。
而在实际应用中,我们常常需要将该算法应用到SQL数据库中,以便更好地对数据进行分析和挖掘。
本文将介绍fpgrowth算法的原理和SQL代码实现,以帮助读者更好地理解和应用该算法。
一、fpgrowth算法原理fpgrowth算法是一种基于频繁模式树(FP-tree)结构的频繁模式挖掘算法。
它通过两次遍历数据集,首先构建FP树,然后通过递归方式挖掘FP树中的频繁模式。
具体步骤如下:1. 构建FP树(1) 遍历数据集,统计每个项的频数,然后根据频数降序排序得到频繁1项集;(2) 再次遍历数据集,根据频繁1项集和频数构建FP树,每个项在FP树上对应一条路径。
2. 挖掘频繁模式(1) 从FP树的底部开始,递归向上回溯每个项的前缀路径,得到条件模式基;(2) 对于每个条件模式基,构建条件FP树,然后递归挖掘得到频繁模式。
二、fpgrowth算法SQL代码实现在SQL数据库中,我们可以通过使用递归查询和临时表来实现fpgrowth算法。
下面是一个简单的示例,假设我们有一个名为transaction_table的交易表,表中包含了交易ID和对应的商品项集。
```sql-- 创建临时表存储频繁1项集CREATE TEMPORARY TABLE frequent_item1 ASSELECT item, COUNT(*) AS countFROM transaction_tableGROUP BY itemHAVING count >= min_support;-- 构建FP树WITH RECURSIVE fp_tree(item, count, parent) AS (SELECT item, SUM(count) AS count, NULL AS parentFROM frequent_item1GROUP BY itemUNION ALLSELECT t.item, SUM(t.count), f.idFROM transaction_table tJOIN fp_tree f ON t.item = f.itemGROUP BY t.item, f.idSELECT * FROM fp_tree;```上述SQL代码中,我们首先创建一个临时表frequent_item1来存储频繁1项集,然后使用递归查询构建FP树。
数据挖掘——第三章关联规则挖掘(2)
因此,从C3中删除{ I1, I2, I4}、{ I1, I3, I4}、{ I1, I3, I5}、 { I2, I3, I4}得:
可以改写如下所示的关联规则:
buys(X,”computer”)
buys(X,”antivirus_software”)
例5-2:闭的和极大的频繁项集。
假定事务数据库只有两个事务: { a1,a2, … ,a100 };{a1,a2, … ,a50}
最小支持度计数阀值min_sup=1。我们发现两个闭频繁项集和 他们的支持度,即C={{ a1,a2, … ,a100 }:1;{a1,a2, … ,a50}:2} 只有一个极大频繁项集:M={{ a1,a2, … ,a100 }:1}
集是不是频繁项集!
return Ck;
}
Prodedure has_infrequent_subset (c:candidate k-itemset;Lk-1:frequent(k-1)-itemsets) { //从第k项侯选项集Ck中,看它的(k-1)项子集是不是
第(k-1)项频繁项集中的项;
5.2.1Apriori算法:使用侯选产生发现频繁 项集;
5.2.2由频繁项集产生关联规则; 5.2.3提高Apriori算法的效率; 5.2.4不侯选产生挖掘频繁项集; 5.2.5使用垂直数据格式挖掘频繁项集;
1.2.1Apriori算法:使用侯选产生发现 频繁项集
1.Apriori性质:频繁项集的所有非空子集也必须是频繁的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A B C D E C D E D E
e.g., { A B C D E } for f_is = D i = A, p_base = (ABCD), (ACD), (AD) i = B, p_base = (ABCD) i = C, p_base = (ABCD), (ACD) i = E, p_base = null
Frequent Itemsets
Apriori generates candidate sets FP-Growth uses specialized data structures (no candidate sets)
Find
Association Rules
Outside the scope of both FP-Growth & Apriori
Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 f:4 c:3 a:3 b:1 {} c:1 b:1 p:1
m:2
p:2
b:1
m:1
FP-Growth Algorithm
FP-Growth Recursive Input: FP-Tree, f_is (frequent algorithm itemset) creates FP-Tree Output: All freq_patterns structures and calls FP-Growth if FP-Tree contains single Path P then for each combination of nodes in P Claims no generate pattern f_is combination candidate else for each item i in header generation
Item Conditional pattern-base Conditional FP-tree
p m b a c f {(fcam:2), (cb:1)} {(fca:2), (fcab:1)} {(fca:1), (f:1), (c:1)} {(fc:3)} {(f:3)} Empty {(c:3)}|p {(f:3, c:3, a:3)}|m Empty {(f:3, c:3)}|a {(f:3)}|c Empty
generate pattern f_is i construct pattern’s conditional cFP-Tree if (FP-Tree 0) then call FP-Growth (cFP-Tree, pattern)
Two-Part Algorithm
A if FP-Tree contains single Path P then for each combination of nodes in P generate pattern f_is combination B C D
Null
Header: A B F G H I M
A:50 B:1 G:1 M:1 B:45 G:1 I:1 M:1 F:40 G:1 I:1 M:1 G:35 H:1 I:1 M:1
i=F pattern = { F M } support = 1 pattern base cFP-Tree = null
e.g., { A B C D }
p
= |pattern| = 4 AD, BD, CD, ABD, ACD, BCD, ABCD
(n=1 to p-1) (p-1Cn)
Two-Part Algorithm
else for each item i in header generate pattern f_is i construct pattern’s conditional cFP-Tree if (cFP-Tree null) then call FP-Growth (cFP-Tree, pattern)
TID 100 200 300 400 500 Items bought (ordered) frequent items {f, a, c, d, g, i, m, p} {f, c, a, m, p} {a, b, c, f, l, m, o} {f, c, a, b, m} {b, f, h, j, o} {f, b} {b, c, k, s, p} {c, b, p} {a, f, c, e, l, p, m, n} {f, c, a, m, p}
FP-Growth Algorithm
FP-CreateTree Two passes Input: DB, min_support through DB Output: FP-Tree Tree creation is 1. Scan DB & count all frequent based on items. number of items 2. Create null root & set as current node. in DB. 3. For each Transaction T Complexity of
Items bought (ordered) frequent items {f, a, c, d, g, i, m, p} {f, c, a, m, p} {a, b,c, f, l, m, o} {f, c, a, b, m} {b, f, h, j, o} {f, b} {b, c, k, s, p} {c, b, p} {a, f, c, e, l, p, m, n} {f, c, a, m, p}
FP-Growth Mining Example
Null
Header: A B F G H I M
A:50 B:1 G:1 M:1 B:45 G:1 I:1 M:1 F:40 G:1 I:1 M:1 G:35 H:30 I:20 H:1 I:1 M:1
Transactions: A (49) B (44) F (39) G (34) H (30) I (20) ABGM BGIM FGIM GHIM
Pattern bases are generated by following f_is
path from header to each node in tree having it, up to tree root, for each header item.
FP-Growth Complexity
{} c:1 b:1 p:1 Conditional pattern bases item cond. pattern base
c
a b m p
f:3
fc:3 fca:1, f:1, c:1 fca:2, fcab:1 fcam:2, cb:1
m:2
p:2
b:1
m:1
FP-Growth Example
FP-Growth Mining Example
Null
Header: A B F G H I M
A:50 B:1 G:1 M:1 B:45 G:1 I:1 M:1 F:40 G:1 I:1 M:1 G:35 H:1 I:1 M:1
i=A pattern = { A M } support = 1 pattern base cFP-Tree = null
You MUST take into account all paths that contain an item set with a test item. You CANNOT determine before a conditional FP-Tree is created if new frequent item sets will occur. Trivial examples hide these assertions, leading to a belief that FP-Tree operates more efficiently.
Sample Data FP-Tree
null A B C … D C E D … … … K L M … M L M M
J
K L M
K
L M
L
M
M
L
M
M
M
M
Algorithm Results (in English)
Candidate Generation sets exchanged
for FP-Trees.
Therefore, FP-Growth is a competitor to
Apriori
FP-Growth Example
TID 100 200 300 400 500
Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 f:4 c:3 a:3 b:1
The FP-Growth/Apriori Debate
Presentation Overview
FP-Growth Algorithm
Refresher Motivation
& Example
FP-Growth Complexity
Vs.
Apriori Complexity Saving calculation or hiding work?
freq_itemset = { M }
FP-Growth Mining Example
Null
Header: A B F G H I M
A:50 B:1 G:1 M:1 B:45 G:1 I:1 M:1 F:40 G:1 I:1 M:1 G:35 H:1 I:1 M:1
Real World Application