数据分析与挖掘实验报告解析.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文档。上传文档
查看更多
《数据挖掘》实验报告 目录 1.关联规则的基本概念和方法 1 1.1数据挖掘 1 1.1.1数据挖掘的概念 1 1.1.2数据挖掘的方法与技术 1 1.2关联规则 3 1.2.1关联规则的概念 3 1.2.2关联规则的实现——Apriori算法 4 2.用Matlab实现关联规则 6 2.1Matlab概述 6 2.2基于Matlab的Apriori算法 7 3.用java实现关联规则 11 3.1java界面描述 11 3.2java关键代码描述 14 4、实验总结 19 4.1实验的不足和改进 19 4.2实验心得 20 1.关联规则的基本概念和方法 1.1数据挖掘 1.1.1数据挖掘的概念 计算机技术和通信技术的迅猛发展将人类社会带入到了信息时代。在最近十几年里,数据库中存储的数据急剧增大。Age(X,“20….29”)^income(X,“20,000….29,000”)?=buys(X,“CD-Player”) [Support=20%,Confident=60%] 其中X是变量,代表顾客,该关联规则表示所研究的AllElectronics数据库中,顾客有20%在20-29岁,年收入在20,000-29,000之间,并且购买CD机; 这个年龄和收入组的顾客购买CD机的可能性有60%。 1.2.2关联规则的实现——Apriori算法 1.2.2.1算法描述 Apriori算法在发现关联规则领域具有很大影响力。算法命名源于算法使用了频繁项集性质的先验(prior)知识。在具体实验时,Apriori算法将发现关联规则的过程分为两个步骤:第一步通过迭代,检索出事务数据库中的所有频繁项集,即支持度不低于用户设定的阈值的项集;第二步利用频繁项集构造出满足用户最小信任度的规则。其中,挖掘或识别出所有频繁项集是该算法的核心,占整个计算量的大部分。 Apriori算法使用一种称作逐层搜索的迭代方法,K项集用于搜索(K+1)项集。首先,通过扫描数据库,累积每个项的计数,并收集满足最小支持度的项,找出频繁1项集的集合。该集合记作L1。然后,L1用于寻找频繁2项集的集合L2,L2用于寻找L3,如此下去,直到不能再找到频繁K项集。 为提高频繁项集逐层产生的效率,一种称作Apriori的重要性质用于压缩搜索空间。Apriori性质:频繁项集的所有非空子集也必须是频繁的。如何在算法中使用Apriori性质?主要有两步过程组成:连接步和剪枝步。 (1) 连接步:为找LK,通过将L(k-1)与自身连接产生候选K项集的集合。该候选项集合记作CK。设l1和l2是Lk-1中的项集。记号li[j]表示li中的第j项。执行L(k-1)连接L(k-1),如果它们的前(K-2)项相同的话,其中L(k-1)的元素是可连接的。 (2) 剪枝步:为压缩CK,可以用Apriori的性质:任何非频繁的(K-1)项集都不是频繁K项集的子集。因此,如果候选K项集的(K-1)项子集不在L(k-1)中,则该候选也不可能是频繁的,从而可以从CK中删除。 1.2.2.1算法举例 Apriori 算法的伪代码 Input: DB, min_sup Output: result = 所有频繁项集的他们的支持度 方法: Result: = {}; K: =1; C1: = 所有的1-项集 While(Ck)do begin 为每一个Ck中的项集生成一个计数器; For(i=1; i[DB]; i++) begin 对第i个记录T支持的每一个Ck中的项集,其计数器加1; end Lk: =Ck中满足大于min_sup的全体项集; Lk支持度保留; Result: =Result ?LK Ck+1: =所有的(k+1)-项集中满足其k-子集都在Lk里的全体; k=k+1; enddo 下面举个例子来说明Apriori算法。 设某个数据库中有9个事务。即|D|=9。使用图1.2解释Apriori算法发现D中的频繁项集。 表1.1 某超市的销售项目的事务记录 在算法的第一次迭代时,每个项都是候选1项集的集合C1的成员。算法简单地扫描所有的事务,对每个项的出现次数计数。 假设最小支持度计数为2,即,min_sup=2。可以肯定频繁1项集的集合L1。 为了发现频繁2项集的集合L2,算法使用L1和L1的连接C2。注意,在剪枝步中,没有候选从C2中删除,因为这些候选的每个子集也是频繁的。 扫描数据库D中的事务,累计C2中每个候选相集的支持计数,如图1.2的第二行中间的表所示。 然后确定频繁2项集的集合L2,它由C2中满足最小支持度的候选2项集组成。 候选3项集的集合C3的产生要用到Apriori的逐层搜索技术,频繁项集的所有子集都必须是频繁的,给定一个候选k项集,只需要检查它们的(k-1)项

文档评论(0)

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

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

1亿VIP精品文档

相关文档