Apriori核心算法过程如下:
- 扫描数据集合计算出各个1项集的支持度,得 到频繁1项集的集合。
- 连接,由2个只有一个项不同的属于的频集做一 个(k-2)JOIN运算得到的。
- 剪枝,由于是的超集,所以可能有些元素不是频繁的。在 潜在k项集的某个子集不是中的成员是,则该潜在频繁项集不可能是频繁的可以从中移去。
- 通过 单趟扫描数据集合,计算中各个项集的支持度,将中不满足支持度的项集去掉形成。
通过迭代循环,重复步骤2~4,直到有某个r值使得为空,这时算法停止。在剪枝步中的每个元 素需在交易数据库中进行验证来决定其是否加入,这里的验证过程 是算法性能的一个瓶颈。这个方法要求多次扫描可能很大的交易数据库。可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺 点。
目前,几乎所有高效的发现关联规则的并行数据挖掘算法都是基于Apriori算法 的,Agrawal和Shafer 提出了三种并行算法:计数分发(Count Distribution)算法、数据分发(Data Distribution)算法和候选分发(Candidate Distribute)算法。