基于关系数据库Apriori改进算法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于关系数据库Apriori改进算法

基于关系数据库Apriori改进算法   【摘要】本文根据Apriori算法的不足,提出了一种针对关系数据库关联规则挖掘的Apriori改进算法,可以提高数据挖掘的效率。   【关键词】数据挖掘;关联规则;Apriori算法   1.引言   关联规则挖掘是数据挖掘中最活跃的研究方法之一。最早是由Agrawal等人于1993年提出了挖掘交易数据库中项目集之间的关联规则问题。Agrawal等人于1994年提出了关联规则挖掘的经典算法―Apriori算法。虽然Apriori算法自身已经进行了一定的优化,但是在实际的应用中,还是存在不令人满意的地方:多次扫描事物数据库,需要很大的I/0负载;可能产生庞大的候选集。   挖掘关联规则时,考虑不同字段的种类是必要的。对于事务数据库,字段对应的项目是有限可数的离散问题。但是,一般的关系型数据库,其中包含了大量的分类属性和数值属性。对于分类属性和数值属性,通过进行离散化处理,把关系数据库转换成事务数据库,然后再利用目前讨论比较多的和相对成熟的布尔关联规则及其理论进行挖掘。   (1)对于分类属性,根据它的分类值的个数n映射到n个字符串集,记为{X1,X2,…,Xn};   (2)对于数值型属性,使用某种离散化技术对该属性离散化,离散化的数值属性具有区间值,可以像分类属性一样(每个区间看作一类)映射到m个字符串集,记为{Y1,Y2,…,Ym}。   把经过处理后的字符串看成项目,关系数据库就映射成了仅包含项目的事务数据库。   2.基于关系数据库的Apriori改进算法   (1)关系数据库中关联规则具有多维性,并且是维间关联规则,维内不可能出现关联。在对候选项目集进行“剪枝”时,只要判断出是维内关联的项目(数据处理后的字符串第一个字母相同就代表它属于同一属性值),直接将该项目删除。   (2)根据推论:如果某一事务不包含Ck中的任何项目集,那么删除该事务对Lj(j =k)的计算没有影响。在连接初步生成Ck时,将不包含Ck中的任何项目集的事务删除。   改进算法描述:   算法①   输入:事物数据库D,最小支持度minsupport   输出:频繁项目集L   L1={large 1itemsets(D)};/*生成支持度不小于minsupport的1频繁项目集*/   For(k=2;Lk1≠?;k++)   {Ck= apriori_gen(Lk1);   C=0;/*用来判断t是否包含任何候选项*/   For all t∈D   {Ct=subset(Ck,t);/*产生事务t中包含的候选集元素Ct*/   For all c∈Ct /* Ct是所有t包含的候选集元素*/   {if(ti包含了Ck中的任何项)   {c.count=c.count+1;/*计数*/   C=C+1;}   }   if(C==0)   {delete t from D;/*删除D中不包含任何候选项集的记录*/   }   }   Lk={c∈Ck | c.count ≥minsupport}   }   Return L=∪Lk;   算法②   apriori_gen(Lk1)函数   输入:(k1)频繁项目集Lk1   输出:k候选项目集Ck   For each itemset ll∈Lk1 do   For each itemset l2∈Lk1 do   If ll.item1= l2.iteml,ll.item2= l2.item2…ll.itemk2= l2.itemk2,ll.itemk1 l2.itemk1 then   {   C= ll∞l2;/*连接*/   if has_same_attribute(c)then   delete c/*删除维内关联的候选组合*/   else add c to Ck;   if has_infrequent_subset(c,Lk1)then   delete c;/*删除含有非频繁项目子集的候选组合*/   else add c to Ck;}   return Ck;   Procedure has_same_attribute(c)   for all item l of c   if left(ll,l)=left(l2,l)(ll,l2∈l)then   return true;   return false;   Procedure has_infrequent_subset(c,Lk1)   for all(k1)subset s of c   if s Lk1 then   return true;   

您可能关注的文档

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档