数据挖掘实验三应用-Apriori-算法挖掘频繁项集.docx

数据挖掘实验三应用-Apriori-算法挖掘频繁项集.docx

ID:58656419

大小:71.59 KB

页数:13页

时间:2020-10-16

数据挖掘实验三应用-Apriori-算法挖掘频繁项集.docx_第1页
数据挖掘实验三应用-Apriori-算法挖掘频繁项集.docx_第2页
数据挖掘实验三应用-Apriori-算法挖掘频繁项集.docx_第3页
数据挖掘实验三应用-Apriori-算法挖掘频繁项集.docx_第4页
数据挖掘实验三应用-Apriori-算法挖掘频繁项集.docx_第5页
资源描述:

《数据挖掘实验三应用-Apriori-算法挖掘频繁项集.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验三、应用Apriori算法挖掘频繁项集学院计算机科学与软件学院•实验目的:(1)熟悉VC++编程工具和Apriori频繁项集挖掘算法。(2)根据管理层的需求,确定数据挖掘的任务,明确数据挖掘的功能,也就是明确要挖掘什么。(3)由确定的数据挖掘任务,从实验一处理后的结果中,采用切块或切片等联机分析处理技术,选择出挖掘任务相关数据。(4)用VC++编程工具编写Apriori算法的程序,对任务相关数据运行Apriori算法,挖掘出所有的频繁项集。1.写出实验报告。•实验原理:1、Apriori算法Apriori使用一种称作逐层搜索的迭代方法,k项集用于探索(k+1)项集。首先,通过扫描数据

2、库,累计每个项的计数,并收集满足最小支持度的项,找出频繁1项集的集合。该集合记作L1。然后,L1用于找频繁2项集的集合L2,L2用于找L3,如此下去,直到不能再找到频繁k项集。找每个Lk需要一次数据库全扫描。2、提高频繁项集逐层产生的效率Apriori性质:频繁项集的所有非空子集也必须是频繁的。三、实验内容:1、实验内容在给定的数据中提取统一购物篮购买的商品信息,由这些数据构成事务数据库D,挖掘其中的频繁项集L。挖掘频繁项集的算法描述如下:Apriori算法:使用逐层迭代找出频繁项集输入:事务数据库D;最小支持度阈值。输出:D中的频繁项集L。(1)L1=find_frequent_1-i

3、temsets(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)}(9)Lk={c∈Ck

4、c.count≥min_sup}//满足最小支持度的k-项集即为频繁k-项集(10)}(11)returnL=∪kL

5、k;//合并频繁k-项集(k>0)算法在根据频繁k-1项集生成频繁K项集过程中要计算频繁K项集中每个元素的支持度,并计算K项集中每个k-1项子集是否在Fk-1中,上述两条任何一条不满足,则删去这个K项集中的元素。2、实验过程1、打开试验用数据,读取出同一流水号的商品ID并取前5位,生成以行为单位生成事务数据集transitions;2、ind_frequent_1-itemsets生成频繁一项集for(eachtransactionintransitions){for(eachitemintransaction){oneItemSet;oneItemSet.count++;//对1项集进

6、行计数}}3、apriori-gen(Lk-1)候选集产生算法Forallitemsetp∈Lk-1doForallitemsetq∈Lk-1doIfp.item1=q.item1,p.item2=q.item2,…,p.itemk-2=q.itemk-2,p.itemk-1!=q.itemk-1thenbeginc=p∞q//p、q合并后任意的Lk-1子集ifhas_infrequent_subset(c,Lk-1)thendeletec//存在c不属于Lk-1剪枝elseaddctoCkEndReturnCk4、has_infrequent_subset(c,Lk-1)判断候选集的元

7、素Forall(k-1)-subsetsofcdoIfNot(S∈Lk-1)THENreturnTRUE;ReturnFALSE;1.流程图4、主要程序代码1、//产生事务数据库代码(加注释)#include#include#include#includeusingnamespacestd;classSales_n{public:stringserial;intmarket;chardate[10];intsn;intid;floatnum;floatprice;};intmain(){//////////打开并

8、创建txt文件//////////////////////////////////charname1[50],name2[50];ifstreaminfile;cout<<"选择要打开的文件:1019n.txt1020n.txt1021n.txt"<>name1;infile.open(name1,ios::in);/*stringcontents;*/if(infile.fail()){cout<<"error

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。