关联规则Aprior算法,我看过很多书,但是都没有看太明白,今天看到一本讲数据挖掘的书《数据挖掘:概念、模型、方法和算法》,里面讲的特别清楚,每一步都特别详细,故把它记录下来。首先看一个表,这个表时一个简单事务数据库的模型:
TID | 项 |
001 | A C D |
002 | B C E |
003 | A B C E |
004 | B E |
假定最小支持度s = 50%,所以。只有在至少50%的事务中都出现的项集才是频繁项集。
在第一次迭代的第一步中,所有单个项都作为候选集,它的生成阶段,计数阶段和选择阶段如下:
1-项集C_1 |
{A} |
{C} |
{D} |
{B} |
{E} |
1-项集 | 计数 | s[%] |
{A} | 2 | 50 |
{C} | 3 | 75 |
{D} | 1 | 25 |
{B} | 3 | 75 |
{E} | 3 | 75 |
大1-项集L-1 | 计数 | s[%] |
{A} | 2 | 50 |
{C} | 3 | 75 |
{B} | 3 | 75 |
{E} | 3 | 75 |
在第二次迭代中, 它的生成阶段由(c1)选择阶段中的项集两两构成,计数阶段和选择阶段如下:
12-项集C_2 |
{A, B} |
{A,C} |
{A,E} |
{B,C} |
{B,E} |
{C,E} |
2-项集 | 计数 | s[%] |
{A, B} | 1 | 25 |
{A,C} | 2 | 50 |
{A,E} | 1 | 25 |
{B,C} | 2 | 50 |
{B,E} | 3 | 75 |
{C,E} | 2 | 50 |
大2-项集L_2 | 计数 | s[%] |
{A,C} | 2 | 50 |
{B,C} | 2 | 50 |
{B,E} | 3 | 75 |
{C,E} | 2 | 50 |
在第3次迭代中, 它的生成阶段由(c2)选择阶段中的项集两两构成,计数阶段和选择阶段如下:
3-项集C_3 |
{B, C, E} |
3-项集 | 计数 | s[%] |
{B, C, E } | 2 | 50 |
大3-项集L_3 | 计数 | s[%] |
{B, C,E} | 2 | 50 |
在例子中,L_3无法产生候选的4-项集,所以Apriori算法停止迭代过程。
以上为经典的Apriori算法的例子。