怎么从fp-tree里挖掘频繁项集可以举例吗
时间: 2024-01-14 14:02:14 浏览: 36
当我们使用FP-Growth算法来构建FP-Tree之后,可以通过遍历整个树来挖掘频繁项集。下面是一个简单例子:
假设我们有如下的一组事务数据:
```
T1: {A, B, C, D}
T2: {B, C, E}
T3: {A, B, C, E}
T4: {B, D, E}
```
我们希望通过FP-Tree算法来挖掘频繁项集,假设我们设定最小支持度为2,即项集出现的次数必须大于等于2。我们可以按照如下步骤:
1. 构建FP-Tree:我们首先遍历所有事务数据,统计每个项的出现次数,并过滤掉不满足最小支持度的项。例如,项A出现了2次,项B出现了4次,项C出现了3次,项D出现了2次,项E出现了3次。过滤后,我们得到项集{B, C, E}。然后,我们按照项的出现次数从大到小对所有项进行排序,得到排序后的项集{B, C, E}。
接下来,我们再次遍历所有事务数据,根据排序后的项集构建FP-Tree。首先,我们从空树开始,将事务数据中的第一个项插入树中。在本例中,第一个事务数据为{T1: {A, B, C, D}},我们将项集{B, C, D}插入FP-Tree中,得到如下的一棵树:
```
null
|
B(4)
|
C(3)
|
D(2)
|
A(2)
```
其中,括号中的数字表示该项在事务数据中出现的次数。
接下来,我们按照同样的方式将其他的事务数据插入树中,得到最终的FP-Tree:
```
null
|
B(4)--E(3)--C(2)--A(1)
| |
| D(1)
|
C(1)--B(1)--A(1)
```
2. 挖掘频繁项集:我们从FP-Tree的叶节点开始向上遍历,得到各个项集的出现次数,并根据最小支持度过滤掉不满足要求的项集。例如,我们遍历到了项集{B, C},发现它出现了3次,大于最小支持度2,因此{B, C}是一个频繁项集。接着,我们遍历到了项集{B, E},发现它出现了3次,也是一个频繁项集。最后,我们遍历到了项集{C, E},发现它出现了2次,不满足最小支持度2,因此被过滤掉。经过以上步骤,我们得到了两个频繁项集{B, C}和{B, E}。
这就是一个简单的从FP-Tree中挖掘频繁项集的例子。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)