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