给定事务数据集如下:
设支持度阈值minsup=40%,试利用FP增长算法找出所有满足支持度阈值的频繁项集。
解:由于设定的支持度阈值为40%,从而支持度计数阈值为4.
1)第一步,对事务数据库进行一次扫描,找出频繁1项集,按降序排序。由于所有1项集的支持度计数均超过了支持度计数阈值4,故全部保留。
项集 | 支持度计数 |
{D} | 9 |
{B} | 7 |
{E} | 6 |
{A} | 5 |
{C} | 5 |
2)对每个事务中的元素按支持度顺序排序。
事务ID | 排序后事务集 |
1 | {D,B,E,A} |
2 | {D,B,C} |
3 | {D,B,E,A} |
4 | {D,E,A,C} |
5 | {D,B,E,C} |
6 | {D,B,E} |
7 | {D,C} |
8 | {B,A,C} |
9 | {D,E,A} |
10 | {D,B} |
生成FP树如下图所示:
递归挖掘FP树,找出所有包含频繁1项集的前缀路径。
频繁1项集 | 条件模式基 | 元素累积计数 |
C:5 | {D,B,E}:1; {D,B}:1; {D,E,A}:1; {D}:1; {B,A}:1 | D:4; B:3; E:2; A:2 |
A:5 | {D,B,E}:2; {D,E}:2; {B}:1 | D:4; B:3; E:4; |
E:6 | {D,B}:4; {D}:2 | D:6; B:4 |
B:7 | {D}:6; {}:1 | D:6 |
D:9 | {}:9 | — |
上表中过滤支持度计数小于4的元素,得下表:
频繁1项集 | 条件模式基 | 元素累积计数 |
C:5 | {D}:1; {D}:1; {D}:1; {D}:1; | D:4; |
A:5 | {D,E}:2; {D,E}:2; | D:4; E:4; |
E:6 | {D,B}:4; {D}:2 | D:6; B:4 |
B:7 | {D}:6; {}:1 | D:6 |
D:9 | {}:9 | — |
至此,找到的满足支持度阈值minsup=40%的频繁项集有:
{A},{B},{C},{D},{E}{A,D},{A,E},{B,D},{B,E},{C,D},{D,E},{A,D,E},{B,D,E}。