Apriori算法的基本思想
频繁项集的所有非空子集也都必须是频繁的,这是Apriori的性质。基于这个性质,如果项集 I 不满足最小支持度阈值 minsup ,则 I 不是频繁的,即P( A )<minsup 。如果项 A 添加到 I ,则结果项集 A ∪ I 不会比 I 更频繁出现。因此, A ∪I 也不是频繁的,即P( A ∪ I )< minsup 。
Apriori算法的中心思想是首先通过对事务数据库进行扫描,找出支持度不小于最小支持度的所有项目,即频繁1项集,接下来循环进行下面的3步。
①对频繁 k 项集中的项进行连接,前提条件是前 k -1项必须相同;
②进行剪枝,利用Apriori性质对连接后的项目集进行筛选,删除那些子集不是频繁集的项目集,得出候选( k +1)项集;
③对数据库进行扫描,计算候选项的支持度,从候选集中删除支持度小于最小支持度的候选项,进而得出频繁( k +1)项集。以此类推,直到不能找到频繁项集为止,也即频繁 k 项集为空。
Apriori算法的实现是通过对数据库进行扫描从候选集中找出频繁项,不断对候选项计数来完成的。从上面可以看出,最大频繁项目集中有多少项就需要对事务数据库扫描多少次,对于一些大型数据库或数据仓库来说,多次扫描所带来的开销是非常惊人的。