《Apriori算法的思想及核心伪代码》由会员分享,可在线阅读,更多相关《Apriori算法的思想及核心伪代码(3页珍藏版)》请在金锄头文库上搜索。
1、Apriori算法的思想及核心伪代码找出频繁项集:输入:事务数据库D;最小支持度阈值输出:D中的频繁项集L算法流程:(1)L1=find_frequent_1_itemsets(D);(2)For(k=2;Lk-1;k+)(3)Ck=aproiri_gen(Lk-1,min_sup); /根据频繁(k-1)-项集产生候选k-项集(4)For each transaction tD /扫描数据库,以确定每个候选项集的 支持度(5)Ct=subset(Ck,t); / 获得t所包含的候选项集(6)For each candidate c Ct(7)c.count+;(8)(9)Lk=cCk c.c
2、ountmin_sup(10)(11)return L=kLk; Procedure apriori_gen(Lk-1;min_sup) /连接(14步)和剪枝(57)函数算法 (1)for each itemset l Lk-1 (2)for each itemset l Lk-1(3)if(l1= l2.( lk-2= lk-2)(lk-1lk-2)then(4)c=l l; /将两个项集连接一起(5)if has_infrequent_subset(c,Lk-1)then(6)delete c; /出去不可能产生频繁项集的候选项集(7)else add c to Ck;(8)(9)ret
3、urn Ck;Procedure has_infrequent_subset(c,Lk-1) /非频繁子集的测试函数算法(1)for each (k-1)-subset s of c(2)if s Lk-1 then(3)return TRUE;(4)return FALSE;由频繁项集生成关联规则:输入:频繁项集(Lk ), 最小支持度阀值(min_sup)和最小置信度阈值(min_ conf).输出:强关联规则。Procedure GenAssociationRule (Lk ,min_conf)Begin1) for each frequent i_itemset li of Lk do 对于Lk 集合中的每一个i_项集li2) if li is not 1_itemset then 若li 不是1_项集3) SubItems =GenSubItemSet (Lk ); 按照项数递增方式生成Lk 的所有子集, 并入库4) AR_gen =AssociationRule(Lk , min_conf);产生强关联规则, 并入规则库5) Show_AR =ShowAssociationRule (); 显示强关联规则6 )7 )End