fptree算法例题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fptree算法例题
FP树算法(FP-Growth)是一种用于频繁项集挖掘的快速算法。
它通过构建一种称为FP树的数据结构,来高效地发现频繁项集。
下
面我将以一个例题来说明FP树算法的步骤和过程。
假设有以下事务数据库:
T1: apple, beer, rice.
T2: apple, beer.
T3: apple, beer, coke.
T4: apple.
T5: beer, coke.
首先,我们需要进行数据预处理,将事务数据库转换成FP树所
需的数据结构。
我们需要计算每个项的支持度,并按照支持度降序
排列。
假设我们只考虑支持度大于等于2的项,那么计算得到的项
集如下:
Frequent 1-itemsets:
{beer: 4, apple: 4, coke: 2}。
接下来,我们按照支持度降序的顺序遍历事务数据库,构建FP 树。
首先,我们创建一个空的根节点。
然后,对于每个事务,按照
支持度降序的顺序处理项。
对于每个项,如果在当前节点的子节点
中存在该项,则增加该子节点的计数;否则,创建一个新的子节点,并将计数设置为1。
最终得到的FP树如下:
null.
|。
apple(4)。
/ \。
beer(4) rice(1)。
|。
coke(2)。
构建完FP树后,我们需要进行频繁项集的挖掘。
从最不频繁的项开始,逐个构建条件模式基和条件FP树。
以项"coke"为例,它的条件模式基为:
T3: apple, beer.
T5: beer.
根据条件模式基,我们可以构建条件FP树。
对于每个条件模式基,我们按照支持度降序的顺序构建条件FP树。
对于每个项,如果在当前节点的子节点中存在该项,则增加该子节点的计数;否则,创建一个新的子节点,并将计数设置为1。
最终得到的条件FP树如下:
null.
|。
|。
apple(2)。
接下来,对于条件FP树,我们可以继续进行频繁项集的挖掘。
以项"beer"为例,它的条件模式基为:
T2: apple.
T3: apple, coke.
T5: coke.
根据条件模式基,我们可以构建条件FP树。
同样地,按照支持度降序的顺序构建条件FP树。
最终得到的条件FP树如下:
null.
|。
/ \。
coke(2) null.
继续进行频繁项集的挖掘,以项"apple"为例,它的条件模式基为:
T2: null.
T3: coke.
根据条件模式基,构建条件FP树。
最终得到的条件FP树如下:
null.
|。
coke(1)。
再继续进行频繁项集的挖掘,以项"coke"为例,它的条件模式
基为空集,无需构建条件FP树。
最后,我们得到的频繁项集有:
{beer},支持度为4。
{apple, beer},支持度为3。
{coke},支持度为2。
{apple, coke},支持度为2。
以上就是使用FP树算法进行频繁项集挖掘的步骤和过程。
通过构建FP树和逐层挖掘条件FP树,我们可以高效地发现频繁项集。