您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > Apriori算法的思想及核心伪代码
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)Foreachtransactiont∈D{//扫描数据库,以确定每个候选项集的支持度(5)Ct=subset(Ck,t);//获得t所包含的候选项集(6)Foreachcandidatec∈Ct(7)c.count++;(8)}(9)Lk={c∈Ck⎜c.count≥min_sup}(10)}(11)returnL=∪kLk;Procedureapriori_gen(Lk-1;min_sup)//连接(1~4步)和剪枝(5~7)函数算法(1)foreachitemsetl₁∈Lk-1(2)foreachitemsetl₂∈Lk-1(3)if(l₁[1]=l₂[2]∧...∧(l₁[k-2]=l₂[k-2])∧(l₁[k-1]l₂[k-2])then{(4)c=l₁⊕l₂;//将两个项集连接一起(5)ifhas_infrequent_subset(c,Lk-1)then(6)deletec;//出去不可能产生频繁项集的候选项集(7)elseaddctoCk;(8)}(9)returnCk;Procedurehas_infrequent_subset(c,Lk-1)//非频繁子集的测试函数算法(1)foreach(k-1)-subsetsofc(2)ifs∉Lk-1then(3)returnTRUE;(4)returnFALSE;由频繁项集生成关联规则:输入:频繁项集(Lk),最小支持度阀值(min_sup)和最小置信度阈值(min_conf).输出:强关联规则。ProcedureGenAssociationRule(Lk,min_conf)Begin1)foreachfrequenti_itemsetliofLkdo{对于Lk集合中的每一个i_项集li2)ifliisnot1_itemsetthen{若li不是1_项集3)SubItems=GenSubItemSet(Lk);按照项数递增方式生成Lk的所有子集,并入库4)AR_gen=AssociationRule(Lk,min_conf);产生强关联规则,并入规则库5)Show_AR=ShowAssociationRule();显示强关联规则6)}7)}End
本文标题:Apriori算法的思想及核心伪代码
链接地址:https://www.777doc.com/doc-6299976 .html