目录
一、定义
Apriori是由a priori合并而来的,它的意思是后面的是在前面的基础上推出来的,即先验推导,怎么个先验法,其实就是二级频繁项集是在一级频繁项集的基础上产生的,三级频繁项集是在二级频繁项集的基础上产生的,以此类推。
Apriori是寻找频繁项集的常用算法。
二、Apriori定律
Apriori定律1):
如果一个集合是频繁项集,则它的所有子集都是频繁项集。举例:假设一个集合{A,B}是频繁项集,即A、B同时出现在一条记录的次数大于等于最小支持度min_support,则它的子集{A},{B}出现次数必定大于等于min_support,即它的子集都是频繁项集。
Apriori定律2):
如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。举例:假设集合{A}不是频繁项集,即A出现的次数小于min_support,则它的任何超集如{A,B}出现的次数必定小于min_support,因此其超集必定也不是频繁项集。
三、Apriori算法工作原理:
给出初始表
下面为Apriori算法的工作原理:
四、Apriori算法特点:
1、多次扫描数据库;
2、候选项规模庞大;
3、计算支持度开销大。
Apriori算法缺点在于,需要反复的生成候选项,如果项的数目比较大,候选项的数目将达到组合爆炸式的增长。
针对于此,另一种发现频繁项集的算法:FP-Growth算法,可以避开这个缺点。
Apriori算法利用先验原理逐步减少候选集的数量,FP-Growth算法则利用先验原理和生成FP-Tree相结合来减少比较的次数。
FP-Growth算法的平均效率远高于Apriori算法。
在此不进行展开讲述。