Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。
 
该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递归的方法。
 (1) L1 = find_frequent_1-itemsets(D);
(2) for (k=2;Lk-1 ≠Φ ;k++) {   
(3) Ck = apriori_gen(Lk-1 ,min_sup);   
(4) for each transaction t ∈ D {//scan D for counts  
 (5) Ct = subset(Ck,t);//get the subsets of t that are candidates  
 (6) for each candidate c ∈ Ct   
(7) c.count++;  
 (8) }   
(9) Lk ={c ∈ Ck|c.count≥min_sup}   
(10) }   
(11) return L= ∪ k Lk;
  可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点。