资源描述:
《数据挖掘apriori算法报告 周一》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实训报告书实训名称:系(部):专业班级:学生姓名:学号:指导教师:完成日期:山东科技大学泰山科技学院实训课题实训人姓名同组人员实训日期至实训成绩指导教师评语指导教师签名:_____________________年____月____日目录一.关联算法简介31.1 相关概念31.2 Apriori算法思想41.3 Apriori算法的典型改进4二.关联算法的基本原理4三.关联算法的C++简单实现53.1算法数据:53.2算法步骤:63.3C++算法的简单实现63.4程序输出结果:15四.学习心得体会16数据挖掘Apriori算法报告一.关联算法简
2、介关规则数据挖掘是重要的一种数据挖掘方法,它的关键环节是寻找频繁项集.近几年许多数据挖掘领域的研究人员投入了大量的时间和精力,深入研究了关联规则的算法,其中Agrawal等人于1993年提出的Apriori算法就是其中最具代表的成果,随后众多学者又在此基础上提出了一些改进,目的在于提高算法的效率,从而改进数据挖掘的效率.这方面的研究是目前数据挖掘领域研究的热点之一.1.1 相关概念所谓关联规则挖掘就是从事务数据库、关系数据库或数据仓库等海量数据的项集之间发现有价值的频繁出现的模式关联和相关性.通过预先设定的支持度和可信度,通过特定的数据挖掘算法
3、获得支持度和可信度均较高的关联规则,得到用户感兴趣、有价值的关联规则并应用到实际工作中,真正实现从数据到信息、再到知识的迁移过程.关联规则数据挖掘的过程大体为两步:第一步是从全部项集中寻找出所有频繁项集;第二步是由频繁项集获取关联规则.由于第二步较为容易和直观,所以第一步是关联规则挖掘的核心步骤.目前大多数寻找频繁项集算法因需要大量候选集而效率不高.在关联规则挖掘的方法中,最经典的算法是APriroi算法,除此之外还有基于充分挖掘增量事务的关联规则更新算法、Patition算法、完全频繁项集挖掘、频繁闭项集挖掘、最大频繁项集挖掘算法以及一些新的
4、频繁项集挖掘算法.1.2 Apriori算法思想Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法,是Agrawal等人于1993年提出的一种宽度优先算法.算法的核心是使用候选项集找频繁项集。算法思想如下:首先扫描数据集中所有事务,统计每个项出现的次数,删除小于预先设定的支持度的项集,得到频繁12项集;利用频繁12项集合的连接,产生候选22项集合(Candi2date22itemset)。然后对其中每个候选项集的支持计数,得到频繁项集22项集的集合,并利用这些频繁22项集合的连接,得到候选32项集合。重复扫描数据库产生更高层次的频
5、繁项集合,再连接产生下一级候选项集,直到穷尽数据集中的所有频繁项集。1.3 Apriori算法的典型改进Apriori算法能够有效地产生关联规则,但存在算法效率不高的缺陷,因为Apriori算法存在两个比较明显的缺点:一个是可能产生大量的候选集,另一个是需要重复扫描数据库.因此如果挖掘数据仓库数据量很大,应用此算法每次迭代产生候选项集用来统计其支持度需要花费很多时间。为了提高算法的效率,国内外专家学者提出的一系列改进算法主要从减少扫描数据库的次数和减少生成候选项目集的数目方面进行优化。从近几年频繁项集挖掘算法的研究趋势来看,为了提高算法的效率,
6、提出了一系列的混合搜索策略和高效剪枝策略。当数据集中所包含的项目个数比较多时,马占欣,陆玉昌提出只有恰当地设置2个额外参数,才能够保证挖掘过程的正常进行,但这样做的代价是可能会遗漏部分包含更多负项目的关联规则。二.关联算法的基本原理该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于
7、用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递推的方法(1)L1=find_frequent_1-itemsets(D);//挖掘频繁1-项集,比较容易(2)for(k=2;Lk-1≠Φ;k++){(3)Ck=apriori_gen(Lk-1,min_sup);//调用apriori_gen方法生成候选频繁k-项集(4)foreachtransactiont∈D{ //扫描事务数据库D(5)Ct=subset(Ck,t);(6)foreachcandidatec∈Ct(7)c.count++;// 统计候选频繁k-项
8、集的计数(8)}(9)Lk={c∈Ck
9、c.count≥min_sup}//满足最小支持度的k-项集即为频繁k-项集(10)}(11)returnL=